
Sommaire :
Cette article a pour but de montrer comment générer un paquet Debian à partir des sources fournit via la commande apt-get source.
Il faudra vous assurer au préalable que le fichier source.list soit bien renseigné :
Exemple pour la testing :
deb http://mir2.ovh.net/debian/ testing main contrib non-free deb-src http://mir2.ovh.net/debian/ testing main contrib non-free
1° Mise en place de l’environement
Nous allons pour commencer installer les outils nécessaires à la génération de pâquet à savoir :
- devscripts – Scripts to make the life of a Debian Package easier
- fakeroot – Gives a fake root environnment
- dpkg-dev – Package building tools for Debian
- dh-make – tool that converts source archives into Debian package source
makedeb32:~# apt-get install checkinstall dh-make cdbs fakeroot devscripts Lecture des listes de paquets... Fait Construction de l'arbre des dépendances Lecture des informations d'état... Fait Les paquets supplémentaires suivants seront installés : autopoint autotools-dev binutils build-essential bzip2 cpp cpp-4.4 cvs dctrl-tools debhelper debian-keyring diffstat dpkg-dev dput equivs g++ g++-4.4 gcc gcc-4.4 gettext html2text intltool-debian libapt-pkg-perl libauthen-sasl-perl libc-dev-bin libc6-dev libclass-accessor-perl libconvert-binhex-perl libcroco3 libcrypt-ssleay-perl libdevel-symdump-perl libexpat1 libfcgi-perl libfont-afm-perl libglib2.0-0 libglib2.0-data libgmp3c2 libgomp1 libhtml-format-perl libhtml-parser-perl libhtml-tagset-perl libhtml-template-perl libhtml-tree-perl libio-pty-perl libio-socket-ssl-perl libio-string-perl libio-stringy-perl libipc-run-perl liblzma2 libmail-sendmail-perl libmailtools-perl libmime-tools-perl libmpfr1ldbl libnet-libidn-perl libnet-ssleay-perl libossp-uuid-perl libossp-uuid16 libparse-debcontrol-perl libparse-debianchangelog-perl libpod-coverage-perl libsoap-lite-perl libstdc++6-4.4-dev libsub-name-perl libsys-hostname-long-perl libtask-weaken-perl libterm-size-perl libtest-pod-perl libtie-ixhash-perl libtimedate-perl liburi-perl libwww-perl libxml-namespacesupport-perl libxml-parser-perl libxml-sax-expat-perl libxml-sax-perl libxml-simple-perl libyaml-syck-perl lintian linux-libc-dev lsb-release make manpages-dev patchutils po-debconf shared-mime-info strace unzip wdiff xz-utils Paquets suggérés : binutils-doc bzip2-doc doc-base cpp-doc gcc-4.4-locales debtags cvs-buildpackage devscripts-el gnuplot libfile-desktopentry-perl libnet-smtp-ssl-perl svn-buildpackage mini-dinstall rsync yaclc g++-multilib g++-4.4-multilib gcc-4.4-doc libstdc++6-4.4-dbg gcc-multilib autoconf automake1.9 libtool flex bison gdb gcc-doc gcc-4.4-multilib libmudflap0-4.4-dev libgcc1-dbg libgomp1-dbg libmudflap0-dbg libcloog-ppl0 libppl-c2 libppl7 gettext-doc libdigest-hmac-perl libgssapi-perl glibc-doc libdata-dump-perl libipc-sharedcache-perl libio-socket-inet6-perl uuid libapache2-mod-perl2 libnet-jabber-perl libmime-lite-perl libstdc++6-4.4-doc binutils-multiarch libtext-template-perl lsb make-doc libmail-box-perl zip Paquets recommandés : debian-maintainers Les NOUVEAUX paquets suivants seront installés : autopoint autotools-dev binutils build-essential bzip2 cdbs checkinstall cpp cpp-4.4 cvs dctrl-tools debhelper debian-keyring devscripts dh-make diffstat dpkg-dev dput equivs fakeroot g++ g++-4.4 gcc gcc-4.4 gettext html2text intltool-debian libapt-pkg-perl libauthen-sasl-perl libc-dev-bin libc6-dev libclass-accessor-perl libconvert-binhex-perl libcroco3 libcrypt-ssleay-perl libdevel-symdump-perl libexpat1 libfcgi-perl libfont-afm-perl libglib2.0-0 libglib2.0-data libgmp3c2 libgomp1 libhtml-format-perl libhtml-parser-perl libhtml-tagset-perl libhtml-template-perl libhtml-tree-perl libio-pty-perl libio-socket-ssl-perl libio-string-perl libio-stringy-perl libipc-run-perl liblzma2 libmail-sendmail-perl libmailtools-perl libmime-tools-perl libmpfr1ldbl libnet-libidn-perl libnet-ssleay-perl libossp-uuid-perl libossp-uuid16 libparse-debcontrol-perl libparse-debianchangelog-perl libpod-coverage-perl libsoap-lite-perl libstdc++6-4.4-dev libsub-name-perl libsys-hostname-long-perl libtask-weaken-perl libterm-size-perl libtest-pod-perl libtie-ixhash-perl libtimedate-perl liburi-perl libwww-perl libxml-namespacesupport-perl libxml-parser-perl libxml-sax-expat-perl libxml-sax-perl libxml-simple-perl libyaml-syck-perl lintian linux-libc-dev lsb-release make manpages-dev patchutils po-debconf shared-mime-info strace unzip wdiff xz-utils 0 mis à jour, 94 nouvellement installés, 0 à enlever et 0 non mis à jour. Il est nécessaire de prendre 63,3Mo/63,7Mo dans les archives. Après cette opération, 149Mo d'espace disque supplémentaires seront utilisés.
2° Dépendance nécessaire à la compilation du paquet
Ensuite nous allons installer les dépendances nécessaires à la fabrication du paquet.
Notre exemple ici sera courier-imap, mais ceci reste valable pour tout autres paquets.
La petite commande miracle ici est apt-get build-dep :
makedeb32:~# apt-get build-dep courier-imap Lecture des listes de paquets... Fait Construction de l'arbre des dépendances Lecture des informations d'état... Fait Choix de « courier » comme paquet source à la place de « courier-imap » Note, sélection de libldap2-dev au lieu de libldap-dev Les NOUVEAUX paquets suivants seront installés : autoconf automake comerr-dev courier-authlib courier-authlib-dev dbus defoma expect fontconfig-config ghostscript gs-common gsfonts krb5-multidev libavahi-client3 libavahi-common-data libavahi-common3 libcups2 libcupsimage2 libdbus-1-3 libfam-dev libfam0 libfont-freetype-perl libfontconfig1 libgdbm-dev libgs8 libgssrpc4 libjasper1 libjpeg62 libkadm5clnt-mit7 libkadm5srv-mit7 libkdb5-4 libkrb5-dev libldap2-dev libltdl-dev libltdl7 libmysqlclient-dev libmysqlclient16 libnetpbm10 libpam0g-dev libpaper-utils libpaper1 libpcre3-dev libpcrecpp0 libperl-dev libperl5.10 libpng12-0 libpq-dev libpq5 libsasl2-dev libssl-dev libtiff4 libtool mgetty mgetty-fax mysql-common netpbm psfontmgr tcl8.5 ttf-dejavu-core zlib1g-dev 0 mis à jour, 60 nouvellement installés, 0 à enlever et 0 non mis à jour. Il est nécessaire de prendre 32,2Mo dans les archives. Après cette opération, 78,9Mo d'espace disque supplémentaires seront utilisés. Souhaitez-vous continuer [O/n] ?
Nous allons maintenant récupérer les sources du paquet courier-imap grâce à la commande apt-get source :
# apt-get source courier-imap Lecture des listes de paquets... Fait Construction de l'arbre des dépendances Lecture des informations d'état... Fait Choix de « courier » comme paquet source à la place de « courier-imap » Nécessité de prendre 9 914ko dans les sources. Réception de : 1 http://mir2.ovh.net testing/main courier 0.63.0-2.1 (dsc) [2 269B] Réception de : 2 http://mir2.ovh.net testing/main courier 0.63.0-2.1 (tar) [9 749kB] Réception de : 3 http://mir2.ovh.net testing/main courier 0.63.0-2.1 (diff) [162kB] 9 914ko réceptionnés en 5s (1 901ko/s) dpkg-source: info: extraction de courier dans courier-0.63.0 dpkg-source: info: extraction de courier_0.63.0.orig.tar.gz dpkg-source: info: mise en place de courier_0.63.0-2.1.diff.gz dpkg-source: info: upstream files that have been modified: courier-0.63.0/afx/afx.h courier-0.63.0/config.guess courier-0.63.0/config.sub courier-0.63.0/courier/Makefile.in courier-0.63.0/courier/cmlm.h courier-0.63.0/courier/config.guess courier-0.63.0/courier/config.sub courier-0.63.0/courier/doc/Makefile.in courier-0.63.0/courier/doc/courier-mtaconfig.8.in courier-0.63.0/courier/doc/courieresmtpd.8.in courier-0.63.0/courier/ldapaliasdrc.h courier-0.63.0/courier/module.esmtp/Makefile.in courier-0.63.0/courier/module.fax/new_fax.in courier-0.63.0/courier/module.local/preline.c courier-0.63.0/imap/imapscanclient.c courier-0.63.0/maildir/Makefile.in courier-0.63.0/maildir/config.guess courier-0.63.0/maildir/config.sub courier-0.63.0/maildrop/configure.in courier-0.63.0/maildrop/mailbot.c courier-0.63.0/pcp/po/LINGUAS courier-0.63.0/pcp/po/de.po courier-0.63.0/pcp/po/sv.po courier-0.63.0/webmail/Makefile.am courier-0.63.0/webmail/configure.in
3° Génération du paquet
C’est ici que vous pouvez modifier les sources, changer les options de compilation, etc etc
Pour générer le paquet, aller dans le répertoire source précédement télécharger et lancer la compilation et la fabrication du paquet grâce à la commande « dpkg-buildpackage »
makedeb32:/home/source# cd courier-0.63.0/ makedeb32:/home/source/courier-0.63.0# dpkg-buildpackage -rfakeroot [...] dpkg-deb : construction du paquet « courier-base » dans « ../courier-base_0.63.0-2.1_i386.deb ». dpkg-deb : construction du paquet « courier-maildrop » dans « ../courier-maildrop_0.63.0-2.1_i386.deb ». dpkg-deb : construction du paquet « courier-mlm » dans « ../courier-mlm_0.63.0-2.1_i386.deb ». dpkg-deb : construction du paquet « courier-mta » dans « ../courier-mta_0.63.0-2.1_i386.deb ». dpkg-deb : construction du paquet « courier-faxmail » dans « ../courier-faxmail_0.63.0-2.1_i386.deb ». dpkg-deb : construction du paquet « courier-webadmin » dans « ../courier-webadmin_0.63.0-2.1_i386.deb ». dpkg-deb : construction du paquet « sqwebmail » dans « ../sqwebmail_0.63.0-2.1_i386.deb ». dpkg-deb : construction du paquet « courier-pcp » dans « ../courier-pcp_0.63.0-2.1_i386.deb ». dpkg-deb : construction du paquet « courier-pop » dans « ../courier-pop_0.63.0-2.1_i386.deb ». dpkg-deb : construction du paquet « courier-imap » dans « ../courier-imap_4.6.0-2.1_i386.deb ». dpkg-deb : construction du paquet « courier-ldap » dans « ../courier-ldap_0.63.0-2.1_i386.deb ». dpkg-deb : construction du paquet « courier-ssl » dans « ../courier-ssl_0.63.0-2.1_i386.deb ». dpkg-deb : construction du paquet « courier-mta-ssl » dans « ../courier-mta-ssl_0.63.0-2.1_i386.deb ». dpkg-deb : construction du paquet « courier-pop-ssl » dans « ../courier-pop-ssl_0.63.0-2.1_i386.deb ». dpkg-deb : construction du paquet « courier-imap-ssl » dans « ../courier-imap-ssl_4.6.0-2.1_i386.deb ». dpkg-genchanges >../courier_0.63.0-2.1_i386.changes dpkg-genchanges: pas d'inclusion du code source original dans l'envoi (« upload ») dpkg-buildpackage: envoi d'un binaire et du fichier diff (aucune inclusion du code source d'origine)
Et voilou ! Vous avez plein de jolies paquets Debian !!
Article lu 1375 fois
Laisser un commentaire
Vous devez être connecté pour publier un commentaire.