2014-10-22 4 views
1

У меня есть проект Python, и я хочу создать два пакета Debian из этого кода, один для самого проекта, а другой для некоторых файлов данных.Создайте несколько пакетов deb из одного проекта python

Мой 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:

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

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

Когда у меня есть один пакет, указанный в debian/control, он получает создан должным образом; когда я раскомментирую второй пакет, я получаю два более или менее пустых пакета, что ожидается, потому что debuild не знает, какие файлы принадлежат к какому пакету.

Вопрос в том, что я должен изменить, чтобы создать один «python package» demopackage и один demopackage-test, содержащий только test/unit_test.py (мой файл данных для второго пакета)?

Позвольте мне быть более ясным: полученный demopackage должен быть идентичен тому, созданный debuild, когда у меня есть только один пакет, указанный в debian/control (т.е. он содержит код, установленный в /usr/share/pyshared, Symlinks созданные в /usr/lib/python2.7/... и т.д.).

demopackage-test Я могу справиться сам, я просто добавлю файл debian/demopackage-test.install, но я не знаю, что делать с demopackage.

Вы можете скачать пакетный тестовый код here.

ответ

0

Вы получили в основном ответ: dh_install - это простой способ указать, куда идти.

Если вы можете легко перечислить файлы и/или каталоги, которые вы хотите разместить в demopackage, то создание файла debian/demopackage.install позаботится об этой проблеме. Для многих пакетов питона, он заканчивает достаточно иметь строку

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

Однако, если вам нужно больше гибкости, чем dh_install может предоставить, вы можете использовать некоторые явные команды оболочки вместо или в дополнение к dh_install. Например, чтобы сделать все , который получает установленную на debian/tmp ходу в demopackage для один тест/unit_test.py файла, за исключением, вы могли бы поместить эту строфу в debian/rules:

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

Вы можете очень многое сделать все, что вы хотите чтобы поместить нужные файлы в нужные места, если вы не извлекаете файлы извне дерева сборки, а все инструменты, которые вы используете на этом пути, учитываются зависимостями сборки.

 Смежные вопросы

  • Нет связанных вопросов^_^