1. 아파치 빌드 및 설치.


아파치 다운로드 : https://httpd.apache.org/download.cgi
필자는 일단 아파치 2.2 버전대를 다운받아서 설치했기 때문에 2.4와는 조금 다를수도 있다.
적절한 디렉토리에 압축 풀고 다음과 같이 컴파일 및 인스톨을 진행한다.

$ ./configure --prefix=$HOME/usr/apache
$ make
$ make install


설치된 디렉토리 ($HOME/usr/apache)에 가서 보면 conf 디렉토리가 존재하는데 여기서 httpd.conf 파일을 다음과 같이 수정한다.


$ vi $HOME/usr/apache/conf/httpd.conf

....

Listen 8090

....

ServerName XXXXX


여기서 ServerName은 아이피로 해도 되고 실제 서버이름을 사용해도 된다.

모든 것이 잘 이뤄졌다면 아파치를 테스트해보자.


$ $HOME/usr/apache/bin/apachectl start


selinux 나 방화벽은 적절히 오픈해서 사용해야 한다.


2. PHP 빌드 및 설치


PHP 다운로드 : http://php.net/downloads.php
필자는 PHP 5.X를 다운받아서 설치했기 때문에 다른 버전과는 조금 다를 수도 있다.
또한 MySQL 은 귀찮아서 빼버렸다.
적절한 디렉토리에 압축 풀고 다음과 같이 컴파일 및 인스톨을 진행한다.

$ ./configure ./configure --prefix=$HOME/usr/php \

--with-apxs2=$HOME/usr/apache/bin/apxs --with-config-file-path=$HOME/usr/apache/conf \

--with-regex=php --with-libxml-dir=/usr \

--with-openssl --with-pcre-regex \

--with-zlib --with-bz2 --with-curl \

--with-gdbm --with-db4=/usr --with-dbm \

--with-pcre-dir=/usr --with-openssl-dir=/usr \

--with-libxml-dir=/usr \

--with-gd \

--with-vpx-dir=/usr --with-jpeg-dir=/usr --with-png-dir=/usr \

--with-zlib-dir=/usr --with-xpm-dir=/usr \

--with-freetype-dir=/usr --with-t1lib=/usr \

--with-gettext --with-gmp --with-mhash \

--with-imap --with-imap-ssl \

--with-kerberos \

--with-icu-dir=/usr \

--with-ldap --with-ldap-sasl \

--with-libmbfl --with-onig \

--with-mcrypt \

--with-libedit --with-readline \

--with-tidy \

--with-libexpat-dir=/usr --with-xmlrpc --with-xsl \

--with-pear --with-pic \

--with-libdir=lib64 \

--enable-bcmath --enable-calendar \

--enable-exif --enable-ftp --enable-pcntl \

--enable-gd-native-ttf --enable-gd-jis-conv \

--enable-intl --enable-mbstring \

--enable-shmop --enable-sockets \

--enable-sysvmsg --enable-sysvsem --enable-sysvshm \

--enable-wddx --enable-zip \

--enable-dba=shared --enable-mod-charset \

--enable-dom --enable-mbregex --enable-inline-optimization \

--enable-sigchild --enable-soap \

--enable-maintainer-zts \

--enable-opcache=no

$ make

$ make install


한방에 빌드가 안될 것이다 관련 라이브러리의 개발패키지가 설치되어 있지 않기 때문일텐데 구글신의 도움을 받아 필요한 패키지 설치해서 진행하면 된다. 빌드가 완료되었다면 다음과 같이 php 설정을 아파치에 복사하고 일부 아파치 설정을 변경해야 한다.


$ cp php.ini-production $HOME/usr/apache/conf/php.ini

$ vi $HOME/usr/apache/conf/httpd.conf

...

DirectoryIndex index.html index.php

...

       AddType application/x-httpd-php .php

       AddType application/x-httpd-php .php5

       AddType application/x-httpd-php .php42

       AddType application/x-httpd-php .php4

       AddType application/x-httpd-php .php3

       AddType application/x-httpd-php .phtm

       AddType application/x-httpd-php .phtml

       AddType application/x-httpd-php .asp


여기까지 잘 되었다면 다음과 같은 index.php 가 정상적으로 보일 것이다.


