Ответ 1
Похоже, stdeb будет делать то, что вы хотите.
Кроме того, для установки сценариев я настоятельно рекомендую распространять поддержку точки входа console_scripts.
Существует масса информации о том, как это сделать, но, поскольку "существует более одного способа избавиться от кошки", и все учебные пособия/руководства, которые охватывают часть процесса, похоже, делают определенные предположения, которые отличаются от других учебники, я все еще не смог понять это.
Пока это то, что я думаю, я понял.
CDBS
либо debhelper
. Debhelper - рекомендуемый способ для начинающих.DEBIAN
каталога DEBIAN
в исходном каталоге несколькими файлами, в которых уточняется, куда следует копировать файлы, какой схеме авторского права и лицензирования они подвержены, какие у них зависимости и т.д.dh_make
если исходный код Python также поставляется со скриптом dist.tils setup.py
.Теперь мои вопросы:
setup.py
который устанавливает автономную программу? РЕДАКТИРОВАТЬ: Под автономной программой я имею в виду программу, предназначенную для использования настольным пользователем (в отличие от модуля, который я понимаю, как набор функций, которые будут использоваться другим программным обеспечением после импорта). В моем конкретном случае мне фактически потребовалось бы две такие "программы": основное программное обеспечение и отдельная утилита (в сущности, вторая "программа", которая должна быть в одном пакете с другой).КСТАТИ: Это лучшие источники информации, которые я мог найти себя до сих пор. Если у вас есть что-то лучше, чем это, пожалуйста, поделитесь! :)
Похоже, stdeb будет делать то, что вы хотите.
Кроме того, для установки сценариев я настоятельно рекомендую распространять поддержку точки входа console_scripts.
Эта статья Барри Варшавы помогла мне пройти через этот процесс довольно далеко. Тем не менее, мне все еще приходилось много искать, и я читал большую часть руководства по сборке Ubuntu некоторое время назад.
Наличие хорошего setup.py
- действительно хороший совет. Я нашел эти два руководства довольно хорошими:
Правильный способ создания пакета deb использует dpkg-buildpackage
, но иногда он немного сложнее. Вместо этого вы можете использовать dpkg -b <folder>
, и он создаст ваш пакет Debian.
Это основы для создания пакета Debian с dpkg -b <folder>
с любым двоичным кодом или с любым типом script, который запускается автоматически без ручной компиляции (Python, Bash, Pearl, Ruby):
ProgramName-Version/
ProgramName-Version/DEBIAN
ProgramName-Version/DEBIAN/control
ProgramName-Version/usr/
ProgramName-Version/usr/bin/
ProgramName-Version/usr/bin/your_script
Сценарии, помещенные в /usr/bin/
, вызываются непосредственно из терминала, обратите внимание, что я не добавил расширение к script. Также вы можете заметить, что структура пакета deb будет структурой программы после ее установки. Поэтому, если вы придерживаетесь этой логики, если ваша программа имеет один файл, вы можете разместить ее под ProgramName-Version/usr/bin/your_script
, но если у вас несколько файлов, вы должны поместить их под ProgramName-Version/usr/share/ProgramName/all your files
и поместить только один файл в /usr/bin/
, который будет вызовите свои сценарии из /usr/share/ProgramName/
Измените все права доступа к папке на root:
chown root:root -R /path/to/ProgramName-Version
Измените разрешения script:
chmod 0755 /path/to/the/script
Наконец, вы можете запустить: dpkg -b /path/to/the/ProgramName-Version
и ваш пакет deb будет создан! (Вы также можете добавить сценарии post/pre inst и все, что хотите, оно работает как обычный пакет Debian)
Вот пример файла control
. Вам нужно только скопировать его в пустой файл под названием "control" и поместить его в папку DEBIAN
Package: ProgramName
Version: VERSION
Architecture: all
Maintainer: YOUR NAME <EMAIL>
Depends: python2.7, etc , etc,
Installed-Size: in_kb
Homepage: http://foo.com
Description: Here you can put a one line description. This is the short Description.
Here you put the long description, indented by 1 space.
Существует несколько библиотек, которые абстрагируют все необходимые шаги и позволяют вам преобразовать ваш пакет python в пакет debian с помощью одной команды.
Предполагая, что в вашем пакете Python уже есть setup.py
, в каталоге, где находится setup.py
, вы можете использовать:
stdeb (уже упоминалось в этом ответе, установите с помощью pip install stdeb
). Чтобы создать пакет Debian, запустите:
python setup.py --command-packages=stdeb.command bdist_deb
Выходной файл .deb
будет находиться в каталоге bdist_deb
.
fpm (установить с помощью gem install --no-ri --no-rdoc fpm
). Чтобы создать пакет Debian, запустите:
fpm -s python -t deb setup.py
py2deb (установить с помощью pip install py2deb
). Чтобы создать пакет Debian, запустите:
py2deb -r . .
Каждая из этих библиотек имеет свои предостережения, так что вы можете попробовать то, что вам больше подходит.