paquetes modulos mac librerias instalar como agregar python debian

modulos - ¿Cómo hago el empaquetado Debian de un paquete Python?



instalar virtualenv (5)

Necesito escribir, o encontrar, un script para crear un paquete Debian, usando python-support, desde un paquete Python El paquete de Python será Python puro sin extensiones C.

El paquete de Python para propósitos de prueba solo será un directorio con un archivo __init__.py vacío y un solo módulo de Python, package_test.py .

El script de empaquetado debe usar el soporte de Python para proporcionar el código de byte correcto para las posibles instalaciones múltiples de Python en una plataforma de destino, es decir, v2.5 y v2.6 en Ubuntu Jaunty.

La mayoría de los consejos que encuentro mientras busco en Google son solo ejemplos de hacks desagradables que ni siquiera usan python-support o python-central.

He pasado horas investigando esto, y lo mejor que puedo hacer es hackear el script de un proyecto de código abierto existente, pero no sé qué bits son necesarios para lo que estoy haciendo.

¿Alguien aquí ha hecho un paquete Debian a partir de un paquete Python de una manera razonablemente no hacky?

Estoy empezando a pensar que me llevará más de una semana pasar de no tener conocimiento del empaquetado de Debian y del soporte de python a obtener un script de trabajo. ¿Cuánto tiempo le ha llevado a los demás?


Creo que lo que quieres es http://pypi.python.org/pypi/stdeb :

stdeb produce paquetes fuente de Debian desde paquetes de Python a través de un nuevo comando distutils, sdist_dsc. Se proporcionan valores predeterminados automáticos para el paquete Debian, pero muchos aspectos del paquete resultante se pueden personalizar (consulte la sección de personalización, a continuación). Un comando adicional, bdist_deb, crea un paquete binario de Debian, un archivo .deb.



La forma correcta de crear un paquete deb es usando dpkg-buildpackage pero a veces es un poco complicado. En su lugar, puede usar dpkg -b <folder> y creará su paquete Debian.

Estos son los conceptos básicos para crear un paquete Debian con dpkg -b <folder> con cualquier binario o con cualquier tipo de script que se ejecute automáticamente sin necesidad de compilación manual (Python, Bash, Pearl, Ruby):

  1. Crea los archivos y carpetas para recrear la siguiente estructura:

    ProgramName-Version/ ProgramName-Version/DEBIAN ProgramName-Version/DEBIAN/control ProgramName-Version/usr/ ProgramName-Version/usr/bin/ ProgramName-Version/usr/bin/your_script

    Los scripts ubicados en /usr/bin/ se llaman directamente desde el terminal, tenga en cuenta que no agregué una extensión al script. También puedes notar que la estructura del paquete deb será la estructura del programa una vez que esté instalado. Por lo tanto, si sigue esta lógica si su programa tiene un solo archivo, puede ProgramName-Version/usr/bin/your_script directamente en ProgramName-Version/usr/bin/your_script , pero si tiene varios archivos, debe colocarlos en ProgramName-Version/usr/share/ProgramName/all your files y coloque solo un archivo en /usr/bin/ que llamará a sus scripts desde /usr/share/ProgramName/

  2. Cambie todos los permisos de la carpeta a la raíz:

    chown root:root -R /path/to/ProgramName-Version

  3. Cambia los permisos del script:

    chmod 0755 /path/to/the/script

  4. Finalmente, puede ejecutar: dpkg -b /path/to/the/ProgramName-Version y se dpkg -b /path/to/the/ProgramName-Version su paquete deb! (También puede agregar los scripts post / pre inst y todo lo que desee, funciona como un paquete Debian normal)

Aquí hay un ejemplo del archivo de control . Solo necesita copiarlo y pegarlo en un archivo vacío llamado "control" y colocarlo en la carpeta 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.


La mayoría de las respuestas publicadas aquí están desactualizadas, afortunadamente recientemente se ha realizado una excelente publicación de Debian wiki, que explica las mejores prácticas actuales y describe cómo crear paquetes de Debian para módulos y aplicaciones de Python.


Tomaría las fuentes de un paquete Debian existente y reemplazaría el paquete real en él con su paquete. Para encontrar una lista de paquetes que dependen de la compatibilidad con Python, haga

apt-cache rdepends python-support

Elija un paquete que sea Architecture: all , para que sea un paquete de Python puro. Al revisar esta lista, descubrí que, por ejemplo, python-flup podría ser un buen punto de partida. Para obtener la fuente de uno de estos paquetes, haga

apt-get source <package>

Para construirlo, hazlo.

cd <packagesrc> dpkg-buildpackage -rfakeroot

Cuando lo edite, espere que solo necesite los archivos en la carpeta debian ; Reemplace todas las referencias a flup con su propio nombre de paquete.

Una vez que comience, le tomará un día completarla.