web-dev-qa-db-fra.com

Comment créer un paquet deb pour un seul script python?

J'ai un seul script python que je souhaite distribuer en tant que package deb. Il s’agit d’un indicateur qui indique la date locale dans le panneau Unity. J'ai suivi créer un paquet .deb à partir de scripts ou de fichiers binaires mais je n'ai pas pu créer de paquet deb car il échoue.

Est-ce que quelqu'un peut me donner des instructions étape par étape sur ce que je devrais faire? Autant que je sache, ce script dépend de python-appindicator.

NOTE:
Je ne souhaite pas de liens vers les instructions de packaging Debian/Ubuntu. J'ai vu la plupart d'entre eux. Je ne les trouve pas amical pour les débutants.

79
sagarchalise

Ce qui suit est un exemple de base de l’apparence possible d’un paquet source pour un script python. Bien que la plupart des didacticiels sur l’emballage soient un peu complexes, ils peuvent vraiment vous aider si vous rencontrez un problème. Cela dit, j’ai d’abord appris les bases du packaging Debian en regardant simplement les paquets Debian. apt-get source quelque chose de similaire et d'apprendre par l'exemple.

Voici la présentation de votre paquet source de base:

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

Exécutez dch --create dans le répertoire pour créer une entrée debian/changelog correctement formatée.

debian/copyright devrait ressembler à:

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 peut simplement être: 7

debian/rules:

#!/usr/bin/make -f

%:
    dh $@ --with python2

Notez qu'il doit y avoir "tab" avant dh $@ --with python2, pas d'espaces.

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/

Ce fichier indique quel fichier sera installé dans quel dossier.

Maintenant, construisez-le avec debuild --no-tgz-check

Cela créera un paquet deb fonctionnel. Lintian va lancer quelques avertissements concernant l’absence d’un fichier orig.tar.gz, mais à moins que vous ne envisagiez de créer un projet en amont approprié qui produira des versions tarball, vous voudrez probablement l’ignorer pour le moment.

85
andrewsomething
  1. créez un dossier avec n'importe quel nom sur votre maison, par exemple: mypyscript
  2. Ouvrez le dossier et créez deux dossiers avec les noms 'DEBIAN' et 'usr'
  3. Ouvrez le dossier DEBIAN. Créez un fichier texte (sans extension) avec le nom 'control' ici.
  4. Ouvrez 'control' et tapez comme suit et enregistrez-le sur 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. Retour au dossier nommé mypyscript. Ouvrez 'usr'. Créez un dossier nommé 'bin'. Ouvrez 'bin' et collez votre fichier pythonscript à cet endroit.

  6. Vous pouvez également créer une entrée de menu. Mais ce n'est pas essentiel.
  7. Retournez au dossier de départ où se trouve le dossier 'mypyscript' ou fermez le navigateur de fichiers.
  8. Terminal ouvert. Assurez-vous que le terminal est dans le dossier de départ. tapez dpkg -b mypyscript. Puis appuyez sur Entrée. En quelques secondes votre paquet deb est prêt

note: veuillez remplir le fichier 'control' correctement. N'utilisez pas d'apostrophes. C'est seulement pour indiquer les noms.

18
ST Alfas

Vous pouvez essayer avec Debreate , un outil graphique permettant de créer des packages.

9
davidc3

Je voudrais vérifier rapidement, idéal pour créer des applications rapides et générer des debs google il ou vous pouvez trouver des tutoriels ici http://developer.ubuntu.com/

3
Oly

Essayez pkgme . C'est censé fonctionner.

Installer via:

Sudo apt install pkgme

Courez via:

pkgme
debuild

(Un nouveau développeur devra peut-être exécuter gpg --gen-key, voir Development Keysigning pour le faire correctement)

2
ams

En attendant, un article décrit le dilemme trouvé sur https://www.nylas.com/blog/packaging-deploying-python/ . Il indique principalement que dh-virtualenv travaille avec make-deb pour déployer facilement le code Python à l'aide d'un fichier setup.py. Un court manuel peut être trouvé sur https://Gist.github.com/JeOam/bc6cbf38f04d6f9dbf81

1
tc88

Vous pouvez essayer d'utiliser Debreate

Ceci est une interface graphique permettant de créer des packages et des outils que vous pouvez utiliser avec PPA également si vous ne souhaitez pas le télécharger à partir du site Web indiqué ci-dessus.

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

J'ai condamné le ppa pour qu'il ne soit composé que d'une seule ligne de code! Merci pour cette question géniale et assurez-vous de continuer à insérer ces lignes de code dans le terminal!

0
Galien1