$ vi $HOME/usr/apache/htdocs/index.php

<html>

 <head>

  <title>PHP 테스트</title>

 </head>

 <body>

 <?php echo '<p>Hell World</p>'; ?>

 </body>

</html>


저작자 표시 비영리 동일 조건 변경 허락
신고
Posted by miro

Cmder Windows 10 한글 깨짐 문제.

Windows 10에서 Cmder 콘솔에서 한글 깨지는 문제는 다음과 같이 설정을 변경해야 한다.

폰트는 당연히 보기 좋은 콘솔 개발용 폰트로 설정한다.



그리고 다음과 같이 환경정보도 추가해 줘야 한다.



set LANG=ko_KR.UTF-8

chcp utf-8


추후에 알게 된 사실... chcp utf-8 설정을 하게 되면 vim 이 정상적으로 동작하지 않는다.

vim이 문제가 있을 경우에는 chcp utf-8 설정을 빼고 설정하면 정상적으로 동작할 것이다.


Cmder Alias 문제

콘솔에서 Alias 가 안된다는 것은 재앙이다. Windows 10 에서는 cmd 콘솔이 기존의 콘솔과는 다소 차이가 있다. 따라서 cmd 콘솔의 속성을 legacy cmd 처럼 동작하도록 해야 한다.



잘 동작할 것이다. 아님 말고.

저작자 표시 비영리 동일 조건 변경 허락
신고
Posted by miro

Redmine에서 제일 신경이 많이 쓰이는 부분중에 하나는 소스보기에서 탭 넓이가 8인 점이다.

구글링 하다 보니 역시 Redmine에서 해당 일감이 올라와 있는데 아직 적용되진 않았다.

무려 4년이 넘게 적용되지 않는 것을 보니 앞으로도 적용할 생각이 없을 것 같아 간단하게 메모하도록 하자.


일단, 해당 이슈에서 정리해놓았듯이,

${REDMINE_ROOT}/lib/redmine/core_ext/string/conversions.rb

파일에 다음의 함수를 추가하도록 하자.

        def expand(tab_width=4)
          text = self.dup
          out = ''
          text.each_line do |line|
            column = 0
            line.each_char do |c|
              if c == "\t" 
                next_tab_column = column + (tab_width - column % tab_width)
                while column < next_tab_column
                  out << " " 
                  column += 1
                end
              elsif c == "\b" 
                column += -1
              else
                column += 1
                out << c
              end
            end
          end
          out
        end


그런 후에,

${REDMINE_ROOT}/app/helpers/application_helper.rb

파일에서 syntax_highlite 함수에서 content 라는 변수를 content.expand(4) 라고 변경하도록 한다.

def syntax_highlight (name, content)
    Redmine::SyntaxHighlighting.highlight_by_filename(content.expand(4), name)
end


Redmine을 재시작하면 소스코드의 Tab Width가 변경된 것을 확인할 수 있다.


저작자 표시 비영리 동일 조건 변경 허락
신고
Posted by miro

앞서 설치를 진행한 후 몇가지 설정을 해줘야 원활한 운영이 가능하다.


먼저 설치한 서버로 접속을 하여 admin/admin 계정으로 접속을 진행한다.

그리고 제일 먼저 해줘야 할 사항은 redmine_git_hosting 설정이다.


1. SSH 설정.

위 화면과 같이 Gitolite SSH private key와 Gitolite SSH public key를 설정한다.


2. Access 설정

위 화면과 같이 Access 탭에서 domain 정보를 설정하고 HTTP로 접근할 때 앞서 설치해서 설정한 redmine 하위 디렉토리를 설정한다.


3. Hook 설정.

위와 같이 Hook 이벤트를 모두 활성화 한다.


4. Redmine 설정.

역시 위와 같이 설정하도록 한다.


5. Config Test 확인

마지막으로 위와 같이 정상적으로 보인다면 이제 모든 연동이 사실상 끝났다.


Maybe source will be with you.

저작자 표시 비영리 동일 조건 변경 허락
신고
Posted by miro

쉬는 동안 뭔가 재밌는 일이 없을까.. 궁금해하던 차에 전에 있던 회사에서 나름 괜찮게 사용했던 redmine과 사용해볼 기회가 없었던 git을 연동해서 프로젝트를 관리해보는 방법을 익혀보기로 했다.


