Il y a une tonne d'informations sur la façon de le faire, mais depuis "il y a plus d'une façon d'habiller un chat" , et tous les tutoriels/manuels qui couvrent un peu de le processus semble faire certaines hypothèses qui sont différentes des autres tutoriels, je n'ai toujours pas réussi à le comprendre.
Jusqu'à présent, c'est ce que je pense avoir compris.
CDBS
ou debhelper
. Debhelper est le moyen recommandé pour les débutants.DEBIAN
dans le répertoire source avec un certain nombre de fichiers clarifiant où les fichiers doivent être copiés, à quel régime de droits d'auteur et de licence ils sont soumis, quelles dépendances ils ont, etc. ...dh_make
commande si la source Python est également livrée avec un _ setup.py
script.Maintenant mes questions:
setup.py
script qui installe un programme autonome? EDIT: By programme autonome Je veux dire un programme destiné à être utilisé par un utilisateur de bureau (par opposition à un module que je comprends comme une collection de fonctionnalités à utiliser par d'autres logiciels après importés). Dans mon cas spécifique, j'aurais réellement besoin de deux de tels "programmes": le logiciel principal et un utilitaire séparé (en fait, un deuxième "programme" qui devrait être dans le même paquet avec le un autre).BTW: Ce sont les meilleures sources d'informations que j'ai pu trouver jusqu'à présent. Si vous avez quelque chose de mieux que cela, partagez-le! :)
Il semble que stdeb fera ce que vous voulez.
De plus, pour l'installation de scripts, je recommande fortement distribuer console_scripts le support du point d'entrée.
Cet article de Barry Varsovie m'a aidé à aller assez loin dans le processus. Cependant, je devais encore faire beaucoup de recherches sur le côté, et j'ai lu la plupart des Guide d'emballage Ubunt quelque temps dans le passé.
Avoir un bon setup.py
est un très bon conseil. J'ai trouvé ces deux guides assez bons:
La bonne façon de construire un paquet deb est d'utiliser dpkg-buildpackage
mais parfois c'est un peu compliqué. À la place, vous pouvez utiliser dpkg -b <folder>
et il créera votre paquet Debian.
Ce sont les bases pour créer un paquet Debian avec dpkg -b <folder>
avec n'importe quel binaire ou avec n'importe quel type de script qui s'exécute automatiquement sans avoir besoin d'une compilation manuelle (Python, Bash, Pearl, Ruby):
ProgramName-Version/
ProgramName-Version/DEBIAN
ProgramName-Version/DEBIAN/control
ProgramName-Version/usr/
ProgramName-Version/usr/bin/
ProgramName-Version/usr/bin/your_script
Les scripts placés dans /usr/bin/
sont directement appelés depuis le terminal, notez que je n'ai pas ajouté d'extension au script. Vous pouvez également remarquer que la structure du paquet deb sera la structure du programme une fois installé. Donc, si vous suivez cette logique si votre programme a un seul fichier, vous pouvez le placer directement sous ProgramName-Version/usr/bin/your_script
, mais si vous avez plusieurs fichiers, vous devez les placer sous ProgramName-Version/usr/share/ProgramName/all your files
et placez un seul fichier sous /usr/bin/
qui appellera vos scripts depuis /usr/share/ProgramName/
Modifiez toutes les autorisations de dossier en root:
chown root:root -R /path/to/ProgramName-Version
Modifiez les autorisations du script:
chmod 0755 /path/to/the/script
Enfin, vous pouvez exécuter: dpkg -b /path/to/the/ProgramName-Version
et votre paquet deb sera créé! (Vous pouvez également ajouter les scripts post/pre inst et tout ce que vous voulez, cela fonctionne comme un paquet Debian normal)
Voici un exemple du fichier control
. Il vous suffit de le copier-coller dans un fichier vide appelé "control" et de le placer dans le dossier 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.
Il existe plusieurs bibliothèques qui résument toutes les étapes nécessaires et vous permettent de transformer votre paquet python en paquet Debian avec une seule commande).
En supposant que votre package python possède déjà le setup.py
, dans le répertoire où setup.py
est localisé, vous pouvez utiliser:
stdeb (Déjà mentionné dans ce answer , installez avec pip install stdeb
). Pour créer un paquet Debian, exécutez:
python setup.py --command-packages=stdeb.command bdist_deb
Production .deb
le fichier sera situé dans bdist_deb
répertoire.
fpm (installez avec gem install --no-ri --no-rdoc fpm
). Pour créer un paquet Debian, exécutez:
fpm -s python -t deb setup.py
py2deb (installez avec pip install py2deb
). Pour créer un paquet Debian, exécutez:
py2deb -r . .
Chacune de ces bibliothèques a ses propres mises en garde, vous pouvez donc essayer ce qui vous convient le mieux.