리눅스에서 소스 패키지 설치/제거하기


요즘 (2000년대 후반) 나오는 리눅스 배포판들은 패키지 관리를 깔끔하게 해주기 때문에 원하는 프로그램을 마우스 클릭 한두번으로 설치하고 사용할 수 있지만, 그게 여의치 않은 경우가 있죠. 예를 들면 원하는 프로그램이 패키지 목록에 없을 때라던가, 아니면 관리자 권한이 없어 프로그램을 마음대로 설치할 수 없는 경우요. 그럴 때는 소스를 직접 다운받아서 설치하고, 제거해야 합니다.
리눅스 사용자들은 아마 다 알고 계시겠지만, 그래도 저같은 리눅스 초보에게는 tar.gz로 묶인 소스코드 뭉치를 던져주고 알아서 설치를 하라고 하면 머리가 아파오지요. 우리 모르는 사람들끼리 서로서로 설치/제거법을 알아보아요.

설치 준비하기

예를 들어 설명해봅시다. 저는 요즘 하는 일 때문에 ImageMagick이라는 라이브러리가 필요합니다. 학교에서 사용하는 서버는 우분투 리눅스 5.10인데, 우분투의 친절한 패키지 관리자를 통해 ImageMagick 을 설치할 수는 있긴 하지만... 버전이 6.2.xx 네요. 제게 필요한 버전은 6.3 이상이므로, 6.3 버전 소스 코드를 다운받아 직접 설치하기로 했습니다.
만약 우분투를 쓰고 계시다면, 그리고 소스 코드 컴파일을 한번도 해본 적이 없다면, (혹은 컴파일이란 게 뭔지 모르신다면) 컴파일과 설치를 위한 기본 도구들을 먼저 설치해야 합니다. 설치는 간단합니다. 시냅틱 패키지 관리자나, sudo aptitude를 이용해서 build-essential 패키지를 설치하세요.
대부분의 다른 리눅스 배포판들은 gcc / make / ld 등의 도구들이 다 깔려 있습니다. 다음으로 진행합시다.

소스 코드 다운받기

구글로 검색해서 ImageMagick의 홈페이지를 찾았습니다. 다운로드 페이지를 잘 읽어보고 원하는 소스 코드를 다운받습니다. 저의 경우 주소는 ftp://ftp.imagemagick.org/pub/ImageMagick/ImageMagick.tar.gz 이렇게 되네요.
웹 브라우저로 검색해서 다운받는다면 다운받는 것은 쉽습니다. 그러나 리눅스 GUI에 직접 접근할 수 없고, 커맨드라인만 사용할 수 있는 환경이라면, wget을 사용하면 됩니다. wget은 대부분의 리눅스 배포판에 기본으로 깔려 있으므로, wget [웹 주소] 이렇게만 치면 됩니다.
wget ftp://ftp.imagemagick.org/pub/ImageMagick/ImageMagick.tar.gz
소스 코드를 다운받았습니다. 압축파일 이름은 ImageMagick.tar.gz 네요. 이제 다운받은 압축파일을 풀어봅시다.
리눅스 환경에서 대부분의 압축 파일은 확장자가 tar.gz로 되어 있습니다. 만약 GUI를 사용할 수 있는 환경이라면 그냥 압축파일 관리자를 이용해 새 디렉토리에 압축을 푸시고, 아니라면 tar를 이용해 압축을 풀어 봅시다. tar -xzvf [파일 이름] 이라고 치면 됩니다.
tar -xzvf ImageMagick.tar.gz

설치 문서 읽기

여기서부터가 까다롭습니다. 소스 패키지 설치는 GUI로는 진행할 수 없기 때문에, 먼저 리눅스 터미널을 열어야 합니다. 열었으면, 압축을 푼 디렉토리로 가봅시다. ImageMagick-6.3.9 라는 디렉토리가 생겼네요.
cd ImageMagick-6.3.9
일반적으로 소스 패키지 설치는 configure / make / make install 의 3단계로 이루어집니다. configure는 설치 전에 여러가지 옵션을 지정해주고 컴파일 환경을 검사하는 단계입니다. configure 옵션은 프로그램마다 조금씩 다르므로, 설치 전에 먼저 README나 INSTALL 같은 설치문서를 읽어보는 것을 추천합니다. (문서가 주로 영어로 되어 있다는 것은 참 슬픈 일입니다.) 여기서 설치 옵션 부분을 읽어보고 나에게 필요한 옵션이 있다면 적어둡니다.

configure

configure는 내게 필요한 도구가 다 있는지, 라이브러리는 다 있는지 같은 것들을 체크해주고 빌드 환경을 만들어주는 스크립트입니다.
설치할 때 옵션을 주지 않으면 기본으로 /usr/local/bin 이나 /usr/local/lib 밑에 설치하는데, 이 디렉토리들은 관리자 권한이 없이는 접근할 수 없습니다. 이 경우에는 --prefix 옵션을 주어 설치 디렉토리를 바꿔야 합니다. 저는 저의 홈 디렉토리 밑에 imagemagick이라는 디렉토리를 만들어 그 곳에 설치하기로 했습니다. (이 경우 홈 디렉토리를 ~ 기호로 축약하는 것은 보통 에러를 일으킵니다. 루트 디렉토리부터 절대경로를 다 써주어야 합니다.)
./configure --prefix=/home/kanie/imagemagick
그 외 다른 옵션들도 넣어 보았습니다.
./configure --prefix=/home/kanie/imagemagick --disable-static --with-modules --without-perl --with-x=no
이렇게 하면 이제 컴파일 준비가 완료됩니다.

configure 단계에서 에러를 내며 멈출 경우

보통은 빌더 환경이 잘 갖추어져 있지 않다는 것을 의미합니다. 필요한 프로그램이나 라이브러리가 없는 경우가 대부분이므로, 빌드 문서를 잘 읽어보시고 필요한 프로그램이나 라이브러리를 설치해 주세요.

configure 옵션을 잘못 주어서 다시 시작하고 싶다면

make distclean이라고 치면 configure 설정을 모두 제거해줍니다. 그리고 configure 부터 다시 시작하시면 됩니다.
make distclean

make / make install

make는 미리 정해진 스크립트를 따라 소스 코드를 컴파일해주는 도구입니다. configure를 마쳤다면 make를 쳐서 컴파일합니다.
make
make가 실패하는 경우는 보통 컴파일 에러입니다. 이때는 컴파일 에러를 해결한 후 처음부터 다시 컴파일하는 것을 추천합니다. make clean 하면 컴파일이 취소되고, make를 치면 다시 컴파일할 수 있습니다.
make clean
컴파일이 완료되면 make install 을 치면 설치가 완료됩니다.
make install
설치한 후에 압축파일을 풀었던 디렉토리는 지우지 않는 것을 추천합니다. 나중에 설치 제거할 때 필요하니까요.

설치 제거하기

설치 제거를 하려면 make를 했던 디렉토리로 돌아와 다음과 같이 치면 됩니다.
make uninstall

댓글

이 블로그의 인기 게시물

어쩌다 마주친 spring Error

nginx 설정정리

이클립스에서 톰캣 publish할때 에러