Préface
Être responsable d'une machine signifie prendre soin du matériel ainsi que des composants logiciels. Comme le montre la vie quotidienne en tant qu'administrateur système, il est préférable d'installer un logiciel en tant que logiciel plutôt que comme un tas de fichiers source. Cela réduit les coûts pour maintenir correctement le système.
Les forfaits disponibles auprès de votre distributeur préféré sont validés et supervisés par un main-d'œuvre de package. Il a testé le logiciel et assure qu'il s'adapte aux autres packages logiciels disponibles dans la distribution. De plus, le package est signé avec une clé GPG du mainteneur de package. Cela garantit l'intégrité du package et vous montre que le package provient d'une source de confiance.
Le format du package dépend de votre distribution Linux. Les formats sélectionnés sont les suivants:
deb
Packages utilisés dans: Debian GNU / Linux, Ubuntu, Armbian, Linux Mint, Knoppix
RPM
Packages utilisés dans: Redhat, Fedora, Centos, OpenSUSE
TGZ et TXZ
Packages utilisés dans: Slackware
le goudron.xz
Packages utilisés dans: Arch Linux
Ce document explique comment créer un package pour Debian GNU / Linux brièvement. Pour des informations détaillées sur le format de la package Debian et les outils pour maintenir un système Linux basé sur «Deb», vous pouvez jeter un œil sur le livre de gestion des packages Debian [DPMB] pour créer des packages pour Debian GNU / Linux, ces documents sont essentiels:
Le package avec lequel nous travaillerons est nommé «Helloworld» et a la version numéro 0.1. À des fins de démonstration, il contient simplement un seul script python qui publie le célèbre message «Bonjour le monde!»:
#!/ usr / bin / pythonExigences
Comme l'étape 1, demandez votre clé GPG disponible. Plus tard, la clé sera nécessaire pour signer le package. Gardez à l'esprit que les forfaits non signés ne sont pas dignes de confiance et ne peuvent pas faire partie de l'univers Debian.
Au cas où vous n'avez pas encore de clé GPG en créant un. Vous pouvez suivre les trois étapes ci-dessous. La première commande génère une nouvelle clé, la seconde exporte votre nouvelle clé dans un fichier séparé, et le troisième ajoute la clé à votre clés personnel.
$ gpg --ge-cléPendant la création, assurez-vous que le nom donné _ votre nom_ est correct. Il est courant d'utiliser une combinaison de prénom et de nom de famille. Ce nom devra être exactement le même dans le package, alors, lors de la création du fichier «contrôle» du package Debian. Pour plus d'informations sur GPG, jetez un œil au manuel de confidentialité GNU [GPH].
Pour créer un package Debian avec code source, les packages logiciels suivants sont requis sur votre système:
En tant que «racine» de l'utilisateur, vous pouvez les installer en utilisant la commande suivante:
# APT-Get Installer Build-Essential AutoConf Automake Autotools-Dev Dh-Make Debhelper DevScripts Fakeroot Xutils Lintian PbuilderNous devons préparer un répertoire pour construire le package. Créez un répertoire pour préparer l'environnement dans lequel nous allons construire le package:
$ mkdir -p ~./ build / helloworld / 0.1Copiez le 'Tar.Archive compressée GZ dans le répertoire:
$ cp helloworld-0.1.le goudron.gz ~./ build / helloworld / 0.1Changer dans le répertoire et extraire le package:
$ CD ~./ build / helloworld / 0.1Maintenant, le répertoire contient à la fois le code source dans un répertoire séparé et l'archive compressée:
~ / build / helloworld / 0.1 $ lsDébitage
À ce stade, nous ajouterons les fichiers spécifiques à un package Debian. C'est pourquoi cette étape est nommée _debianisation_ du logiciel. Cela se fait en plusieurs étapes.
Se transformer en répertoire qui conserve l'intégralité du code source du package. Dans notre exemple, le package contient le fichier 'Helloworld.py ', seulement:
~ $ cd build / helloworld / 0.1 / Helloworld-0.1Ajoutons les fichiers spécifiques à un package Debian. L'outil 'DH_make' entre en jeu. Le commutateur «-e« utilise l'adresse donnée comme adresse e-mail dans le champ «RETENIER» du fichier «Debian / Control». Construire le package Utilisez votre propre adresse e-mail, plutôt. Gardez à l'esprit d'utiliser la même adresse e-mail qui correspond à votre clé GPG.
Le commutateur '-f' utilise le fichier donné comme archive source d'origine et saute la copie de l'arborescence du programme actuelle à 'Programme.origine.
~ / build / helloworld / 0.1 / Helloworld-0.1 $ dh_make -e Frank.hofmann @ efho.de -f… / helloworld-0.1.le goudron.gzÀ l'invite, il vous est demandé de sélectionner le type de package qui doit être créé. Pour choisir _Single binary_ type 's'.
Type de package: binaire unique, binaire indépendant, binaire multiple, bibliothèque, module de noyau, patch de noyau?Il en résulte un répertoire appelé «Debian»:
~ / build / helloworld / 0.1 / Helloworld-0.1 $ lsCe répertoire contient tous les fichiers spécifiques au package.
Le fichier 'Debian / Control' conserve les dépendances nécessaires _po à construire le package. En utilisant la commande 'dpkg-depcheck -d ./ Configurer «Vous recevez une liste avec tous les packages requis. Dans notre cas, il n'y a aucun autre package nécessaire car Python est une langue interprétée.
Ensuite, nous devons modifier le fichier «Debian / Control» et ajouter des valeurs spécifiques au package. Pour notre exemple, il semble que suit:
Source: HelloworldLe fichier «Debian / Copyright» contient les informations de licence pour le package logiciel. Il est préparé pour la libération via la licence publique GNU 2 (GPLV2). Pour notre exemple, il semble que suit:
Format: http: // www.Debian.org / doc / packaging-manuels / copyright-format / 1.0 /Après les informations sur le droit d'auteur, le fichier «Debian / Changelog» doit être ajusté. Dans notre exemple, nous ajoutons les informations «version initiale».
Helloworld (0.1-1) instable; urgence = basC'est tout ce dont nous avons besoin jusqu'à présent - maintenant nous pouvons construire le package, enfin.
Construisez le package
Pour construire le package, nous devons remonter un répertoire et exécuter la commande suivante:
~ / build / helloworld / 0.1 / Helloworld-0.1 $ dpkg-buildpackage -rfakerootL'option «-rfakeroot» permet «dpkg-buildpackage» d'exécuter les commandes en tant qu'utilisateur privilégié à l'aide de la commande «Fakeroot». Ceci est nécessaire pour préparer le package et créer des fichiers et des répertoires.
La commande ci-dessus se traduit par une liste plus longue des messages de sortie (illustré ici dans un environnement de langue allemande):
Félicitations - vous avez réussi à construire un package Debian - ouais! Maintenant, regardons de plus près le package. Ici, «Lintan» entre en jeu. Cet outil valide votre colis afin de trouver des violations contre les règles strictes que les forfaits de Debian doivent respecter.
Pour exécuter les tests Type dans la commande suivante:
Linto Helloworld_0.1-1_AMD64.debL'outil ne trouve pas de violations de règles mais aussi des erreurs d'orthographe, et de mauvais caractères. L'interrupteur `` `` pédantique '' demande «lint» à être beaucoup plus critique que d'habitude. Comme vous pouvez le voir ci-dessous, «Linto» est un peu grincheux et a découvert trois avertissements, et une erreur.
À l'exception du premier avertissement, nous pouvons facilement rendre «Lintan» heureux et ajuster le contenu du package en fonction de l'ensemble de règles. L'avertissement «new-package-should-close-itp-bug» signifie qu'il n'y a pas de rapport de bogue contre le package ITP (ITP signifie _intended to package_). Pour un package Debian régulier, un rapport de bogue doit être envoyé au bugtracker pour le package ITP pour informer les autres que vous avez l'intention de commencer à emballer ce logiciel.
Le fichier 'Readme.Debian 'vise à conserver des billets supplémentaires concernant ce package. 'dh_make' a créé ce fichier pour nous:
Helloworld pour DebianDans notre exemple, nous n'avons pas d'informations supplémentaires, nous pouvons donc supprimer le fichier.
Cet avertissement est soulevé car la description plus longue de notre package dans le fichier «Debian / Control» commence par plus d'un seul espace. Dès que nous supprimons un seul espace, l'avertissement disparaîtra.
Chaque package nécessite à la fois une description courte et plus longue dans «Debian / Control». Cette erreur est augmentée car les deux descriptions sont identiques. Dès que nous avons prolongé la description plus longue, l'erreur a disparu.
Liens et références
- [DDR] Andreas Barth, Adam Di Carlo, Raphaël Hertzog, Lucas Nussbaum, Christian Schwarz, Ian Jackson: La référence du développeur Debian
- [DNMG] Josip Rodin, Osamu Aoki: Le guide de Debian New Haigeer's
- [DPMB] Axel Beckert, Frank Hofmann: The Debian Package Management Book
- [DPM] Le manuel de la politique Debian
- [DPT] Le tutoriel de Debian Packaging
- [GPH] Le manuel de confidentialité GNU
- [Lushpaipackage] Alex Lushpai: Comment créer un package Debian à partir de Source
Remerciements
L'auteur tient à remercier Axel Beckert et Gerold Rupprecht pour leur soutien et leurs critiques lors de la préparation de cet article.