meta données pour cette page
Manipuler les paquets Debian
Debian a la réputation de délivrer des paquets de qualité, libre et indépendant de la volonté des autres.
Pour connaître les versions disponible d'un paquet sur chacune des versions de la distribution Debian, le tracker peut bien aider. En fonction du choix de vouloir maintenir un paquet, des mentors bénévoles peuvent être disponible.
Ci-dessous, se trouve deux tutoriels qui exprime des cas d'utilisations concret sur les paquets.
Archive des paquets : http://debian.polytech-lille.fr/debian/
Modifier un paquet source
Admettons que nous voulons modifier le comportement en Grep dans le but de lui enlever la capacité à détecter les expressions rationnelles de Perl.
Dans un 1er temps, on télécharge les métadonnées (.dsc):
dget http://ftp.debian.org/debian/pool/main/g/grep/grep_2.12-2.dsc
Puis on télécharge les sources :
dpkg-source -x grep_2.12-2.dsc
Déplaçons-nous dans le dossier suivant pour y apporter nos modifications :
cd grep-2.12/
Vu que nous allons le modifier et peut-être le partager, par principe on édite le changelog :
dch -i
grep (2.12-2.1) unstable; urgency=low * Désactivation des expressions rationnelles de Perl. -- root <root@local.net> Sat, 21 Jan 2017 17:08:22 +0100 ...
On ajouter l'option suivants dans les paramètres de ce fichier :
nano debian/rules
Vers la ligne 27 on insère ceci :
--disable-perl-regexp
Ce qui donne :
./configure $(CROSS) --prefix=/usr --disable-perl-regexp --exec-prefix=/ --mandir=\$${prefix}/share/man --infodir=\$${prefi$...
Enfin on peut reconstruire le paquet :
debuild
Si tout c'est bien passé, alors notre nouveau paquet se trouve à cet emplacement :
ls ../grep*.deb -rw-r--r-- 1 root root 279K janv. 21 17:21 ../grep_2.12-2.1_amd64.deb
Ainsi, si je l'installe on obtient cette réponse :
dpkg -i grep_2.12-2.1_amd64.deb dpkg : avertissement : dégradation (« downgrade ») de grep depuis 2.20-4.1 vers 2.12-2.1 (Lecture de la base de données... 166463 fichiers et répertoires déjà installés.) Préparation du dépaquetage de grep_2.12-2.1_amd64.deb ... Dépaquetage de grep (2.12-2.1) sur (2.20-4.1) ... Paramétrage de grep (2.12-2.1) ... Traitement des actions différées (« triggers ») pour install-info (5.2.0.dfsg.1-6) ... Traitement des actions différées (« triggers ») pour man-db (2.7.0.2-5) ...
Que du bonheur, ça fonctionne!
Créer son propre paquet
Les paquets sont désigné par l'extension .deb et il y a besoin de respecter quelques formalités pour créer son paquet minimal. Pour comprendre facilement la procédure suivante, notre projet va être simple. On affichera un message dans la console lors de l'exécution d'une la commande “crier”.
Organisation du paquet
Donc le paquet aura pour nom : crier
L'arborescence de notre projet devra ressembler à ceci, créons ces dossiers :
mon_projet/ debian/ control postinst usr/ bin/ crier
Avec les commandes ci-dessous:
mkdir -vp mkdir -vp mon_projet/debian mon_projet/usr/bin/ touch mon_projet/debian/control mon_projet/debian/postinst mon_projet/usr/bin/crier
On remarquera que usr/bin/crier représente l'emplacement de notre futur programme.
- control : est un fichier regroupant la définition du programme.
- postinst : est un fichier qui sera appelé après avoir installé le programme.
Procédure
Comme indiqué précédemment, on souhaite afficher un message personnalisé une fois que le programme est installé. Voici une solution :
nano mon_projet/debian/postinst #!/bin/bash RED='\033[1;33m' NC='\033[0m' # No Color printf "${RED}Install ok!${NC}\n"
chmod 755 mon_projet/debian/postinst
On créer ensuite un fichier qui affichera les informations lié au programme :
# nano mon_projet/debian/control Package: crier Version : 1.0 Section : base Priority: optional Architecture: all Depends: bash Maintainer: user@domain.com Description: Un programme qui crie! Homepage: http://wiki.bruno-tatu.com
On créer notre code source qui est en fait un simple script écrit en bash :
nano mon_projet/usr/bin/crier #!/bin/bash RED='\033[1;32m' NC='\033[0m' # No Color printf "${RED}Yeeeah!${NC}\n"
On compresse le dossier du projet :
dpkg-deb --build mon_projet
Nous avons maintenant notre paquet “mon_projet.deb” disponible!
Pour l'installer rien de plus simple :
dpkg -i projet.deb
Lançons notre programme !
crier
D'autres commandes
- Comparer deux versions avec les métadonnées :
debdiff grep_2.12-2.dsc grep_2.12-2.1.dsc
- Lister le contenu d'un paquet :
ar tv grep_2.12-2.1_amd64.deb
- Ajouter une clé publique d'un dépôt :
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 8B48AD6246925553