Outsider's Dev Story

Stay Hungry. Stay Foolish. Don't Be Satisfied.
RetroTech 팟캐스트 44BITS 팟캐스트

tmux 로컬에서 빌드하기

전에 tmux에 대해서 글을 올렸었는데 이전 글에서 얘기했듯이 OS의 패키지 매니저를 사용하면 쉽게 설치를 할 수 있습니다. 하지만 전체적으로 다 사용할 수 있는 서버라면 이렇게 설치할 수 있지만 공용서버라서 접근권한이 있는 경로가 자신의 홈디렉토리뿐이라면 이렇게 tmux를 설치할 수 없을뿐만 아니라 공통 폴더(/usr같은)에 설치된 의존성 라이브러리들을 사용할 수 없기 때문에 설치할 수 없습니다. 이런 경우라면 의존성 라이브러리와 함께 tmux를 홈디렉토리내에서만 빌드해야 합니다. 이렇게 빌드하기 위해서 삽질을 통해 찾아낸 과정을 정리합니다. 여기서는 타겟디렉토리 즉 tmux가 빌드될 디렉토리를 $HOME/tmux/라고 가정합니다.(이는 원하는대로 바꾸어도 좋고 미리 디렉토리를 만들어 놓습니다.)



libevent 빌드
tmux는 libevent에 의존성이 있으므로 libevent를 먼저 빌드해야 합니다. 현재 최신버전은 2.0.17로 libevent-2.0.17-stable-tar.gz를 다운로드 받습니다.


$ tar -xvzf libevent-2.0.17-stable.tar.gz 
$ cd libevent-2.0.17-stable
$ ./configure --prefix=$HOME/tmux/
$ make
$ make install

압축을 풀어준 후에 configure를 하면서 타겟디렉토리를 $HOME/tmux로 지장한 뒤에 빌드를 합니다. 빌드가 완료되면 $HOME/tmux아래에 bin, include 등의 디렉토리가 생긴 것을 확인할 수 있습니다.



ncurses 빌드
tmux가 의존성을 가지는 ncurses도 빌드해야 합니다. 다운로드 페이지에서 현재 최신버전인 ncurses-5.9.tar.gz를 다운로드 받습니다.


$ tar -xvzf ncurses-5.9.tar.gz
$ cd ncurses-5.9/
$ ./configure --prefix=$HOME/tmux/
$ make
$ make install


마찬가지로 압축을 푼 뒤에 타겟 디렉토리를 지정해서 빌드를 합니다. 빌드가 완료되면 $HOME/tmux/ 아래에 빌드된 파일들이 생성되는데 $HOME/tmux/include 디렉토리를 보면 ncurses라는 디렉토리가 생성된 것을 확인할 수 있습니다. 이는 뒤에서 tmux를 빌드할 때 ncurses관련 파일을 찾지 못한다는 오류가 발생하므로 다음과 같이 ncurses아래있는 파일들을 include폴더로 복사합니다.


$ cp $HOME/tmux/include/ncurses/* $HOME/tmux/include/




tmux 빌드
tmux 사이트에서 현재 최신버전인 tmux-1.6.tar.gz를 다운로드 받습니다.

$ tar -xvzf tmux-1.6.tar.gz
$ cd tmux-1.6
$ ./configure \
    CFLAGS="-I$HOME/tmux/include" \
    LDFLAGS="-L$HOME/tmux/lib" \
    --prefix=$HOME/tmux/
$ make

$ make install


마찬가지로 압축을 풀어준 뒤에 configure에서 타겟디렉토리의 include와 lib폴더를 플래그를 통해서 지정해 주어야 의존 라이브러리를 찾아서 빌드에 성공할 수 있습니다. 정상적으로 빌드가 되었다면 $HOME/tmux/bin 디렉토리 아래 tmux라는 파일이 생성됩니다.

tmux를 실행하기 전에 마지막으로 LD_LIBRARY_PATH 환경변수를 설정해야 합니다. ~/.bashrc같은 파일에 다음과 같이 tmux의 lib 디렉토리를 LD_LIBRARY_PATH 변수로 설정합니다. 새로 터미널을 실행하지 않았다면 source ~/.bashrc 명령어로 환경설정을 다시 불러와야 합니다.


export LD_LIBRARY_PATH=$HOME/tmux/lib

이제 $HOME/tmux/bin/tmux를 실행하면 tmux가 정상적으로 실행되는 것을 확인할 수 있습니다. 이 파일만 PATH에 잡아주면 어디서나 tmux 명령어를 사용할 수 있습니다.
2012/03/07 02:14 2012/03/07 02:14