2014-10-22 4 views
1

파이썬 프로젝트가 있는데이 코드에서 두 개의 프로젝트 중 하나와 일부 데이터 파일 용 데비안 패키지 두 개를 만들고 싶습니다.단일 파이썬 프로젝트에서 여러 deb 패키지 만들기

debian/control은 다음과 같습니다

Source: demopackage 
Section: web 
Priority: extra 
Maintainer: myself <[email protected]> 
Build-Depends: debhelper (>= 8.0.0), python (>=2.7), python-setuptools 
Standards-Version: 3.9.3 

Package: demopackage 
Architecture: all 
Depends: ${misc:Depends}, ${python:Depends} 
Description: A demo package 
    This is the demo package 

#Package: demopackage-test 
#Architecture: all 
#Depends: ${misc:Depends}, ${python:Depends} 
#Description: demo package unit test 
# This is the demo package's unit test package :) 

debian/rules : 나는 debian/control에 나열된 하나의 패키지가있는 경우, 제대로 작성되는

#!/usr/bin/make -f 
# Uncomment this to turn on verbose mode. 
#export DH_VERBOSE=1 

%: 
    dh [email protected] --buildsystem=python_distutils --with=python2 

; 두 번째 패키지의 주석 처리를 제거하면 빈 패키지가 2 개 이상 생깁니다. debuild은 어떤 파일이 어떤 패키지에 속해 있는지 알지 못하므로 예상됩니다.

demopackage "python package"를 만들고 demopackage-testtest/unit_test.py (두 번째 패키지에 대한 데이터 파일) 만 포함 시키려면 어떻게해야합니까?

이 좀 더 명확하자 : 만 debian/control에 나열된 하나 개의 패키지가있을 때 결과 demopackagedebuild에 의해 생성 된 것과 동일해야합니다 (즉, 그것은 /usr/share/pyshared에 설치된 코드, /usr/lib/python2.7/... 등에서 만든 심볼릭 링크를 포함).

demopackage-test 나는 자신을 처리 할 수 ​​있으며, 단지 debian/demopackage-test.install 파일을 추가 하겠지만, 무엇을해야할지 모르겠다. demopackage.

패키지 테스트 코드 here을 다운로드 할 수 있습니다.

답변

0

대부분이 답변을 얻었습니다. dh_install은 어디로 파일을 가져올 지 지정하는 간단한 방법입니다.

demopackage에 들어갈 파일 및/또는 디렉토리를 쉽게 열거 할 수 있다면 debian/demopackage.install 파일을 작성하면 문제가 해결됩니다. 많은 파이썬 패키지의 경우, 당신이 제공 할 수있는 dh_install보다 더 많은 유연성을 필요로하는 경우, 그러나

/usr/lib/python2.*/*-packages/whatever 

같은 라인을 가지고 충분한 끝, 당신은 어떤 명시 적 쉘 대신 명령 또는 dh_install에 추가로 사용할 수 있습니다. 예를 들어, 하나 개의 테스트/unit_test.py 파일을 제외하고 demopackagedebian/tmp 이동에 설치됩니다 모든를 만들기 위해, 당신은 debian/rules이 연을 넣을 수 있습니다

override_dh_install: 
     dh_install 
     cp -a debian/tmp/* debian/demopackage/ 
     rm debian/demopackage/usr/share/whatever/unit_test.py 

을 당신은 당신이 원하는대로 꽤 많이 할 수 빌드 트리 외부에서 파일을 가져 오지 않는 한 올바른 파일을 올바른 위치에 배치해야합니다. 그리고 그 동안 사용하는 모든 도구는 빌드 종속성에 의해 설명됩니다.

관련 문제