Computer >> 컴퓨터 >  >> 시스템 >> Linux

리눅스에서 소스 코드로 패키지를 다시 빌드하는 방법

리눅스에서 소스 코드로 패키지를 다시 빌드하는 방법

오픈소스라는 특성 외에도, 뛰어난 커스터마이징 가능성은 많은 사용자가 리눅스를 사랑하는 또 다른 이유입니다. 거의 모든 파일을 자신만의 필요와 스타일에 맞게 수정하고 설정할 수 있기 때문인데요. 여기에는 소스 코드에서 패키지를 직접 다시 빌드하는 기능도 포함됩니다.

소스에서 패키지를 재빌드할 수 있는 능력은 리눅스 파워 유저에게 매우 유용합니다. 패키지를 변경하거나, 특정 기능을 활성화·비활성화하거나, 나만의 커스텀 수정 사항을 적용할 수 있기 때문입니다.

이 글에서는 소스에서 패키지를 다시 빌드하는 간단한 단계를 하나씩 살펴보겠습니다.

1. 소스 저장소 활성화

소스 패키지를 다시 빌드하기 전 첫 번째 단계는 사용 중인 배포판의 소스 저장소를 활성화하는 것입니다. 소스 저장소를 활성화하면 기본 apt 패키지 관리자를 통해 소스 패키지를 검색하고 다운로드할 수 있습니다.

데비안 계열 시스템에서는 "/etc/apt/sources.list" 파일을 편집하여 소스 패키지를 추가할 수 있습니다.

예를 들어, 다음은 소스 패키지가 활성화된 Debian buster의 "sources.list" 파일 내용입니다.

deb https://deb.debian.org/debian buster main
deb-src https://deb.debian.org/debian buster main
deb https://deb.debian.org/debian-security/ buster/updates main
deb-src https://deb.debian.org/debian-security/ buster/updates main
deb https://deb.debian.org/debian buster-updates main
deb-src https://deb.debian.org/debian buster-updates main

deb-src 항목이 소스 패키지를 활성화하는 역할을 하며, 패키지 관리자에게 일반적인 바이너리 파일 대신 소스 패키지를 제공하도록 지시합니다.

설정을 마쳤다면 파일을 저장하고 다음 명령으로 시스템을 업데이트합니다.

sudo apt-get update

2. 소스 패키지 가져오기

업데이트를 완료한 후에는 시스템을 수정하기 위해 소스 패키지를 가져올 수 있습니다.

여기서는 예시로 tar 패키지를 사용해 보겠습니다. 먼저 소스 패키지를 저장할 디렉터리를 생성합니다.

mkdir apt-rebuilds
cd apt-rebuilds

다음으로, 아래 명령을 사용해 소스 패키지를 다운로드합니다.

apt-get source tar
리눅스에서 소스 코드로 패키지를 다시 빌드하는 방법

디렉터리 내 파일 목록을 확인하려면 다음 명령을 입력합니다.

ls -la
리눅스에서 소스 코드로 패키지를 다시 빌드하는 방법

3. 빌드 의존성 확인 및 설치

다음 단계는 재빌드하려는 패키지에 필요한 빌드 의존성을 확인하고 설치하는 것입니다.

소스 패키지 디렉터리 안에서 아래 명령을 입력하면 충족되지 않은 빌드 의존성을 확인할 수 있습니다.

sudo dpkg-checkbuilddeps

이 명령은 해당 패키지의 누락된 의존성을 모두 표시해 줍니다. 물론 수동으로 하나씩 설치할 수도 있지만, 더 간편한 방법은 apt를 활용하는 것입니다.

아래 명령을 사용하면 됩니다.

sudo apt-get build-dep tar

위 명령은 필요한 의존성을 자동으로 찾아 설치까지 완료해 줍니다.

리눅스에서 소스 코드로 패키지를 다시 빌드하는 방법

4. 패키지 수정

이 단계에서는 패키지에 원하는 변경 사항을 적용하고, 필요에 따라 기능을 켜거나 끕니다. (이 작업은 매우 방대한 주제이기 때문에 패키지별로 가능한 모든 변경 사항을 다룰 수는 없습니다.)

모든 변경 사항과 세부 조정을 마쳤다면, 소스를 다시 컴파일하고 다른 버전 번호로 저장해야 합니다. 다음 명령을 사용하면 됩니다.

dch --local tar

명령을 실행하면 사용할 에디터를 선택하라는 메시지가 표시되고, 이후 changelog 파일이 열려 편집할 수 있습니다.

리눅스에서 소스 코드로 패키지를 다시 빌드하는 방법

여기에 변경된 내용을 설명하는 몇 줄을 추가하고 버전 정보를 수정하면 됩니다.

5. 패키지 빌드

마지막 단계는 소스 패키지를 실제로 빌드하는 것입니다. 소스 패키지 디렉터리에 있는지 확인한 뒤, 다음 명령을 실행합니다.

dpkg-buildpackage --force-sign

이 명령은 앞선 단계에서 적용한 모든 변경 사항을 반영하여 빌드 프로세스를 시작합니다.

리눅스에서 소스 코드로 패키지를 다시 빌드하는 방법

변경 사항의 규모와 재빌드하는 패키지에 따라 이 과정은 몇 분 이상 걸릴 수 있습니다.

6. 패키지 설치

빌드가 완료되면 상위 디렉터리에 바이너리 패키지(.deb)가 생성됩니다. 설치는 dpkg 명령 하나면 충분합니다.

sudo dpkg -i *.deb

마무리

패키지 빌드는 리눅스 관리자에게 필수적인 기술일 뿐만 아니라, 일반 리눅스 사용자에게도 큰 도움이 되는 역량입니다. 이제 소스에서 패키지를 빌드하는 방법을 익혔다면, 리눅스에서 파일 이름을 손쉽게 변경하는 방법이나 Hosts 파일을 사용하고 편집하는 방법도 함께 익혀보세요.