윈도우와 달리 리눅스에서 소프트웨어를 설치하는 일은 다소 복잡할 수 있습니다. 원하는 프로그램이 이미 패키지 형태로 제공되거나 저장소에 등록되어 있어 한 줄의 명령어로 설치할 수 있다면 문제가 없지만, 그렇지 않은 경우 .TAR.GZ 또는 .TAR.BZ2 파일에서 직접 컴파일하여 설치해야 할 가능성이 높습니다.
이 과정은 악몽처럼 느껴질 수 있지만, 몇 가지 규칙만 지키면 전혀 어렵지 않습니다. 설치하기 까다로운 아카이브 파일이 있다면, 아래 방법을 따라 패키지를 만들고 설치한 뒤, 나중에 패키지 관리자를 통해 깔끔하게 제거할 수도 있습니다. 터미널을 준비하고, 심호흡 한 번 하고 시작해 보겠습니다.
탄탄한 타르볼(Tarball)의 이해
.TAR.GZ/BZ2 파일은 압축된 타르볼(tarball, 압축되지 않은 확장자는 .TAR)로, 해당 응용 프로그램의 원본 소스 코드를 담고 있습니다. 설치하려면 이 파일들을 컴파일하고 처리한 뒤 링크하는 과정을 거쳐야 우분투에서 프로그램을 실행할 수 있습니다.
타르볼 포맷은 1988년에 표준화되었고(2001년에 재정립), 지금도 리눅스와 윈도우 모두에서 소프트웨어 배포에 널리 사용되고 있습니다. 원래 타르볼은 데이터를 테이프 장치에 백업하기 쉽게 하기 위해 고안된 것이지만, 물론 요즘은 그런 용도로 쓰지 않습니다.
리눅스 명령줄을 처음 사용한다 해도 걱정하지 마세요. 명령어들은 간단하고 체계적입니다.
시스템 준비하기
소스 코드로부터 패키지를 만들려면 build-essential 패키지가 필요하고, 패키지 관리자에 등록해 나중에 손쉽게 제거하려면 checkinstall이 필요합니다. 콘솔에서 빠르게 설치할 수 있습니다. 터미널(응용 프로그램 → 보조프로그램 → 터미널)을 열고 다음을 입력하세요:
sudo apt-get install build-essential checkinstall
다운로드와 설치가 완료될 때까지 기다리세요. 완료된 후에는 업그레이드를 위한 버전 관리 소프트웨어도 함께 설치해 두면 좋습니다. 물론 나중에 설치해도 되지만, 어차피 아래 세 가지면 충분합니다:
sudo apt-get install subversion git-core mercurial
다음으로, 패키지를 빌드할 때 사용할 공용 디렉터리가 필요합니다. 기술적으로는 쓰기 권한만 있다면 어디든 상관없지만, 우분투 공식 문서에서는 /usr/local/src를 권장합니다. 그대로 따르겠습니다:
sudo chown $USER /usr/local/src
그리고 쓰기 가능한지 확인합니다:
sudo chmod u+rwx /usr/local/src
마지막으로 의존성 문제를 해결하는 데 유용한 apt-file을 설치합니다:
sudo apt-get install apt-file
아마 apt-file을 업데이트하라는 팝업이 뜰 것입니다. 만약 뜨지 않으면 다음 명령어를 실행하고 끝날 때까지 기다리세요:
sudo apt-file update
여기까지 완료했다면 다시 할 필요가 없습니다. 시스템이 어떤 타르볼이든 받아들일 준비를 마친 것입니다.
압축 해제 및 구성
.TAR.GZ 파일을 이미 다운로드했다고 가정하면, 먼저 지정한 빌드 폴더(여기서는 /usr/local/src 사용)로 파일을 옮겨야 합니다. 평소 쓰던 파일 브라우저로 옮긴 뒤 새 터미널을 여세요.
다음 명령어로 빌드 폴더로 이동합니다:
cd /usr/local/src
이제 아카이브의 압축을 풉니다. .TAR.GZ 파일이라면:
tar -xzvf <파일명>.tar.gz
.TAR.BZ2 파일이라면:
tar -xjvf <파일명>.tar.bz2
문제없이 진행되었다면 스크린샷처럼 긴 파일 목록이 출력될 것입니다. 아직 터미널을 닫지 마세요. 아직 끝나지 않았습니다.
바로 이 시점에서 반드시 아카이브가 생성한 폴더로 이동해(평소 쓰는 파일 브라우저 활용) README 또는 INSTALL 파일이 있는지 확인하고 열어보기 바랍니다. 해당 소프트웨어가 특별한 설치 방법을 요구한다면 그 핵심이 이 파일 안에 들어 있습니다. 이 단계만 잘 지켜도 수많은 수고를 덜 수 있습니다.
또한 소프트웨어에 따라 다양한 설치 옵션을 선택할 수 있는 경우도 있는데, INSTALL 또는 README 파일에 그 내용이 명시되어 있습니다. 확장자가 없을 수 있지만 일반 텍스트 파일이므로 Gedit이나 선호하는 텍스트 편집기로 열면 됩니다.
일반적으로 아래 명령어들을 사용하면 기본 설치 방식으로 소프트웨어가 설치됩니다.
타르볼은 파일명과 같은 이름의 폴더로 압축이 풀리므로, 앞서 사용한 cd 명령어로 해당 폴더로 이동합니다:
cd /usr/local/src/<압축 해제된 폴더>
<압축 해제된 폴더> 부분을 실제 폴더명으로 바꾸세요. 다음으로 소스 파일을 구성(configure)합니다:
./configure
참고: configure 파일이 없는 소프트웨어라면 이 글의 빌드 및 설치 섹션으로 바로 건너뛰어도 됩니다. 단, 먼저 INSTALL 또는 README 문서를 확인하세요.
autoconf 관련 오류 메시지가 나타나면 다음 명령어로 설치합니다:
sudo apt-get install autoconf
그런 다음 ./configure를 다시 실행합니다.
이 명령은 해당 소프트웨어에 필요한 패키지가 모두 설치되어 있는지 검증합니다. 누락된 부분은 앞서 설치한 apt-file로 확인할 수 있습니다.
오류가 발생했다면(예: configure: error: Library requirements ... not met) 오류 메시지 위에 언급된 찾지 못한 파일을 확인한 뒤, apt-file로 검색합니다:
apt-file search <파일명>.<확장자>
필요한 파일이 어떤 패키지에 속하는지 알려주므로, 다음과 같이 설치하면 됩니다:
sudo apt-get install <패키지명>
항상 발생하는 것은 아니지만, 필요한 의존성이 없을 때 매우 유용한 방법입니다.
필요한 패키지를 모두 확보했다면 ./configure 명령어를 다시 실행합니다.
문제없이 완료되었다면 config.status: creating Makefile이라는 메시지가 보일 것입니다. 축하합니다! 거의 다 왔습니다. 많은 사람들이 이 지점에 도달하기 전에 포기하지만, 당신은 그렇지 않을 겁니다.
빌드 및 설치
같은 터미널 창에서 다음을 입력합니다:
make
커피 한 잔 하고 잠시 숨을 돌리세요. 설치 규모에 따라 시간이 꽤 걸릴 수 있습니다.
이제 다음 명령어로 프로그램을 설치합니다:
sudo checkinstall
화면의 안내를 따라 소프트웨어에 대한 설명을 입력하고, 해당 화면에서 Enter 키를 누르세요.
모든 것이 순조롭게 진행되었다면 Installation Successful(설치 성공) 메시지가 표시됩니다. 스스로를 칭찬해 주세요. 정말 잘했습니다.
이제 소프트웨어가 /usr/local/bin에 설치되며, 별다른 문제 없이 그곳에서 실행할 수 있습니다.
끝까지 따라오셨나요? 패키지를 기다리거나 저장소에서 가져오는 게 더 쉽지 않았나요? 아니면 생각보다... 쉬웠나요? 댓글로 알려주세요.