Как мне создать пакет deb для одного скрипта Python?

У меня есть один скрипт на python, который я хочу распространять как пакет deb. Это индикатор , который показывает локальную дату на панели Unity. Я следовал создать пакет .deb из скриптов или двоичных файлов , но я не смог создать пакет deb, потому что он не работает.

Может кто-нибудь дать мне пошаговую инструкцию, что мне делать? Насколько я знаю, этот сценарий зависит от python-appindicator.

ПРИМЕЧАНИЕ:
Я не хочу никаких ссылок на инструкции по сборке Debian / Ubuntu. Я видел большинство из них. Я не считаю их начинающими дружелюбными.

79
задан 14.04.2017, 01:25

7 ответов

Ниже приведен основной пример того, как может выглядеть исходный пакет для скрипта Python. Хотя большинство учебных пособий по упаковке немного сложны, они могут действительно помочь, если вы столкнетесь с проблемой. Тем не менее, я сначала изучил основы упаковки Debian, просто взглянув на пакеты Debian. apt-get source Что-то похожее и учиться на собственном примере.

Вот ваш основной макет пакета исходного кода:

my-script/
    -- myScript
    -- debian/
        -- changelog
        -- copyright
        -- compat
        -- rules
        -- control
        -- install

Запустите dch --create в каталоге, чтобы создать правильно отформатированную запись debian/changelog.

debian / copyright должен выглядеть следующим образом:

Format: http://www.debian.org/doc/packaging-manuals/copyright-format/1.0/
Upstream-Name: myScript
Upstream-Contact: Name, <email@address>

Files: *
Copyright: 2011, Name, <email@address>
License: (GPL-2+ | LGPL-2 | GPL-3 | whatever)
 Full text of licence.
 .
 Unless there is a it can be found in /usr/share/common-licenses

debian / compat может быть просто: 7

debian / rules :

#!/usr/bin/make -f

%:
    dh $@ --with python2

Обратите внимание, что перед dh $@ --with python2 должна быть «табуляция», а не пробелы.

debian / control :

Source: my-script
Section: python
Priority: optional
Maintainer: Name, <email@address>
Build-Depends: debhelper (>= 7),
               python (>= 2.6.6-3~)
Standards-Version: 3.9.2
X-Python-Version: >= 2.6


Package: my-script
Architecture: all
Section: python
Depends: python-appindicator, ${misc:Depends}, ${python:Depends}
Description: short description
 A long description goes here.
 .
 It can contain multiple paragraphs

debian / install :

myScript usr/bin/

Этот файл указывает, какой файл будет быть установленным в какую папку.

Теперь соберите его с помощью debuild --no-tgz-check

Это создаст функциональный пакет deb. Lintian собирается выдать несколько предупреждений об отсутствии файла orig.tar.gz, но если вы не планируете создать надлежащий вышестоящий проект, который выпускает тарбол-релизы, вы, вероятно, просто захотите пока игнорировать это.

0
ответ дан 22.04.2019, 00:50
  • 1
    Как поставщик программного блока (и backporter), я упаковываю сценарии Python справедливо часто. Я могу безопасно сказать, что этот ответ здесь является самым полным объяснением того, что сделать для создания пакета для единственного сценария Python. – Derek Kalweit 31.12.2011, 13:24
  • 2
    Вы могли также обновить его для Python 3? Я предполагаю, что мы должны внести изменения в debian/rules и debian/control, но я не уверен в этом. – Maslow 04.01.2014, 05:14
  • 3
    @Aditya, возможно, новый вопрос для Python3? Ответ wouldn' t очень отличаться, но этот ответ имеет целью быть самым простым примером / примером абсолютного минимума того, как упаковать сценарий Python. Не уверенный я хочу загромоздить его с несколькими реализациями. – T.Todua 04.01.2014, 05:48
  • 4
    @andrewsomething: Тогда Вы могли бы интересоваться этот , который предложил мне оставлять тот комментарий... Немного редактирования требуется на том, я попробовал бы силы в нем... – Alexandru Aliu 04.01.2014, 05:50
  • 5
    Что относительно библиотек? Если сценарий Python импортирует библиотеки тогда это won' t работа – Waqas Shabbir 16.03.2016, 21:20

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

