Outils pour utilisateurs

Outils du site


admin:procedures:creer_paquet_chapril

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Prochaine révision
Révision précédente
admin:procedures:creer_paquet_chapril [2020/08/23 10:29] – créée fpoulainadmin:procedures:creer_paquet_chapril [2020/08/23 13:41] (Version actuelle) – [Ajout du contenu] fpoulain
Ligne 1: Ligne 1:
-====== Créer un paquet Chapril ======+====== Création d'un paquet Chapril ======
  
 +L'idée est de débianiser les confs et cripts pour faciliter leur application et leur maintenance.
 +
 +Maintenir un logiciel patché se fait par d'autres méthodes.
 +
 +<note tip>Nous recommandons la lecture du [[https://wiki.debian.org/Packaging|Wiki de Debian]] pour plus d'informations. Le manuel de référence [[https://www.debian.org/doc/manuals/debmake-doc/|est ici]]</note>
 +
 +===== Dépendances de packaging =====
 +
 +On installera:
 +  apt install devscripts debhelper debmake dupload
 +
 +===== Création du paquet =====
 +
 +On va créer un paquet « native » (i.e. qui ne dérive pas d'u packaging existant) ''foobar-chapril'' qui installe le fichier ''/etc/foobar''.
 +<code bash>
 +mkdir foobar-chapril
 +cd foobar-chapril
 +debmake -n
 +</code>
 +Notez que debmake s'attend à un suffixe avec ''-'' dans le nom. Sans quoi il va échouer.
 +
 +On obtient:
 +<code>
 +.
 +└── debian
 +    ├── changelog
 +    ├── compat
 +    ├── control
 +    ├── copyright
 +    ├── README.Debian
 +    ├── rules
 +    ├── source
 +    │   ├── format
 +    │   └── local-options
 +    └── watch
 +</code>
 +
 +Un des fichiers les plus importants est debian/control. On l'édite et on le complète.
 +<code conf debian/control>
 +Source: foobar-chapril
 +Section: admin
 +Priority: optional
 +Maintainer: Chapril Administrator Team <noc@chapril.org>
 +Build-Depends: debhelper (>=11~)
 +Standards-Version: 4.1.4
 +Homepage: http://admin.chapril.org
 +
 +Package: foobar-chapril
 +Architecture: all
 +Depends: ${misc:Depends}, ${shlibs:Depends}
 +Description: Chapril joke.
 +  This package provide set of disrutiptive solutions to help Chapril admins to
 +  have a ready-to-use software collection.
 +</code>
 +
 +Il est aussi de bon ton d'éditer ''debian/copyright''.
 +
 +===== Ajout du contenu =====
 +
 +On ajoute le fichier à installer :
 +  mkdir etc/
 +  touch etc/foobar
 +
 +Et on [[https://www.debian.org/doc/manuals/maint-guide/dother.en.html#install|déclare ce fichier]] parmis ceux à copier lors de l'installation:
 +<code conf debian/install>
 +etc/* etc/
 +</code>
 +
 +===== Édition du changelog =====
 +
 +Plutôt qu'éditer à la main ''debian/changelog'' on exécute
 +  dch
 +
 +Le format attendu de changelog ressemble à une succession de blocs avec l'élément le plus récent au dessus :
 +<code conf debian/changelog>
 +foobar-chapril (0.1) stable; urgency=low
 +
 +  * Initial release.
 +
 + -- François Poulain <email_valide@gpg-users.tld>  Sun, 23 Aug 2020 14:50:56 +0200
 +</code>
 +
 +On veillera à donner une adresse pour laquelle on peut signer avec GPG.
 +
 +===== Build =====
 +
 +On build dans le dossier du paquet:
 +  debuild
 +
 +<note important>Vous devez être en capacité de signer cette version du paquet. Sans quoi ''debuild'' va s terminer avec une erreur :
 +<code>
 +Now signing changes and any dsc files...
 + signfile dsc foobar-chapril_0.1.dsc No Body <nobody@noone.tld>
 +gpg: « No Body <nobody@noone.tld> » a été ignorée : Pas de clef secrète
 +gpg: /tmp/debsign.c0GlLNVE/foobar-chapril_0.1.dsc: clear-sign failed: Pas de clef secrète
 +debsign: gpg error occurred!  Aborting....
 +</code>
 +</note>
 +
 +==== Essai en local ====
 +
 +Vu la nocivité du paquet on peut l'essayer localement :
 +<code>
 +$ sudo dpkg -i ../foobar-chapril_0.1_all.deb
 +[sudo] Mot de passe de francois : 
 +Sélection du paquet foobar-chapril précédemment désélectionné.
 +(Lecture de la base de données... 507123 fichiers et répertoires déjà installés.)
 +Préparation du dépaquetage de ../foobar-chapril_0.1_all.deb ...
 +Dépaquetage de foobar-chapril (0.1) ...
 +Paramétrage de foobar-chapril (0.1) ...
 +
 +$ dpkg -S /etc/foobar 
 +foobar-chapril: /etc/foobar
 +
 +$ sudo dpkg -P foobar-chapril
 +(Lecture de la base de données... 507128 fichiers et répertoires déjà installés.)
 +Suppression de foobar-chapril (0.1) ...
 +Purge des fichiers de configuration de foobar-chapril (0.1) ...
 +</code>
 +
 +===== Upload sur le dépôt =====
 +
 +Pour la première fois il va falloir configurer dupload:
 +
 +<code perl ~/.dupload.conf>
 +package config;
 +
 +$cfg{'chapril'} = {
 +  fqdn => "admin.cluster.chapril.org",
 +  method => "scpb",
 +  login => "apt",
 +  incoming => "/var/www/apt/reprepro/incoming/",
 +};
 +</code>
 +
 +Ensuite on passe par dupload pour l'envoi sur le dépôt:
 +  dupload --to=chapril ../foobar-chapril_0.1_amd64.changes
 +
 +Un cron se charge toutes les 5 minutes d'importer les nouveaux paquets.
 +
 +===== Commit dans le git =====
 +
 +Avant de commiter on nettoie les fichiers temporaires engendrés par le build :
 +  dh clean
admin/procedures/creer_paquet_chapril.1598178580.txt.gz · Dernière modification : 2020/08/23 10:29 de fpoulain