Créer un paquet debian avec dh_make et dpkg-buildpackage
Par Ludovic Francois, mercredi 9 août 2006 à 00:34 :: debian :: #27 :: rss
Créer un paquet debian avec dh_make et dpkg-buildpackage
- Générer un répertoire debian modèle
- Éditer les fichiers de configuration
- Créer son propre dépôt apt debian
dh_make à lancer une seule fois
Cette commande nous permettra de générer le répertoire nommé debian ainsi qu'un lot de fichiers d'exemples à l'intérieur de ce répertoire.
Lancement de la commande
ludo@idefix:~/s2a-0.0.1 % cp /ddn/common/s2a/api_tools/s2a_bin/s2a-0.0.1b16_27M.tar.gz .. ludo@idefix:~/s2a-0.0.1 % dh_make -e lfrancois@datadirectnet.com -f ../s2a-0.0.1b16_27M.tar.gz ldap_sasl_interactive_bind_s: Can't contact LDAP server (-1) Type of package: single binary, multiple binary, library, kernel module or cdbs? [s/m/l/k/b] s Maintainer name : Ludovic Francois Email-Address : lfrancois@datadirectnet.com Date : Fri, 23 Jun 2006 11:39:13 +0200 Package Name : s2a Version : 0.0.1 License : blank Type of Package : Single Hit <enter> to confirm: Done. Please edit the files in the debian/ subdirectory now. s2a uses a configure script, so you probably don't have to edit the Makefiles. ludo@idefix:~/s2a-0.0.1 %
Liste des fichiers générés
ludo@idefix:~/s2a-0.0.1/debian % ls -l total 104 -rw--- 1 ludo ludo 197 2006-06-23 11:39 changelog -rw--- 1 ludo ludo 2 2006-06-23 11:39 compat -rw--- 1 ludo ludo 353 2006-06-23 11:39 control -rw--- 1 ludo ludo 651 2006-06-23 11:39 copyright -rw--- 1 ludo ludo 75 2006-06-23 11:39 cron.d.ex -rw--- 1 ludo ludo 17 2006-06-23 11:39 dirs -rw--- 1 ludo ludo 17 2006-06-23 11:39 docs -rw--- 1 ludo ludo 1222 2006-06-23 11:39 emacsen-install.ex -rw--- 1 ludo ludo 453 2006-06-23 11:39 emacsen-remove.ex -rw--- 1 ludo ludo 1101 2006-06-23 11:39 emacsen-startup.ex -rw--- 1 ludo ludo 1854 2006-06-23 11:39 init.d.ex -rw--- 1 ludo ludo 1736 2006-06-23 11:39 manpage.1.ex -rw--- 1 ludo ludo 4649 2006-06-23 11:39 manpage.sgml.ex -rw--- 1 ludo ludo 4606 2006-06-23 11:39 manpage.xml.ex -rw--- 1 ludo ludo 106 2006-06-23 11:39 menu.ex -rw--- 1 ludo ludo 921 2006-06-23 11:39 postinst.ex -rw--- 1 ludo ludo 913 2006-06-23 11:39 postrm.ex -rw--- 1 ludo ludo 690 2006-06-23 11:39 preinst.ex -rw--- 1 ludo ludo 881 2006-06-23 11:39 prerm.ex -rw--- 1 ludo ludo 184 2006-06-23 11:39 README.Debian -rwxr-xr-x 1 ludo ludo 2511 2006-06-23 11:39 rules -rw--- 1 ludo ludo 223 2006-06-23 11:39 s2a-default.ex -rw--- 1 ludo ludo 475 2006-06-23 11:39 s2a.doc-base.EX -rw--- 1 ludo ludo 654 2006-06-23 11:39 watch.ex ludo@idefix:~/s2a-0.0.1/debian %
Édition des fichiers
Fichier debian/control
Éditer le fichier control pour finaliser le travail de dh_make sur les propriétés de votre package.
Source: s2a
Section: admin
Priority: optional
Maintainer: Ludovic Francois <lfrancois@datadirectnet.com>
Build-Depends: debhelper (>= 5), autotools-dev
Standards-Version: 3.7.2
Package: s2a
Architecture: i386
Depends: ${shlibs:Depends}
Description: Monitoring and administration tools for DataDirect Networks s2a
Monitoring and administration tools for DataDirect Networks s2a appliances.
This tools supports:
- s2a6000
- s2a3000
- s2a8500
- s2a9500
You will find the main binary named s2a, with this binary you could
get a remote access on the storage system and make all cli monitoring
and administration tasks from your unix command line.
Fichier debian/rules
Ce makefile nous donne des information sur la manière dont seront installés nos fichiers. Dans notre cas, c'est assez simple vu que nous utilisons les autotools, nous aurons juste besoin de passer quelques arguments au script ./configure.
Dans le cas présent, j'ai juste eu besoin de paraméter les fichiers configure.in et Makefile.am. Maintenant le "make install" copiera les man au bon endroit grâce à la directive man_MANS, les fichiers de /etc grâce à la directive sysconfdir et les scripts avec bin_SCRIPTS.
dch
Nous avons aussi besoin d'éditer le fichier de changelog qui permet de suivre les modifications qui seront faites sur le paquet debian.
Pour faire ça, il faut lancer la commande dch, la première fois, ca nous aidera à écrire une courte notice à propos de notre première release.
Mais la chose très intéressante avec cet outil est que ça devient très simple d'incrémenter la version du paquet et d'ajouter un commentaire à propos de cette mise à jour :
$ dch -i "cleaning update for integration in directMONITOR"
dpkg-buildpackage -rfakeroot
vérification du paquet
$ lintian -i s2a_0.0.1-1_i386.changes $ lintian -i s2a_0.0.1-1_i386.changes
Comment fabriquer son propre dépot de paquets (dupload)
Côté serveur
La première fois :
# mkdir /var/www/apt
Après chaque dupload:
ludo@obelix:/var/www/apt % apt-ftparchive release . > Release ludo@obelix:/var/www/apt % gpg -abs -o Release.gpg Release
Côté client (mainteneur debian)
# aptitude install dupload
/etc/dupload.conf
$default_host = "zoxx";
$cfg{'zoxx'} = {
fqdn => "obelix.zoxx.net",
method => "scpb",
incoming => "/var/www/apt/",
dinstall_runs => 1,
};
$cfg{'zoxx'}{postupload}{'changes'} = "
echo 'cd /var/www/apt ;
dpkg-scanpackages . /dev/null >Packages || true ;
dpkg-scansources . /dev/null >Sources || true ;
gzip -c Packages >Packages.gz ;
gzip -c Sources >Sources.gz' | ssh obelix.zoxx.net 2>/dev/null ;
echo 'Package archive created!'";
dupload
ludo@idefix:~ % dupload s2a_0.0.1-1_i386.changes dupload note: no announcement will be sent. Uploading (scpb) to obelix.zoxx.net:/var/www/apt/ [ job s2a_0.0.1-1_i386 from s2a_0.0.1-1_i386.changes s2a_0.0.1-1_i386.deb, md5sum ok s2a_0.0.1-1.diff.gz, md5sum ok s2a_0.0.1.orig.tar.gz, md5sum ok s2a_0.0.1-1.dsc, md5sum ok s2a_0.0.1-1_i386.changes ok ] Uploading (scp) to zoxx (obelix.zoxx.net) [ Uploading job s2a_0.0.1-1_i386 s2a_0.0.1-1_i386.deb 16.6 kB, ok s2a_0.0.1-1.diff.gz 7.5 kB, ok s2a_0.0.1.orig.tar.gz 116.2 kB, ok s2a_0.0.1-1.dsc 0.3 kB, ok s2a_0.0.1-1_i386.changes 0.7 kB, ok s2a_0.0.1-1_i386.deb 100% 17KB 16.6KB/s 00:00 s2a_0.0.1-1.diff.gz 100% 7730 7.6KB/s 00:00 s2a_0.0.1.orig.tar.gz 100% 116KB 116.2KB/s 00:00 s2a_0.0.1-1.dsc 100% 333 0.3KB/s 00:00 s2a_0.0.1-1_i386.changes 100% 711 0.7KB/s 00:00 ] Package archive created! ludo@idefix:~ %
Côté client (utilisateur debian)
# echo "deb http://www.zoxx.net/apt ./" >> /etc/apt/sources.list # GET http://www.zoxx.net/ludo_gpg.asc | apt-key add - OK # aptitude update # aptitude show s2a Package: s2a New: yes State: installed Automatically installed: no Version: 0.0.1-2 Priority: optional Section: admin Maintainer: Ludovic Francois <lfrancois@datadirectnet.com> Uncompressed Size: 442k Depends: libc6 (>= 2.3.6-6) Description: Monitoring and administration tools for DataDirect Networks s2a Monitoring and administration tools for DataDirect Networks s2a appliances. This tools supports: * s2a6000 * s2a3000 * s2a8500 * s2a9500 You will find the main binary named s2a, with this binary you could get a remote access on the storage system and make all cli monitoring and administration tasks from your unix command line. # aptitude install s2a
Commentaires
Aucun commentaire pour le moment.
Ajouter un commentaire