PPA를 위해 포장하고 있습니다. 업스트림 소스는 .tar.gz
Makefile 기반 의 아카이브입니다.
이 패키지는 상당한 양의 아키텍처 독립적 데이터를 가지므로 빌드 스크립트가 두 개의 패키지를 생성하는 것이 좋습니다.
- 꾸러미
- 패키지- 데이터
이것을 어떻게 설정할 수 있습니까? 데비안 control
파일을 편집 하여 두 개의 패키지를 생성했지만 올바른 파일을 올바른 패키지로 가져 오는 방법을 모릅니다.
데이터 파일은 현재 Makefile을 통해 모두 설치되어 있기 때문에 여기서 잃어 버렸습니다.
답변
이것은 항상 문서가 부족하다는 것을 알게 된 곳입니다. 다른 패키지에서 어떻게 수행되는지 살펴보면 이것이 어떻게 작동하는지 배웠습니다. 데비안 패키징의 대부분의 경우와 같이 몇 가지 방법이 있습니다. 가장 간단한 방법은 debian/package.install
파일 을 사용 하는 것입니다. 다음은 내가 작업 한 패키지의 예입니다 (상상력 (bzr branch)) .
먼저에서 패키지를 만들어야합니다 debian/control
. 3 개의 스탠자가 있습니다. 소스 패키지와 바이너리 패키지마다 하나씩. foo-data 패키지는이어야합니다 Architecture: all
. 또한 상상력에 따라 다릅니다 imagination-common (= ${source:Version})
.
다음으로 debian/imagination.install
파일 을 만듭니다 . 여기에는 상상력 패키지에서 끝내려는 특정 파일 또는 경로가 포함됩니다. 이 패키지에는 모든 아키텍처 종속 파일이 필요합니다. 데스크탑 파일은 Exec:
라인 에서 호출하는 이진 파일과 함께 말할 필요가 있으므로 포함됩니다 .
usr/bin/
usr/lib/
/usr/share/applications/imagination.desktop
debian/imagination-common.install
파일 을 만들어야 합니다. 여기에는 모든 아키텍처 독립 파일, 이미지, 번역, 문서 등이 포함됩니다.
/usr/share/doc/
/usr/share/icons/
/usr/share/imagination/
/usr/share/locale/
man dh_install
실제로 여기에서 일어나는 일을 설명합니다.
여러 바이너리 패키지를 빌드하는 큰 패키지가있을 수 있습니다. 업스트림 Makefile을 사용하여 모든 파일을 debian / tmp에 설치 한 다음 dh_install을 사용하여 디렉토리와 파일을 적절한 패키지 빌드 디렉토리에 복사 할 수 있습니다.
“적절한 패키지 빌드 디렉토리”의 의미는 빌드 프로세스가 끝날 때 결과에있는 모든 것이에서 foo.deb
발견된다는 것입니다 src/debian/foo
. 끝나는 파일은에서 foo-data.deb
찾을 수 있습니다 src/debian/foo-data
. 마찬가지로 debian/rules
본질적으로 단지 메이크, 당신은 동일한 결과를 가져 오는 그래서 다른 방법을 상상하기 시작할 수 있습니다.