Skip to main content

Ubuntu 패키징 가이드 - Debhelper로 패키징하기

Wechip W1 Air Mouse - Android Box TV - Mini PC - TV - Unboxing (4 월 2025)

Wechip W1 Air Mouse - Android Box TV - Mini PC - TV - Unboxing (4 월 2025)
Anonim

Debhelper로 포장하기

중대한

요구 사항 : 이 섹션의 요구 사항은 "처음부터 패키징"플러스 debhelper 및 dh-make

꾸러미 (packager)로서 이전 섹션에서했던 것처럼 처음부터 꾸러미를 만드는 일은 거의 없을 것입니다. 상상할 수있는 것처럼, 많은 작업과 정보가 규칙들 예를 들어 파일은 패키지에 공통적으로 사용됩니다. 패키징을보다 쉽고 효율적으로 만들려면 다음을 사용할 수 있습니다. debhelper 이러한 작업을 돕기 위해 Debhelper는 Perl 스크립트 집합입니다 (접두사 : dh_) 패키지 구축 프로세스를 자동화합니다. 이 스크립트를 사용하면 데비안 패키지를 만드는 것이 아주 간단 해집니다.

이 예제에서 우리는 GNU Hello 패키지를 다시 빌드 할 것이지만, 이번에는 우리의 작업을 우분투 안녕하세요. debhelper 꾸러미. 다시 작업 할 디렉토리를 만듭니다.

mkdir ~ / hello-debhelper cd ~ / hello-debhelper wget http://ftp.gnu.org/gnu/hello/hello-2.1.1.tar.gz mkdir 우분투 cd 우분투

그런 다음 우분투 소스 패키지를 얻으십시오.

apt-get 소스 hello-debhelper cd ..

앞의 예제와 마찬가지로, 우리가해야 할 첫 번째 일은 원래 (업스트림) 타르볼을 푸는 것입니다.

tar -xzvf hello-2.1.1.tar.gz

업스트림 타볼을 hello_2.1.1.orig.tar.gz 앞의 예에서와 마찬가지로 dh_make 우리를 위해 일하십시오. 소스 폴더의 이름을 바꾸면됩니다. - 여기서 packagename은 소문자입니다. 이 경우, 타르볼을 푸는 것만으로 올바르게 명명 된 소스 디렉토리가 생기므로 다음 디렉토리로 이동할 수 있습니다 :

cd hello-2.1.1

우리가 사용할 소스의 초기 "데비안 화"를 만들려면 dh_make.

dh_make -e your.maintainer@address -f ../hello-2.1.1.tar.gz

dh_make는 일련의 질문을합니다.

패키지 유형 : 단일 바이너리, 다중 바이너리, 라이브러리, 커널 모듈 또는 cdbs? s / m / l / k / b 에스 유지 관리자 이름 : Captain Packager 전자 메일 주소 : [email protected] 날짜 : 2006 년 4 월 6 일 10:07:19 -0700 패키지 이름 : hello 버전 : 2.1.1 라이센스 : 비어 있음 패키지 유형 : 단일 히트 확인: 들어가다

주의

실행 만 dh_make -e 일단. 처음 실행 한 후에 다시 실행하면 제대로 작동하지 않습니다. 변경하거나 실수를하려면 원본 디렉토리를 제거하고 업스트림 타볼을 새로 압축 해제하십시오. 그런 다음 원본 디렉터리로 마이그레이션하고 다시 시도 할 수 있습니다.

달리는 dh_make -e 두 가지 일을한다.

  • 생성 hello_2.1.1.orig.tar.gz 부모 디렉토리에있는 파일,
  • 필요한 기본 파일을 만듭니다. 데비안 / 및 필요한 많은 템플릿 파일 (.ex)이 필요합니다.

그만큼 여보세요 프로그램은 매우 복잡하지 않으며 "패키징 시작"섹션에서 보았 듯이 패키지화는 기본 파일보다 훨씬 더 많은 패키지를 필요로하지 않습니다. 따라서 .전의 파일 :

cd debian rm * .ex * .EX

에 대한 여보세요, 당신은 또한

* 특허

* 우분투 포장 가이드 색인

필요한 것 README.Debian (프로그램의 README가 아닌 특정 데비안 문제에 대한 README 파일) dirs (에서 사용 dh_installdirs 필요한 디렉토리를 생성하기 위해) 워드 프로세서 (에서 사용 dh_installdocs 프로그램 설명서를 설치하는 경우) 또는 정보 (에서 사용 dh_installinfo 정보 파일을 설치하는) 파일을 데비안 예배 규칙서. 이러한 파일에 대한 자세한 내용은 "dh_make 예제 파일"을 참조하십시오.

이 시점에서, 당신은 오직 변경 로그, compat, 제어, 저작권, 및 규칙들 에있는 파일 데비안 예배 규칙서. "처음부터 패키징하기"섹션에서 새로운 파일은 compat이 파일에는 debhelper 버전 (이 경우 4)이 사용됩니다.

