본문 바로가기
리눅스

Building binary deb packages

by 다움위키 2024. 3. 3.

원문 보기 : https://dawoum.duckdns.org/wiki/Building_binary_deb_packages

 

쉘 환경을 Bash에서 Z shell로 바꾸면서, 프롬프트를 Starship으로 구성했습니다.

어쨌든, 개발자가 제공하는 패키지를 사용하지 않고, 소스 코드로부터 바이너리를 만든 후에 데비안 패키지로 만들어 두면, 가상 기계 아래에 있는 데비안-기반 배포판에서 업데이트 정보를 알 수 있고 쉽게 설치가 가능합니다.

다음 과정은 바이너리 파일을 deb 패키지로 만드는 가장 기초적인 과정입니다.

선행 작업으로 Starship으로 가셔서 현재 소스 코드를 컴파일해야 합니다.

이제 바이너리 파일이 만들어졌으니, 패키지로 묶을 차례입니다.

Making the deb package

아래 작업은 starship 소스 코드의 루트 디렉토리에서 진행합니다. 여기서 이미 컴파일을 수행하고 바이너리를 만들어 두어야 합니다.

Create the working directory

아무렇게나 만들어도 상관없지만, 가능하면, 패키지 이름, 버전, 아키텍처가 포함되도록 만드는 것이 좋습니다.

  • mkdir starship_20240302_amd64

Create the internal structure

이제 패키지에 포함될 파일들을 디렉토리 구조와 함께 복사할 차례입니다. 여기서는 바이너리 파일 1개와 문서 파일 2개를 포함시킬 예정입니다.

  • mkdir -p starship_20240302_amd64/usr/local/bin
  • mkdir -p starship_20240302_amd64/usr/local/share/doc/starship
  • cp target/release/starship starship_20240302_amd64/usr/local/bin
  • cp LICENSE README.md starship_20240302_amd64/usr/local/share/doc/starship

Create the control file

이제 데비안 패키지에 대한 정보를 시스템에 알려줄 파일을 만들 차례입니다.

  • mkdir -p starship_20240302_amd64/DEBIAN
  • touch starship_20240302_amd64/DEBIAN/control

Fill in the control file

파일에 포함될 정보를 기록할 차례입니다.

Package: starship
Version: 20240302
Architecture: amd64
Maintainer: Starship Contributors <https://github.com/starship/starship/graphs/contributors>
Description: Cross-shell prompt.
  The minimal, blazing-fast, and infinitely customizable prompt for any shell!

이때, Section, Build-Depends, Depends, 등이 필요하지만, 여기서는 생략했습니다.

Build the dep package

이제 패키지를 만듭니다.

  • dpkg-deb --build --root-owner-group starship_20240302_amd64

정상적으로 패키지가 만들어지면 완료된 것입니다. 그렇지 않으면, 오류 메시지를 확인해서 수정해야 합니다.

Install the deb package

이제 설치를 하고, 제대로 파일을 포함하는지 확인할 필요가 있습니다.

  • sudo dpkg -i starship_20240302_amd64.deb

이상없이 설치되면, 설치 여부와 목록을 확인해 보십시오:

  • dpkg -l | grep starship
  • dpkg -L starship

이상없이 메시지가 출력되면 완료된 것입니다. 그렇지 않으면, 내용을 확인하시고 이전 과정을 수행하십시오.

References