패키지 관리자(yum, apt)가 미리 컴파일된 꾸러미를 받아 푸는 것이라면, 소스 컴파일은 사람이 작성한 C/C++ 코드(소스)를 내 시스템에서 직접 기계어로 번역해 설치하는 일이다. 왜 굳이 이 번거로운 길을 갈까? 저장소에 없는 최신 버전이 필요하거나, 특정 기능만 켜고 끄도록 빌드 옵션을 직접 고르고 싶거나, 내 CPU에 최적화된 바이너리를 얻고 싶을 때다. 리눅스마스터 1급 실기는 소스 설치의 3단계 의식(ritual) — ./configure, make, make install — 이 각각 무엇을 하는지를 묻는다.
이 3단계는 단순한 주문 외우기가 아니다. 각 단계는 뚜렷한 책임을 진다. configure는 내 시스템을 정찰해 Makefile을 생성하고, make는 그 Makefile대로 컴파일·링크하며, make install은 완성된 파일을 시스템 경로에 복사한다. 이 분업을 이해하면 컴파일 중 오류가 어느 단계에서 났는지 즉시 가늠할 수 있다.
오늘은 또한 라이브러리 — 여러 프로그램이 공유하는 코드 묶음 — 를 다룬다. 정적 라이브러리와 동적 라이브러리의 차이, ldd로 의존성 확인하기, ldconfig와 /etc/ld.so.conf로 동적 링커에게 라이브러리 위치를 알려주는 법까지가 오늘의 범위다