Le jeudi 12 juin 2008 03:34, Philippe MONROUX a écrit : | Je peux essayer de le compiler mais sous debian il vaut mieux faire un | .deb. or ça je ne sais pas et ça me semble pas facile. | | Que me conseillez-vous ? Bonjour, Moi non plus je ne savais pas faire. J'en ai fait un à la main en suivant pas à pas ce qui est décrit dans le livre Debian : Administration et configuration avancée. Voici mes notes. Je ne sais pas si cela peut aider. Certaines opérations sont décrites de deux façons différentes. Le paquet contient : - le script - la page de man - le copyright - le changelog - le control - les empreintes md5 : facultatif On créé le script que l'on souhaite empaqueter : $ cat <<EOF > script >#!/bin/sh -e > > echo Bonjour le monde. > EOF On créé sa page de man : Obligatoire. $ cat <<EOF > zerglobu.1 > MAN(1) Utilitaire pour tester la mise en paquets MAN(1) > > NOM > zerglobu - il ne set à rien > DESCRIPTION > Il ne sert qu'à afficher bonjour > > 0.1.1 2008-01-19 MAN(1) > EOF On le compresse : $ gzip -9 zerglobu.1 $ ls -l -rw-r--r-- 1 aristote aristote 184 2008-01-19 12:23 zerglobu.1.gz Le tout en une seule ligne pour saisir à la volée le manuel : $ cat <<EOF | gzip -9 > zerglobu.1.gz On créé son copyright : Obligatoire. $ cp /usr/share/common-licences/GPL GPL on indique quelque part : - l'auteur - l'emplacement pour obtenir les sources - le créateur du paquet - la date de réalisation On créé son changelog : Pour suivre les changements. $ cat <<EOF > changelog.Debian > zerglobu (1.0-1) unstable; urgency=low > > * ici "ce qui change une fois" release > > -- mon nom prénom <moi@mondomaine.pays> la date et l'heure > EOF On le compresse : $ gzip -9 changelog.Debian $ ls -l -rw-r--r-- 1 aristote aristote 184 2008-01-19 14:40 changelog.Debian.gz Le tout en une seule ligne pour saisie à la volée : $ cat <<EOF | gzip -9 > changelog.Debian.gz On créé son control : Pour identifier le paquet par les outils de gestion de paquets. $ cat <<EOF > control > Package: zerglobu > Section: misc > Priority: extra > Maintainer: Nom Prénom <moi AT mon email DOT com> > Architecture: all > Version: 0.0-1 > Description: C'est juste un test qui affiche le texte "Bonjour le monde." mettre d'autres lignes ici empêche d'installer le paquet. La ligne du dessus doit se terminer par CRLF On crééra les sommes md5 : lorsque les fichiers seront à leur place dans l'arborescence On créé l'arborescence : - pour le script : $ mkdir -p zerglobu/usr/bin - pour la page de man : $ mkdir -p zerglobu/usr/share/man/man1 - pour le copyright : $ mkdir -p zerglobu/usr/share/doc/zerglobu '- pour le changelog : c'est le même que le copyright '- pour le control : $ mkdir zerglobu/DEBIAN - pour les empreintes md5 : c'est le même que le control On vérifie : $ cd zerglobu $ find . -exec ls -Fld {} \; drwxr-xr-x 4 aristote aristote 4096 2008-01-19 13:39 ./ drwxr-xr-x 4 aristote aristote 4096 2008-01-19 13:38 ./usr/ drwxr-xr-x 2 aristote aristote 4096 2008-01-19 13:38 ./usr/bin/ drwxr-xr-x 4 aristote aristote 4096 2008-01-19 13:39 ./usr/share/ drwxr-xr-x 3 aristote aristote 4096 2008-01-19 13:38 ./usr/share/man/ drwxr-xr-x 2 aristote aristote 4096 2008-01-19 13:38 ./usr/share/man/man1/ drwxr-xr-x 3 aristote aristote 4096 2008-01-19 13:39 ./usr/share/doc/ drwxr-xr-x 2 aristote aristote 4096 2008-01-19 13:39 ./usr/share/doc/zerglobu/ drwxr-xr-x 2 aristote aristote 4096 2008-01-19 13:39 ./DEBIAN/ $ cd .. On copie les fichiers et on positionne les attributs : - pour le script : $ install --mode=755 script zerglobu/usr/bin/zerglobu - pour la page de man : $ install --mode=644 zerglobu.1.gz zerglobu/usr/share/man/man1 - pour le copyright : $ install --mode=644 GPL zerglobu/usr/share/doc/zerglobu/copyright '- pour le changelog : $ install --mode=644 changelog.Debian.gz zerglobu/usr/share/doc/zerglobu/changelog.Debian.gz '- pour le control : $ install --mode=644 control zerglobu/DEBIAN/control - pour les empreintes md5 : uniquement celles qui sont sous usr. $ find zerglobu/usr -type f -exec md5sum {} \; \ > zerglobu/DEBIAN/md5sums Comme cette ligne ne marche pas alors : $ cd zerglobu $ md5sum usr/bin/zerglobu >> DEBIAN/md5sums $ md5sum usr/share/man/man1/zerglobu.1.gz >> DEBIAN/md5sums $ md5sum usr/share/doc/zerglobu/copyright >> DEBIAN/md5sums $ md5sum usr/share/doc/zerglobu/changelog.Debian.gz >> DEBIAN/md5sums à revoir le niveau zerglobu/usr ou usr : c28b5e414149822ffb5aa9dd9af7045c usr/bin/zerglobu aac5da97920881adfa36553ee6ca7e5a usr/share/doc/zerglobu/changelog.Debian.gz 751419260aa954499f7abaabaa882bbe usr/share/doc/zerglobu/copyright efeb69978fbb2fe1c55b97ff80a3a817 usr/share/man/man1/zerglobu.1.gz Pour mémoire : Les droits rw sur groupes et autres : $ chmod -R og=rX . $ cd .. Faire une copie de l'arborescence. On créé le paquet avec les outils standards : depuis la bonne arborescence. $ ls -l drwxr-xr-x 4 aristote aristote 4096 2008-01-19 16:30 zerglobu drwxr-xr-x 4 aristote aristote 4096 2008-01-19 13:39 zerglobu_save $ tar cz -C zerglobu/DEBIAN -f control.tar.gz . $ tar cz --exclude=DEBIAN -C zerglobu -f data.tar.gz . $ echo 2.0 > debian-binary $ ar rcu zerglobu.deb debian-binary control.tar.gz data.tar.gz $ ls -l '-rw-r--r-- 1 aristote aristote 503 2008-1-19 16:53 control.tar.gz -rw-r--r-- 1 aristote aristote 7890 2008-01-19 16:42 data.tar.gz -rw-r--r-- 1 aristote aristote 4 2008-01-19 16:42 debian-binary drwxr-xr-x 4 aristote aristote 4096 2008-01-19 16:39 zerglobu -rw-r--r-- 1 aristote aristote 8586 2008-01-19 16:43 zerglobu.deb drwxr-xr-x 4 aristote aristote 4096 2008-01-19 13:39 zerglobu_save On vérifie le paquet : $ dpkg-deb --info zerglobu.deb nouveau paquet Debian, version 2.0. taille 8588 octets : archive de contrôle = 503 octets. 225 octets, 8 lignes control 261 octets, 3 lignes md5sums Package: zerglobu Section: misc Priority: extra Maintainer: Alain Vaugham <alain AT vaugham DOT com> Architecture: all Version: 0.0-1 Description: C'est juste un test de mise en paquet qui affiche le mot "Bonjour le monde". $ dpkg-deb --contents zerglobu.deb drwxr-xr-x aristote/aristote 0 2008-01-19 16:53 ./ drwxr-xr-x aristote/aristote 0 2008-01-19 13:38 ./usr/ drwxr-xr-x aristote/aristote 0 2008-01-19 14:18 ./usr/bin/ -rwxr-xr-x aristote/aristote 64 2008-01-19 14:18 ./usr/bin/zerglobu drwxr-xr-x aristote/aristote 0 2008-01-19 13:39 ./usr/share/ drwxr-xr-x aristote/aristote 0 2008-01-19 13:38 ./usr/share/man/ drwxr-xr-x aristote/aristote 0 2008-01-19 16:09 ./usr/share/man/man1/ -rw-r--r-- aristote/aristote 184 2008-01-19 14:22 ./usr/share/man/man1/zerglobu.1.gz drwxr-xr-x aristote/aristote 0 2008-01-19 13:39 ./usr/share/doc/ drwxr-xr-x aristote/aristote 0 2008-01-19 15:00 ./usr/share/doc/zerglobu/ -rw-r--r-- aristote/aristote 17987 2008-01-19 14:27 ./usr/share/doc/zerglobu/copyright -rw-r--r-- aristote/aristote 184 2008-01-19 15:00 ./usr/share/doc/zerglobu/changelog.Debian.gz On installe le paquet : # dpkg --install zerglobu.deb On consulte le man : $ man zerglobu On exécute le programme : $ zerglobu On désinstalle le paquet : # aptitude remove zerglobu # aptitude remove --purge zerglobu -- Alain Vaugham -------------------------------------------------------- [PUB] Signature numérique GPG de ce courrier: 0xD26D18BC
Attachment:
pgpSeDjh8aMiC.pgp
Description: PGP signature