7. 소스 코드 컴파일

가끔은 패키지가 소스 코드 형태로만 제공되는 경우가 있습니다. 이를 사용하려면 시스템에서 컴파일하고 설치해야 합니다. 이 강의에서는 소스 코드에서 컴파일하는 일반적인 과정을 안내합니다.

시스템 준비

무엇이든 컴파일하기 전에 필요한 도구가 있어야 합니다. 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을 실행해야 하지만, 이는 항상 안정적인 것은 아닙니다.

로그인하여 학습 진행 상황을 저장하세요

로그인

연습 문제

연습이 완벽을 만듭니다! 소스에서 소프트웨어를 빌드하는 것에 대한 이해를 강화하기 위한 실습 랩입니다:

  1. Linux 에서 소스 코드로 소프트웨어 빌드 - configure, make, make install을 사용하여 소스 코드에서 소프트웨어를 빌드하고 설치하는 기본 프로세스를 연습합니다.

이 랩은 실제 시나리오에서 개념을 적용하고 소프트웨어 컴파일에 대한 자신감을 구축하는 데 도움이 될 것입니다.

퀴즈

make install 대신 항상 무엇을 사용해야 합니까? (영어 대소문자를 구분하여 답변해 주십시오).