소스 DEB 패키지를 활용하여 소프트웨어 설치 사용자화하는 방법

주요 리눅스 배포판인 우분투나 페도라를 사용하고 있다면, 시스템에 바이너리 패키지( DEB 또는 RPM)를 쉽게 설치할 수 있는 패키지 관리자가 함께 제공되었을 것입니다. 그러나 추가 기능을 추가하는 등 설치하는 소프트웨어를 사용자화할 계획이라면, 소스 패키지를 사용하고 직접 컴파일하는 것이 좋습니다.

이렇게 직접 시도해보고 싶어지는 몇 가지 이유가 있습니다:

  • 로컬에서 무언가를 컴파일하면 하드웨어에 훨씬 더 맞춤화된 소프트웨어 버전을 얻게 되어 성능 향상을 가져올 수 있습니다(반면에, 미리 컴파일된 바이너리는 종종 “최소 공통 분모”를 목표로 하며, 고급 기계를 활용하지 못할 수 있습니다).
  • 소스에서 컴파일하면 소프트웨어의 특정 기능을 활성화하거나 비활성화할 수 있는 능력이 주어집니다. 어떤 경우에는 코드를 변경해야 하지만, 어떤 경우에는 빌드 명령에서 플래그를 추가하거나 제거하는 것만으로도 가능합니다.
  • 마지막으로, 자유 소프트웨어 커뮤니티의 일원으로서 이러한 훌륭한 애플리케이션이 어떻게 만들어지는지 탐구하는 것은 결코 나쁘지 않습니다. 원본 소스 코드의 아카이브에서 컴파일하는 것은 일반 사용자가 하는 것 이상일 수 있지만, 소스 패키지를 사용하면 우리 같은 평범한 사용자에게 개발 및 컴파일 프로세스를 엿볼 수 있는 기회를 제공합니다.

DEB 소스 패키지의 구조

저장소에서 DEB 소스 패키지를 다운로드하려고 할 때, 패키지 관리자는 세 가지 주요 파일을 처리하게 됩니다(아래 우분투 저장소에 표시됨):

  • [패키지 이름]_[버전 번호].orig.tar.gz: 이 파일은 업스트림, 즉 원래 프로그램 개발자의 소스 코드를 포함합니다.
  • [패키지 이름]_[버전 번호]build1.debian.tar.gz: 이 아카이브는 위의 코드를 포함하며, DEB 기반 시스템과 호환되도록 필요한 수정 사항이 포함되어 있습니다.
  • [패키지 이름]_[버전 번호]build1.dsc: 패키지의 파일에 대한 설명으로, 서명이 포함될 수도 있습니다.

deb-src-repo-pandoc

DEB 소스 패키지 설치하기

DEB 시스템과 그 동반 도구들은 APT 저장소에서 소프트웨어 버전을 다운로드하고 컴파일하는 것을 매우 쉽게 만들어 줍니다. 다음 단계는 이 과정을 설명합니다:

먼저, 다른 소프트웨어를 컴파일할 수 있게 해주는 소프트웨어를 설치해야 합니다. 터미널에서 다음 명령을 입력하세요:

sudoapt-get install build-essential

소스 저장소가 활성화되어 있는지 확인해야 합니다.

패키지 관리자에서 “소프트웨어 소스”를 확인하여 “소스 코드” 옵션이 체크되어 있는지 확인하세요.

muon-sources-sourcecode

또는 “ /etc/apt/sources.list” 파일을 검사하여 다음 줄이 “#” 기호 없이 나타나는지 확인하세요(만약 그렇다면, 기호를 제거하고 파일을 저장하세요):

deb-src http://us.archive.ubuntu.com/ubuntu/ precise universe  
deb-src http://us.archive.ubuntu.com/ubuntu/ precise multiverse

apt-src 도구는 소스 패키지에서 작동하는 “apt-get”의 버전입니다. 다음 명령으로 설치하세요:

sudoapt-get installapt-src

참고: 이 패키지를 먼저 설치하면 build-essentials 패키지도 자동으로 설치됩니다.

다음으로, 원하는 패키지를 빌드하는 데 필요한 라이브러리나 다른 소프트웨어를 가져와야 할 수 있습니다( 이는 의존성이지만, 바이너리 패키지를 설치할 때 겪는 의존성과는 다릅니다).

sudoapt-get build-dep[패키지 이름]

이제 패키지를 다운로드할 수 있습니다. 다음 명령은 패키지를 가져오고, 컴파일하며, 자동으로 설치합니다:

sudoapt-src--buildinstall[패키지]

소스 패키지를 다운로드하여 내부를 살펴보거나 변경을 가하고 싶다면, 다음 명령으로 다운로드한 후 로컬 시스템에 설치할 수 있습니다:

sudoapt-src install[패키지 이름]

(이 명령은 위의 소스 파일을 다운로드합니다)

sudoapt-src build[패키지 이름]

(이 명령은 다운로드한 파일에서 패키지를 빌드합니다)

sudodpkg-i[패키지 파일 이름(들)].deb

데비안 소스 패키지와 관련 도구들은 자유 소프트웨어가 어떻게 만들어지는지 배우기 시작하는 훌륭한 방법입니다. 커뮤니티의 일원으로서, 이를 시도해보고 개발자들이 기울인 모든 노력에 대한 감사를 배우는 것은 당신에게 의무입니다.