수많은 삽질 후에 정리해두는 차원에서 적어보기로 한거라.. 혹시나 이 블로그를 보고 질문할 사항은 Google 신에게 여쭤볼 것을 권한다. (나는 내 블로그에 자주 들어오지 않는 관계로.. ㅋ)


1. SSH 설치하기

이미 설치되어 있다면 당연히 이 과정은 생략해도 무방하다.

root $ apt-get install ssh


2. LAMP 설치하기

Redmine을 설치하기 전에 먼저 기본이 되는 아파치 서버와 MySQL을 먼저 설치해야 한다.

apt 를 이용한 패키지로 설치해도 되지만 일단 손쉽게 설치하기 위해 tasksel을 이용하여 LAMP (Linux Apache MySQL PHP)를 설치하도록 한다.

root $ apt-get install tasksel

root $ tasksel install lamp-server

root $ apt-get install libmysqlclient-dev libmagickcore-dev libmagickwand-dev

위 과정에서 MySQL root 패스워드를 물어본다. 적당한걸로 하자.

사실 여기까지는 기존에 있는 것이 있다면 그냥 쓰면 된다.


3. Redmine 및 Gitolite 사용자 추가하기.

여러번의 삽질 끝에 가장 관리하기 편한 방법이라고 생각되는 것이 각 계정 사용자를 통한 관리였다.

그래서 Redmine 과 Gitolite 사용자를 추가하여 관리하는 방식으로 처리하도록 하겠다.

root $ adduser --system --shell /bin/bash --gecos 'Git Administrator' --group --disabled-password --home /opt/gitolite git

root $ adduser --system --shell /bin/bash --gecos 'Redmine Administrator' --group --disabled-password --home /opt/redmine redmine

어차피 사용자 계정도 아니므로 /opt 디렉토리에 홈을 생성하는 방식을 취한다.


4. Redmine 설치.

Redmine을 설치하기 위해서는 RVM (Ruby Version Manager)를 설치하여 시스템에 영향을 끼치지 않는 방향으로 진행하도록 한다.

root $ apt-get install curl

root $ su - redmine

redmine $ curl -L https://get.rvm.io | bash


이후, /opt/redmine/.profile 파일을 수정하여 다음과 같이 환경변수를 적용한다.

# set PATH so it includes rvm bin if it exists

if [ -d "$HOME/.rvm/bin" ] ; then

  PATH="$PATH:$HOME/.rvm/bin"

fi


if [ -s "$HOME/.rvm/scripts/rvm" ] ; then

  source "$HOME/.rvm/scripts/rvm"

fi


if [ -s "$HOME/.rvm/scripts/completion" ] ; then

  source "$HOME/.rvm/scripts/completion"

fi


Ruby를 설치하기 전에 편의를 위해 다음과 같은 내용을 /etc/sudoers에 추가하도록 하자.

이 과정을 생략하게 되면 설치시 퍼미션 문제로 설치가 정상적으로 수행되기 어렵다.

root $ visudo

# 인스톨 완료후 삭제해야 할 필드.

redmine ALL=(ALL)           NOPASSWD:ALL


# add redmine + git permission

www-data ALL=(git)      NOPASSWD:ALL

www-data ALL=(redmine)  NOPASSWD:ALL

git      ALL=(redmine)  NOPASSWD:ALL

git      ALL=(www-data) NOPASSWD:ALL

redmine  ALL=(git)      NOPASSWD:ALL

redmine  ALL=(www-data) NOPASSWD:ALL


# If you have the requiretty set in the Defaults directive

Defaults:www-data !requiretty

Defaults:git     !requiretty

Defaults:redmine !requiretty


위 과정을 마치고 이제 Ruby를 설치하도록 하자.

root$ su - redmine

redmine$ rvm install 2.0.0-p247


제법 오래 걸렸다. 이제 드디어 Redmine을 설치하도록 하자. Redmine 역시 우분투 패키지로 설치하지 않는다. Redmine에서 배포하는 녀석을 설치하도록 하자. 

redmine $ wget http://www.redmine.org/releases/redmine-2.3.4.tar.gz

