가끔은 패키지가 소스 코드 형태로만 제공되는 경우가 있습니다. 이를 사용하려면 시스템에서 컴파일하고 설치해야 합니다. 이 강의에서는 소스 코드에서 컴파일하는 일반적인 과정을 안내합니다.
시스템 준비
무엇이든 컴파일하기 전에 필요한 도구가 있어야 합니다. Ubuntu 와 같은 Debian 기반 시스템에서는 단일 명령어로 설치할 수 있습니다.
sudo apt install build-essential
build-essential 패키지는 GCC 컴파일러와 컴파일에 필수적인 make 유틸리티를 포함한 일련의 소프트웨어 개발 도구를 설치합니다.
도구를 설치한 후에는 일반적으로 .tar.gz 파일인 소스 코드 패키지의 압축을 해제합니다.
tar -xzvf package.tar.gz
계속하기 전에 항상 압축 해제된 디렉토리 내의 README 또는 INSTALL 파일을 확인하십시오. 이 파일들에는 해당 특정 패키지에 필요한 구체적인 지침이나 종속성이 포함되어 있는 경우가 많습니다.
표준 빌드 프로세스
개발자마다 cmake와 같은 다양한 빌드 시스템을 사용할 수 있지만, 가장 전통적인 방법은 3 단계 프로세스를 포함합니다. 소스 코드 빌드 방법을 배우는 데 있어 이를 이해하는 것은 기본입니다.
첫째, configure 스크립트를 실행합니다. 이 스크립트는 소프트웨어가 올바르게 빌드되고 실행되는 데 필요한 모든 종속성과 라이브러리가 시스템에 있는지 확인합니다.
./configure
./ 접두사는 셸에게 현재 디렉토리에서 스크립트를 실행하도록 지시합니다. 스크립트가 누락된 종속성을 보고하면 계속하기 전에 이를 설치해야 합니다.
다음으로 make 명령을 실행합니다. 이 명령은 디렉토리 내의 Makefile이라는 파일을 읽는데, 이 파일에는 소스 코드를 실행 가능한 프로그램으로 컴파일하는 방법에 대한 규칙 세트가 포함되어 있습니다.
make
마지막으로, 소프트웨어를 시스템에 설치하려면 일반적으로 다음을 실행합니다.
sudo make install
이 명령은 컴파일된 파일을 적절한 시스템 디렉토리에 복사하여 소프트웨어를 사용할 수 있도록 합니다.
더 나은 설치 방법
sudo make install은 작동하지만 중요한 단점이 있습니다. 시스템 패키지 관리자에 소프트웨어를 등록하지 않는다는 것입니다. 이로 인해 나중에 패키지를 추적, 업데이트 또는 깔끔하게 제거하기가 어려워집니다.
훨씬 더 나은 접근 방식은 checkinstall을 사용하는 것입니다. 이 도구는 설치 프로세스를 실행하지만, 파일을 직접 복사하는 대신 네이티브 시스템 패키지 (Debian/Ubuntu 의 경우 .deb 파일과 같은) 를 생성하고 이를 설치합니다.
sudo checkinstall
checkinstall을 사용하면 컴파일된 소프트웨어가 패키지 관리 시스템에 통합됩니다. 이는 나중에 apt 또는 dpkg를 사용하여 공식 저장소에서 설치한 다른 패키지와 마찬가지로 쉽게 제거할 수 있음을 의미합니다. 이러한 이유로 make install보다 항상 checkinstall을 선호해야 합니다.
make install로 설치된 패키지를 제거하려면 소스 디렉토리로 돌아가서 sudo make uninstall을 실행해야 하지만, 이는 항상 안정적인 것은 아닙니다.