¿Cómo creo un paquete Deb para una sola secuencia de comandos python?

77

Tengo un único script de python que quiero distribuir como un paquete Deb. Es un indicador que muestra la fecha local en el panel de Unity. Seguí crear un paquete .deb a partir de scripts o binarios pero no pude crear un paquete Deb porque falla.

¿Puede alguien darme una instrucción paso a paso sobre lo que debería hacer? Por lo que sé, este script depende de python-appindicator .

NOTA:
No quiero enlaces a las instrucciones de empaquetado de Debian / Ubuntu. He visto la mayoría de ellos. No los encuentro amigables para principiantes.

    
pregunta sagarchalise 27.12.2011 - 12:12

7 respuestas

83

Lo que sigue es un ejemplo básico de cómo podría verse un paquete fuente para un script python. Si bien la mayoría de los tutoriales de empaquetado son un poco complejos, realmente pueden ayudar si se produce un problema. Dicho esto, primero aprendí los conceptos básicos del empaquetado de Debian simplemente mirando los paquetes de Debian. apt-get source algo similar y aprende con el ejemplo.

Aquí está el diseño básico del paquete fuente:

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

Ejecute dch --create en el directorio para crear una entrada debian/changelog con formato correcto.

debian / copyright debería verse así:

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 puede ser: 7

debian / rules :

#!/usr/bin/make -f

%:
    dh $@ --with python2

Tenga en cuenta que debe haber "tab" antes de dh $@ --with python2 , no espacios.

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/

Este archivo indica qué archivo se instalará en qué carpeta.

Ahora compila con debuild --no-tgz-check

Esto creará un paquete de Deb funcional. Lintian lanzará algunas advertencias con respecto a la falta de un orig.tar.gz, pero a menos que planee crear un proyecto correcto original que haga lanzamientos de tarball, probablemente solo quiera ignorar eso por ahora.

    
respondido por el andrewsomething 30.12.2011 - 19:25
18
  1. crea una carpeta con cualquier nombre en tu casa, por ejemplo: mypyscript
  2. Abra la carpeta y cree dos carpetas con los nombres 'DEBIAN' y 'usr'
  3. Abra la carpeta DEBIAN. Cree un archivo de texto (sin extensión) con el nombre 'control' allí.
  4. Abra 'control' y escriba lo siguiente y guárdelo en 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. Volver a la carpeta llamada mypyscript. Abra 'usr'. Crea una carpeta llamada 'bin'. Abra 'bin' y pegue su archivo pythonscript allí.

  6. También puedes hacer una entrada en el menú. Pero eso no es esencial.
  7. Regrese a la carpeta de inicio donde se encuentra la carpeta 'mypyscript' o cierre el explorador de archivos.
  8. Abrir terminal. Asegúrese de que la terminal esté en la carpeta de inicio. tipo dpkg -b mypyscript . Luego presione enter. En segundos, su paquete Deb está listo

nota: rellene el archivo 'control' correctamente. No use apóstrofes. Es solo para indicar los nombres.

    
respondido por el ST Alfas 30.12.2011 - 16:16
9

Puedes probar con Debreate , una herramienta GUI para crear paquetes.

    
respondido por el davidc3 30.12.2011 - 13:55
3

Lo echaría un vistazo rápidamente, ideal para crear aplicaciones rápidas y generar debs en google o puede encontrar tutoriales aquí enlace

    
respondido por el Oly 30.12.2011 - 23:16
2

Pruebe pkgme ​​. Se supone que solo funciona.

Instalar a través de:

sudo apt install pkgme

Ejecutar vía:

pkgme
debuild

(Es posible que un desarrollador nuevo tenga que ejecutar gpg --gen-key , consulte Clave de desarrollo para hacerlo correctamente)

    
respondido por el ams 30.12.2011 - 20:16
1

Mientras tanto, hay un artículo que describe el dilema encontrado en enlace . Principalmente afirma que hay dh-virtualenv trabajando junto con make-deb para implementar fácilmente el código de Python simplemente usando un archivo setup.py. Puede encontrar un breve manual en enlace

    
respondido por el tc88 18.11.2017 - 19:46
0

Puedes intentar usar Debreate

Esta es una Interfaz Gui para crear paquetes y cosas así puedes usar el PPA también si no quieres descargarlo desde el sitio web que se menciona arriba.

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

He condensado el ppa para que funcione como una sola línea de código. ¡Gracias por la increíble pregunta y asegúrate de seguir introduciendo esas líneas de código en la terminal!

    
respondido por el Galien1 08.07.2017 - 02:36

Lea otras preguntas en las etiquetas