redmine $ tar xvzf redmine-2.3.4.tar.gz

redmine $ mv redmine-2.3.4/* .

redmine $ rm -rf redmine-2.3.4*


이제, MySQL에 사용자와 데이터베이스를 등록하도록 하자. 사용자는 redmine, 비밀번호도 redmine이다. 비밀번호를 변경하고 싶을 경우 아래의 붉은색으로 칠해진 부분을 원하는 비밀번호로 설정하면 된다.

redmine $ mysql -u root -p

mysql> CREATE DATABASE redmine CHARACTER SET utf8;

mysql> CREATE USER 'redmine'@'localhost' IDENTIFIED BY 'redmine';

mysql> GRANT ALL PRIVILEGES ON redmine.* TO 'redmine'@'localhost';


Redmine의 설정파일을 수정하도록 하자.

redmine $ cd /opt/redmine/config

redmine $ cp database.yml.example database.yml

redmine $ cp configuration.yml.example configuration.yml

각각의 파일의 내용은 다음과 같다.

/opt/redmine/config/database.yml

production:

  adapter: mysql2

  database: redmine

  host: localhost

  username: redmine

  password: "redmine"

  encoding: utf8


development:

  adapter: mysql2

  database: redmine_development

  host: localhost

  username: redmine

  password: "redmine"

  encoding: utf8


test:

  adapter: mysql2

  database: redmine_test

  host: localhost

  username: redmine

  password: "redmine"

  encoding: utf8

/opt/redmine/config/configuration.yml

# 메일 설정. (Ex. gmail)

default:

  email_delivery:

    delivery_method: :smtp

    smtp_settings:

      enable_starttls_auto: true

      address: smtp.gmail.com

      port: 587

      domain: smtp.gmail.com

      authentication: :plain

      user_name: "wtf@gmail.com"

      password: "what the freak"


# 첨부파일 설정

  attachments_storage_path: /opt/redmine/files

# git 설정

  scm_git_command: /usr/bin/git


위 설정까지 마친 후 Redmine과 연동할 plugin assets 디렉토리를 미리 생성한다.

redmine $ cd ~

redmine $ mkdir public/plugin_assets


자 이제 Redmine 설치준비가 대략 끝났다. 이제 설치하자.

redmine $ gem install bundler

redmine $ bundle install --without development test postgresql sqlite rmagick

redmine $ rake generate_secret_token

redmine $ RAILS_ENV=production rake db:migrate

redmine $ RAILS_ENV=production rake redmine:load_default_data

마지막 명령 수행 후 언어를 설정하는 부분에서 한국어(ko)를 선택하면 된다.


5. Redmine + Gitolite 연계

Gitolite와 연계를 하기 위해서는 먼저 Gitolite의 관리자를 Redmine이 하기 위해 공개키를 생성해야 한다. 그러기 위해서 다음과 같은 일을 수행하도록 하자.

redmine $ mkdir ~/.ssh

redmine $ cd ~/.ssh

redmine $ ssh-keygen -t rsa -N '' -f gitolite_admin_id_rsa

redmine $ ls

gitolite_admin_id_rsa  gitolite_admin_id_rsa.pub

redmine $ ln -s gitolite_admin_id_rsa id_rsa

위와 같이 두개의 파일이 생성되어 있을 것이다.


Redmine에 Gitolite와 연계할 plugin인 redmine_git_hosting plugin을 설치하도록 하자.

redmine $ sudo apt-get install git git-core gitolite

redmine $ cd /opt/redmine/plugins

redmine $ git clone https://github.com/jbox-web/redmine_git_hosting.git

redmine $ git clone https://github.com/jbox-web/redmine_plugin_views_revisions.git

redmne $ cd ~

redmine $ bundle install

redmine $ RAILS_ENV=production rake redmine:plugins:migrate

redmine $ RAILS_ENV=production rake redmine:plugins:process_version_change

redmine $ rake redmine_git_hosting:install_scripts RAILS_ENV=production WEB_USER=redmine

이로써 Redmine 설치와 관련된 패키지들은 모두 설치가 된 상태이다.


이젠 Gitolite에 대한 설정을 수행하도록 하자.

redmine $ sudo dpkg-reconfigure gitolite

======= 다음의 사항을 입력한다.

user: git

repos path: /opt/gitolite

admin ssh-key: /opt/redmine/.ssh/gitolite_admin_id_rsa.pub

======= 입력 끝.

redmine $ ssh -v git@localhost

....

hello admin, this is gitolite 2.2-1 (Debian) running on git 1.7.9.5

the gitolite config gives you the following access:

     R   W gitolite-admin

    @R_ @W_ testing

....

위와 같이 표시가 된다면 설정이 잘 된 것이다.


6. Apache mod_passenger 설치 및 실행.

Apache를 통해 서비스 하는 것이 아무래도 관리하기가 편하다. Ruby로 개발된 Redmine을 동작시키기 위해서는 mod_passenger 라는 Apache 확장 모듈이 필요하므로 해당 모듈을 설치해서 적용하도록 하자.

redmine $ gem install passenger

redmine $ sudo apt-get install libcurl4-openssl-dev libssl-dev zlib1g-dev apache2-prefork-dev libapr1-dev libaprutil1-dev

redmine $ passenger-install-apache2-module

이제 컴파일이 시작된다. 물어보는 단계에서는 그냥 엔터치면 된다.


마지막에 나오는 내용이 매우 중요하다. 해당 내용은 아마 다음과 같을 것이다.

--------------------------------------------

The Apache 2 module was successfully installed.


Please edit your Apache configuration file, and add these lines:


   LoadModule passenger_module /opt/redmine/.rvm/gems/ruby-2.0.0-p247/gems/passenger-4.0.33/buildout/apache2/mod_passenger.so

   PassengerRoot /opt/redmine/.rvm/gems/ruby-2.0.0-p247/gems/passenger-4.0.33

   PassengerDefaultRuby /opt/redmine/.rvm/wrappers/ruby-2.0.0-p247/ruby


After you restart Apache, you are ready to deploy any number of web

applications on Apache, with a minimum amount of configuration!


Press ENTER to continue.


자 이제 위 내용을 Apache 설정에 적용하도록 하자. (파일이 없으면 생성하고, 있으면 수정하면 된다.)

/etc/apache2/mods-available/passenger.load

LoadModule passenger_module /opt/redmine/.rvm/gems/ruby-2.0.0-p247/gems/passenger-4.0.33/buildout/apache2/mod_passenger.so

/etc/apache2/mods-available/passenger.conf

<IfModule mod_passenger.c>

    PassengerRoot /opt/redmine/.rvm/gems/ruby-2.0.0-p247/gems/passenger-4.0.33

    PassengerDefaultRuby /opt/redmine/.rvm/wrappers/ruby-2.0.0-p247/ruby

    PassengerDefaultUser www-data

</IfModule>

붉은색 내용이 추가된 내용이니 잊지 말고 추가하자.


마지막으로 아파치 설정을 다음과 같이 하도록 하자.

redmine $ sudo su -

root $ cd /var/www

root $ ln -s /opt/redmine/public redmine

/etc/apache2/sites-available/redmine

RailsBaseURI /redmine

PassengerUserSwitching on

PassengerUser redmine

PassengerGroup redmine


모든 설정이 끝났으면 이제 적용하고 재시작 하도록 하자.

root $ a2enmod passenger

root $ a2ensite redmine

root $ service apache2 restart


Maybe source will be with you.

저작자 표시 비영리 동일 조건 변경 허락
신고
Posted by miro

CODEGATE2009

Geek 2009.03.06 17:23
작년에 이어 올해도 Softforum에서 CODEGATE를 개최한다.
단발성 행사로 끝나지 않을까 우려했었는데 다행히 어려운 경제상황에서도 진행하게 되어 매우 기쁘다. 국내에서는 해커가 매우 안좋은 이미지로 보여지는 것이 사실인데 이런 행사를 통해 해커의 이미지도 제대로 찾아가고 국내에서도 좋은 기술력을 확보하여 좋은 결실을 맺었으면 한다.




신고
Posted by miro
TAG CODEGATE

Xmanager 3.0 과 방화벽

Geek 2008.12.08 12:47
리눅스를 주로 사용하는 내게 윈도우 데스크탑이 주어졌다.
KVM (Key board + Video + Mouse) 스위치가 따로 없고 리눅스는 듀얼 모니터를 지원하지 않는 구닥다리 VGA 카드를 사용하고 있어서 어쩔 수 없이 윈도우를 주 데스크탑으로 사용하고 리눅스에 접속해서 사용해야 할 판국이다. (윈도우 듀얼 모니터중 큰 모니터를 리눅스에 할당... )

이렇게 사용하기에 아주 좋은 프로그램이 바로 Xmanager다. Xmanager는 1.3 버전대부터 조금씩 사용해봤는데 벌써 3.0 버전이 출시되었다. (2000년 초반에 사용해 봤으니 좀 출시가 늦은건가??) Xmanager는 국내 소프트웨어로써는 드물게 외국 릴리즈 그룹에서 매번 키 크랙커가 등장할 정도(제발 정품좀 사용하자)로 외국에서도 인정(?)받는 프로그램이다.

이전 2.0 버전에서는 폰트 문제로 네트워크 속도가 기가망급이 아니면 GNOME과 같은 무거운 Xwindow의 경우 응답속도가 매우 느렸었다. 하지만, 3.0버전의 경우 이런 문제를 처리한 것 같다. 3.0 evaluation을 설치해서 현재 사용중인데 매우 만족스러운 결과를 보여주고 있다.

다만, 한가지 XDMCP를 이용해서 접속할 경우 로그아웃 문제가 발생한다.
로그아웃시 리눅스 서버에서 클라이언트 PC로 로그아웃과 관련된 사운드를 전송하려다 네트워크에서 Hang이 걸리는데 이 문제가 좀처럼 쉽게 해결되지 않는다.

문제는 클라이언트 PC의 방화벽중 16001번 포트를 방화벽에서 제거하면 되는데 제거한다고 하더라도 역시 크게 향상되거나 하지 않는 경우가 종종 있다. 그래서 관련 정보를 찾아본 결과 ESD 사운드를 무조건 로컬에서만 동작하도록 하는 방법이 있었다.

리눅스의 경우 /etc/profile 파일의 맨 끝에 다음과 같이 한 줄을 삽입하면,
로그아웃시 클라이언트 PC로 접속을 하지 않는다.

declare -x ESPEAKER="127.0.0.1:16001"

이렇게 하면 굳이 방화벽에서 16001포트를 열어놓지 않아도 되며 로그아웃시에도 늦게 반응하는 현상이 사라진다.

신고
Posted by miro
오랜만에 심각(?)하게 재미있는 녀석을 만났다.
우리에게 잘 알려진 모질라 파이어폭스 확장기능으로 유비쿼티라는 녀석이 나왔다.
위 링크의 동영상이나 아래의 동영상을 보면 정말 놀라운 일이 아닐 수 없다.


Ubiquity for Firefox from Aza Raskin on Vimeo.

위 동영상과 같이 여러가지 사이트의 리소스 및 서비스를 이용하는 매쉬업 형태의
확장기능이다. 이를 이용하게 되면 정말 다양한 형태의 웹질(?)이 가능해질 것이다.

설치하고 가장 유용하게 사용할 것 같은 기능은 바로
translate this from english to korean
사용자 삽입 이미지

map seoul
정말 사용해보면 해볼 수록 놀라운 기능이다.
얼마전 google에서 새루온 브라우져 chrome을 발표했는데 위와 같은 기능을 포함할지는 잘 모르겠다. 아무래도 아키텍쳐상 파이어폭스의 확장성이 워낙 뛰어나다 보니 성능을 위주로 설계된 chrome에겐 다소 무리가 아닐까 싶다.
이렇게 해서 파이어폭스를 사용해야 하는 이유가 또 하나 늘은 것 같다.
신고
Posted by miro
Pidgin은 예전 Gaim 엔진을 기반으로 만든 오픈소스 메신저이다.
Pidgin의 특징은 MSN 메신저와 같이 자신만의 고유한 프로토콜과 서버를 기반으로 제작된 메신저가 아니고 다양한 메신저를 Pidgin 하나로 관리할 수 있는 통합 메신저라는 개념을 도입하고 있다.
일단 제공하고 있는 메신저는 아래 그림과 같이 다양한 메신저를 지원하고 있다.

사용자 삽입 이미지

그런데 국내에서 네이트온을 Pidgin에서 사용할 수 있게끔 Pidgin-nateon 플러그인을 개발해 주신 분들이 있었다. 현재 윈도우/리눅스(우분투)에서는 손쉽게 플러그인을 설치할 수 있도록 제공하고 있는데 리눅스 다른버전(페도라 -_-/)는 아주아주아주 약간의 수고를 해야 되는 상황이다.

더구나 Fedora Core #6 이전 버전의 경우 Pidgin 의 버전이 좀 낮은 상태라 조금 더 수고를 해야 된다. 일단 그 약간의 수고를 한 과정을 좀 나열하면, Pidgin-nateon 플러그인 개발 사이트에서 소스를 다운 받고 컴파일해서 설치하면 된다.
svn co http://dev.haz3.com/svn/nateon/trunk pidgin-nateon
cd pidgin-nateon
./configure --prefix=/usr

그런데 이렇게 하면 Fedora Core #6 이전버전의 경우 에러가 발생한다.

You must have the GLib 2.0 development headers installed to build.

config.log에 보니 purple 어쩌고 저쩌고 때문에 생긴 문제인 것 같다.
그래서 libpurple과 개발 패키지를 같이 설치하면 (yum 이용) configure는 정상적으로 처리된다.

그리고 make를 실행하면, 다음과 같은 에러가 난다.

xfer.c:126: error: implicit declaration of function 'purple_xfer_get_remote_user'

조금 조사해보니 /usr/include/libpurple/ft.h에 purple_xfer_get_remote_user 함수가 없다. -_-
조금 더 구글링해보니 젠장... pidgin 버전이 무쟈게 낮은 버전이다. Fedora Core #6 이전의 경우
공식 repository에 pidgin을 엄청 낮은 녀석으로 제공하고 있는 것이다. 그런데 다행이도
Pidgin 공식 홈페이지에 이렇게 낮은 버전의 경우 따로 repository를 지원해주고 있었다.
Pidgin 홈페이지 안내데로 Yum repository에 등록해서 pidgin을 업그레이드 해주고 나니
정상적으로 컴파일이 잘 되었고, 설치도 역시 정상적으로 잘 되었다.

Pidgin용 네이트온 플러그인을 개발해주신 분들께 다시한번 감사드립니다.
신고
Posted by miro
vim이 강력한 에디터인 것은 자타가 공인하는 사실이고,
하지만 항상 살짝 아쉬웠던 점이 gdb와의 연동이 안된다는 것이다.

그래서 지금까지는 코딩은 vim으로 디버깅은 gdb로 해 왔던 것 역시 사실이다.
솔직히 불편한 점은 없지만, 그래도 vim에서 해결하고 싶은 욕심은 어쩔 수 없었다.

이런 욕심을 채우려 구글신에게 부탁했더니 http://clewn.sourceforge.net/ 를 알려주었고
vimgdb라는 좋은 플러그인을 발견할 수 있었다.

참고로 clewn은 vim 버전 6.4 이하에서만 동작하니 탭기능을 위주로 사용하는 사람들에겐
별로 도움이 안되고 vim7.1 소스와 해당 위 주소의 설치법을 이용하여 설치를 하면 간단하게
설치할 수 있다.

참고로 설치가 완료되고 나면, ~/.vim 디렉토리에 있는 매크로를 좀 변경하는 것이 좋다.
macros/gdb_mappings.vim 파일의 가장 마지막에 있는 라인을 주석처리 하고

call s:Toggle() -> "call s:Toggle()

위와 같이 코멘트를 처리하는 이유는 무조건 vimgdb 관련 키맵이 설정되어서
기존에 사용하던 키맵을 정상적으로 사용하지 못하기 때문이다.

그리고 ~/.vimrc 파일에 다음의 내용을 추가한다.

run macros/gdb_mappings.vim
set asm=0

이와 같이 하면 vimgdb를 실행하고 <F7>로 키맵을 호출하여 사용할 수 있다.
아래 그림은 help 파일에서 제공하는 소스로 vimgdb를 사용해본 것이다.
사용자 삽입 이미지

사용자 삽입 이미지

사용자 삽입 이미지



신고
Posted by miro
TAG GDB, vim, vimgdb


티스토리 툴바