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

76

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

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

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

    
задан sagarchalise 27.12.2011 в 13:12
источник

7 ответов

80

Далее следует базовый пример того, как может выглядеть исходный пакет для скрипта 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 protected]>

Files: *
Copyright: 2011, Name, <[email protected]>
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 / правила

#!/usr/bin/make -f

%:
    dh [email protected] --with python2

Обратите внимание, что перед dh [email protected] --with python2 должна быть «вкладка», а не пробелы.

Debian / контроль :

Source: my-script
Section: python
Priority: optional
Maintainer: Name, <[email protected]>
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 / установка

myScript usr/bin/

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

Теперь создайте его с помощью debuild --no-tgz-check

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

    
ответ дан andrewsomething 30.12.2011 в 20:25
источник
18
  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 . Затем нажмите enter. Через несколько секунд ваш пакет deb готов.

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

    
ответ дан ST Alfas 30.12.2011 в 17:16
9

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

    
ответ дан davidc3 30.12.2011 в 14:55
3

Я бы быстро проверил, отлично подходит для создания быстрых приложений и создания debs google, или вы можете найти учебники здесь Ссылка

    
ответ дан Oly 31.12.2011 в 00:16
2

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

Установить через:

sudo apt install pkgme

Запуск через:

pkgme
debuild

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

    
ответ дан ams 30.12.2011 в 21:16
0

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

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

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

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

    
ответ дан Galien1 08.07.2017 в 04:36
0

Между тем есть статья, описывающая дилемму, найденную на Ссылка . В основном говорится, что dh-virtualenv работает вместе с make-deb, чтобы легко развернуть код Python, используя файл setup.py. Краткое руководство можно найти на ссылке

    
ответ дан tc88 18.11.2017 в 20:46