2010-05-28 4 views
7

J'ai du mal à naviguer dans le labyrinthe des outils de distribution pour python et debian; cdbs, debhelper, python-support, python-central, bla bla bla ..moyen simple et direct pour empaqueter un programme python pour debian?

ma demande est assez simple un - un paquet python unique (répertoire contenant des modules et un __init__.py), un script pour l'exécution du programme (script.py) et quelques icônes (.png) et les éléments de menu (fichiers .desktop). À partir de ces fichiers, comment puis-je construire un fichier .deb simple et propre sans utiliser les outils absurdes énumérés ci-dessus?

je suis ciblant principalement ubuntu, mais je voudrais si le paquet a travaillé sur debian droite

Répondre

3

D'abord, la réponse est qu'il n'y a aucun moyen simple de faire une dpkg et la documentation se morcelle dans un million de petits morceaux d'autant d'endroits. Cependant, le ubuntu Python Packaging Guide est très utile.

Pour les packages simples (plus faciles à décrire setuptools), les étapes sont assez simples une fois que vous avez une structure de contrôle debian mis en place:

  • Run setup.py --sdist --prune et assurez-vous de mettre dist-dir à quelque chose
  • raisonnable
  • Invoke dpkg-buildpackage avec les options appropriées pour votre forfait (probablement -b au moins)

Vous aurez besoin d'un fichier debian/rules pour buildpackage de fonctionner à partir, mais heureusement, le travail est fait pour vous si vous utilisez cdbs, vous voulez quelque chose de très similaire à:

#!/usr/bin/make -f 

DEB_PYTHON_SYSTEM := pysupport 

include /usr/share/cdbs/1/rules/debhelper.mk 
include /usr/share/cdbs/1/class/python-distutils.mk 

Si vous ne l'utilisez distutils, vous voudrez peut-être jeter un oeil à la page DebianPython/Policy sur le wiki (sous "CDBS + the hard way"). Il y a aussi une option pycentral pour DEB_PYTHON_SYSTEM, que vous pouvez google si vous voulez trouver plus d'informations sur.

+0

Le nouveau guide d'empaquetage Ubuntu Python se trouve à l'adresse: http://packaging.ubuntu.com/html/python-packaging.html –

+0

@DanielTrebbien Ce lien ne marche plus, mais le lien archive.org semble livrer ce qui était là. Le wiki d'Ubuntu actuel ne semble pas avoir d'autre chose que https://wiki.ubuntu.com/Python qui se contente de se reporter au wiki de Debian sur tout ce qui concerne l'empaquetage. – tripleee

5

python-stdeb devrait fonctionner pour vous. C'est sur Debian testing/unstable et Ubuntu (à partir de Lucid). Il s'agit moins d'une méthode de raccourci que d'un outil qui tente de générer le plus possible le paquet source. Il peut effectivement construire un paquet qui fonctionne correctement et est presque conforme aux normes. Si vous voulez que votre paquetage réponde aux standards de qualité pour être inclus dans Debian, Ubuntu, etc, vous devrez remplir des fichiers comme debian/copyright, etc.

Autant que les gens prétendent cdbs est vraiment facile, je tiens à pointer que le fichier de règles que Nick a mentionné pourrait facilement être fait avec debhelper7. Ne pas oublier, dh7 peut être personnalisé beaucoup plus facilement que les CDB peuvent.

#!/usr/bin/make -f 
%: 
    dh [email protected] 

Remarque: Vous devez vérifier si votre package répond à la politique Debian, Debian Politique Python, etc avant de soumettre à Debian. Vous aurez besoin de lire des documents pour cela - pas de raccourci.

Questions connexes