0
ответ дан 22.04.2019, 00:50
  • 1
    Debcreate является классным. Мне нравится он до сих пор, только что запущенный использовать его сегодня для создания из исходного кода Python. – Martin Brown 16.03.2017, 12:01

Я хотел бы проверить быстро, отлично подходит для создания быстрых приложений и создания дабов, Google, или вы можете найти учебники здесь http://developer.ubuntu.com/

0
ответ дан 22.04.2019, 00:50
  • 1
    Да, мне также нравится добавлять. wiki.ubuntu.com/Quickly , если Вы предпочитаете видео как я, , youtube является большим ресурсом – Livven 31.12.2011, 16:45
  • 2
    Быстро не может просто превратить пакет в .deb пакет – Elmue 21.03.2016, 03:13

Попробуйте pkgme ​​. Это должно просто работать.

Установить с помощью:

sudo apt install pkgme

Выполнить с помощью:

pkgme
debuild

(Возможно, новый разработчик должен запустить gpg --gen-key, см. Разработка Keysigning , чтобы сделать) это правильно)

0
ответ дан 22.04.2019, 00:50
  1. создайте папку с любым именем в вашем доме, например: mypyscript
  2. Откройте папку и создайте две папки с именами 'DEBIAN' и 'usr'
  3. Откройте папку DEBIAN , Создайте там текстовый файл (без расширения) с именем control.
  4. Откройте «control» и введите его следующим образом и сохраните его в DEBIAN

    Package: mypyscript
    Version: 0.01
    Architecture: all
    Maintainer: your name<your mail id>
    Installed-Size: 2
    Depends: python-appindicator
    Section: extras
    Priority: optional
    Homepage: your homepage
    Description: describe
    
  5. Назад в папку с именем mypyscript. Откройте «usr». Создайте папку с именем «bin». Откройте «bin» и вставьте туда свой файл pythonscript.

  6. Вы также можете сделать пункт меню. Но это не обязательно.
  7. Вернитесь в домашнюю папку, где находится папка «mypyscript», или закройте браузер файлов.
  8. Открыть терминал. Убедитесь, что терминал находится в домашней папке. введите dpkg -b mypyscript. Затем нажмите ввод. В считанные секунды ваш пакет deb готов

примечание: заполните файл 'control' правильно. Не используйте апострофы. Это только для указания имен.

0
ответ дан 22.04.2019, 00:50
  • 1
    Работает отлично! Принятый ответ сложен. – Matthew Manela 09.01.2014, 02:24
  • 2
    Don' t забывают изменять разрешение ' myscript' к 755 и владелец его для укоренения. – Bron Davies 09.01.2014, 02:33
  • 3
    Как я создаю запись меню? – Chris Weber 02.07.2014, 22:52

Между тем есть статья, описывающая дилемму, найденную на https://www.nylas.com/blog/packaging-deploying-python/ . В основном говорится, что dh-virtualenv работает вместе с make-deb для простого развертывания кода Python, просто используя файл setup.py. Краткое руководство можно найти на https://gist.github.com/JeOam/bc6cbf38f04d6f9dbf81

.
0
ответ дан 22.04.2019, 00:50

Вы можете попробовать использовать Debreate

. Это графический интерфейс для создания пакетов и прочего, вы можете использовать PPA также, если вы не хотите загружать его с сайта, указанного выше. .

sudo add-apt-repository ppa:antumdeluge/<ppaname>; sudo apt update; sudo apt install debreate

Я сжал ppa так, что он работает как одна строка кода! Спасибо за удивительный вопрос и продолжайте загружать эти строки кода в терминал!

0
ответ дан 22.04.2019, 00:50

Теги

Похожие вопросы