Упакуйте библиотеку Python для Debian в нестандартный каталог, используя pybuild - PullRequest
0 голосов
/ 27 января 2020

Я хочу создать пакет Debian для использования в моей компании. Политика по умолчанию для таких пользовательских пакетов заключается в установке их в нестандартном каталоге, ie, а не в /usr.

Я стараюсь использовать инструменты Debian столько, сколько могу, но не могу найдите способ указать pybuild установить мой пакет в /opt/python-mypackage/mypackageversion.

Вот фактический файл rules:

#!/usr/bin/make -f
DH_VERBOSE = 1
export PYBUILD_NAME = mypackage-0.8.2
export PYBUILD_INSTALL_ARGS=--prefix=/opt/python-mypackage/0.8.2 --install-layout=deb

%:
    dh $@ --with python2,python3 --buildsystem=pybuild

Журнал процесса упаковки показывает, что файлы установлены в /usr:

(...)
running install_scripts
Installing mypackage script to /<<PKGBUILDDIR>>/debian/python-mypackage/usr/bin
I: pybuild base:170: /usr/bin/python3 setup.py install --root /<<PKGBUILDDIR>>/debian/python3-mypackage --prefix=/opt/python-mypackage/0.8.2 --install-layout=deb
running install
running build
running build_py
running install_lib
creating /<<PKGBUILDDIR>>/debian/python3-mypackage
creating /<<PKGBUILDDIR>>/debian/python3-mypackage/usr
creating /<<PKGBUILDDIR>>/debian/python3-mypackage/usr/lib
creating /<<PKGBUILDDIR>>/debian/python3-mypackage/usr/lib/python3.4
creating /<<PKGBUILDDIR>>/debian/python3-mypackage/usr/lib/python3.4/dist-packages
copying /<<PKGBUILDDIR>>/.pybuild/pythonX.Y_3.4/build/mypackage.py -> /<<PKGBUILDDIR>>/debian/python3-mypackage/usr/lib/python3.4/dist-packages
byte-compiling /<<PKGBUILDDIR>>/debian/python3-mypackage/usr/lib/python3.4/dist-packages/mypackage.py to mypackage.cpython-34.pyc
(...)

Есть идеи о том, как настроить pybuild для моих нужд (кроме использования pybuild)?

1 Ответ

0 голосов
/ 27 января 2020

Единственное решение, которое я нашел, было переопределить цель dh_install, в результате чего был получен следующий файл rules:

#!/usr/bin/make -f
#DH_VERBOSE = 1
export PYBUILD_NAME = mypackage-0.8.2
MYPACKAGE_DIR = /opt/python-mypackage/0.8.2

%:
    dh $@ --with python2,python3 --buildsystem=pybuild

override_dh_install:
    dh_install

    mkdir -p $(CURDIR)/debian/python-mypackage-0.8.2$(MYPACKAGE_DIR)
    mv $(CURDIR)/debian/python-mypackage-0.8.2/usr/* $(CURDIR)/debian/python-mypackage-0.8.2$(MYPACKAGE_DIR)
    rmdir $(CURDIR)/debian/python-mypackage-0.8.2/usr

    mkdir -p $(CURDIR)/debian/python3-mypackage-0.8.2$(MYPACKAGE_DIR)
    mv $(CURDIR)/debian/python3-mypackage-0.8.2/usr/* $(CURDIR)/debian/python3-mypackage-0.8.2$(MYPACKAGE_DIR)
    rmdir $(CURDIR)/debian/python3-mypackage-0.8.2/usr
...