Упаковка приложения, использующего Perl и Python в Debian
У меня есть приложение, которое имеет различные разделы, некоторые из которых написаны на Perl, а некоторые на Python. Какой инструмент лучше всего использовать для упаковки такого приложения.
Сейчас я смотрю на deb-helper и все еще учусь его использовать, хотя не могу найти КАК для чего-то подобного. Идеи?
Обновить
Мой исходный макет:
AppRoot/
agi-bin/
MyApp/
Common/
web/
conf/
agi-bin
- Perl-скрипты; web
скрипты на питоне. Я хотел бы, чтобы место установки поддерживало эту иерархию для сценариев perl/python в /usr/lib/
а также conf
переход к /etc/myapp/
Обновление 2:
Если работа с скомпилированными приложениями скажем C++, то dh_make
с make-файлом делает работу. Если я работаю с Perl есть dh-make-perl
, Затем ссылка, предоставленная Томасом (в разделе комментариев) для упаковки Python добавляет distutils
в картину. Все это показывает разные способы упаковки разных приложений.
Я ищу идеи / рекомендации по наилучшему способу упаковки приложения, которое использует несколько языков, например, Python и Perl. Должен ли я использовать файл Makefile для обоих или это нормально просто переопределить dh_install
в файле правил и перемещать файлы вокруг? Что бы вы сказали, "правильный" способ сделать это?
Кроме того, я только изучаю весь этот упаковочный бизнес, так что все рекомендации приветствуются.
1 ответ
Использование debhelper - правильный подход - вам, безусловно, следует создать пакет.deb. Я рекомендую начать с этого урока.
Редактировать: если скрипты, которые вы пытаетесь установить, на самом деле являются "исполняемыми файлами" (в том смысле, что они предназначены для вызова в качестве программ, а не для работы в качестве библиотек на их соответствующих языках), то вам следует игнорировать dh-make-perl
, distutils
, dh_pycentral
и т. д. Все они предназначены для установки библиотек / пакетов / модулей, работы с зависимостями, генерации байт-кода и т. д. Вместо этого настройте debian/foo.install
файл, чтобы перечислить все скрипты, которые вы хотите установить, и пусть dh_install
развернуть их. Убедитесь, что вручную добавили зависимости (в debian/control
) к библиотекам, которые могут понадобиться сценариям, и, в частности, к нужным им версиям Python/Perl. Если на самом деле это просто копирование файлов как во время упаковки, так и во время установки, то ни одна из дополнительных функций debhelper не принесет никакой пользы. Когда вы обнаружите, что пишете сценарии postinstall, вернитесь назад и посмотрите, может ли debhelper сгенерировать их для вас.