당신은 변경 로그이 경우이 패키지의 이름이 반영된 것입니다. 안녕하세요. debhelper 오히려 단지 여보세요:

hello-debhelper (2.1.1-1) dapper; 긴급도 = 낮음 * 초기 출시 - Captain Packager 목, 2006 년 4 월 6 일 10:07:19 -0700

사용하여 debhelper, 우리가 바꿀 필요가있는 유일한 것 제어 이름입니다 (대체 여보세요 …에 대한 안녕하세요. debhelper)를 추가하고 debhelper (> = 4.0.0) ~로 빌드 - 의존 소스 패키지의 필드. 에 대한 우분투 패키지 안녕하세요. debhelper 다음과 같이 보입니다.

출처 : hello-debhelper 섹션 : devel 우선 순위 : 추가 유지 관리자 : Capitan Packager 표준 - 버전 : 3.6.1 Build-Depends : debhelper (> = 4) 패키지 : hello-debhelper 아키텍처 : any 의존성 : $ {shlibs : Depends} 충돌 : hello 제공 : hello 대체 : hello 설명 : 고전적인 인사말과 좋은 예제 GNU hello 프로그램은 익숙하고 친근한 인사를 만들어냅니다. 그것은 프로그래머가 아닌 사람들이 다른 방법으로는 사용할 수 없었던 고전적인 컴퓨터 과학 도구를 사용할 수있게합니다. . 진지하게, 이것은 데비안 패키지를 만드는 방법의 예입니다. 이것은 GNU 프로젝트의 'hello world'프로그램의 데비안 버전입니다 (이것은 GNU 프로젝트의 예제입니다). . 이것은 debhelper를 사용하여 deb를 만드는 것을 제외하면 hello 패키지와 동일합니다. 그것이 무엇인지 debhelper를보십시오.

우리는 저작권 파일과 postinst예언 우분투 스크립트 안녕하세요. debhelper "Packaging From Scratch"섹션 이후로 변경되지 않았으므로 우리는 또한 규칙들 우리가 조사 할 수 있도록

cp ../../ubuntu/hello-debhelper-2.1.1/debian/copyright. cp ../../ubuntu/hello-debhelper-2.1.1/debian/postinst. cp ../../ubuntu/hello-debhelper-2.1.1/debian/prerm. cp ../../ubuntu/hello-debhelper-2.1.1/debian/rules.

마지막으로보아야 할 파일은 다음과 같습니다. 규칙들, 어디의 힘 debhelper 스크립트를 볼 수 있습니다. 그만큼 debhelper 버전 규칙들 ( "규칙"이라는 섹션에서 버전의 72 라인에 비해 54 라인) 다소 작습니다.

그만큼 debhelper 버전은 다음과 같습니다.

CFLAGS = -g -Wall ifeq (, $ (findstring noopt, $ (DEB_BUILD_OPTIONS))) CFLAGS + = -O2 endif #export DH_VERBOSE = 1 clean : dh_testdir dh_clean rm -f 빌드 - $ distclean install : 빌드 dh_clean dh_installdirs $ (MAKE) prefix = $ (CURDIR) / debian / $ (패키지) / usr mandir = $ (CURDIR) / debian / $ (패키지) / usr / share / info install build : / usr / share / man / infodir = $ (CURDIR) / debian / (CC) "CFLAGS ="$ (CFLAGS) "

touch build binary-indep : install #이 패키지에 의해 생성 된 # 파일은 아키텍처 독립적 인 파일이 아닙니다. 어떤 것이 있다면 여기에 # 할 것입니다. binary-arch : install dh_testdir -a dh_testroot -a dh_installdocs -a NEWS dh_installchangelogs -a 변경 로그 dh_strip -a dh_compress -a dh_fixperms -a dh_installdeb -a dh_shlibdeps -a dh_gencontrol -a dh_md5sums -a dh_builddeb -a binary : binary-indep binary- arch .PHONY : 바이너리 바이너리 - 아치 바이너리 - 독립 clean checkroot

올바른 디렉토리에 있다면 테스트와 같은 태스크가dh_testdir), 루트 권한으로 패키지를 빌드하는지 확인하십시오 (dh_testroot), 문서 설치 (dh_installdocsdh_installchangelogs), 빌드 후 정리하기 (dh_clean)가 자동으로 처리됩니다. 많은 패키지가 여보세요 있다 규칙들 파일은 더 크지 않기 때문에 debhelper 스크립트가 대부분의 작업을 처리합니다. 전체 목록은 debhelper 스크립트에 대해서는 "List of debhelper 스크립트 "로 분류됩니다. 남자 페이지. 위에 사용 된 각 도우미 스크립트에 대한 맨 페이지 (잘 쓰여 있고 길지는 않습니다)를 읽는 것이 좋습니다. 규칙들 파일.