Debian: Installer la même sélection de paquets plusieurs fois.

Debian: Installer la même sélection de paquets plusieurs fois.

Parfois on est sur plusieurs machines en même temps, on voudrait se diviser en plusieurs nous, pour pouvoir aller plus vite, notamment à la mise en place de plusieurs machines sous une même distribution, ça m’arrive fréquemment quand les amis/membres de la famille parlent de moi autour d’eux comme d’un messie de l’informatique, chose que je suis loin d’être. Je vais donc expliquer une méthode pour Debian et dans une autre mesure, pour Ubuntu.

En faite, vous savez que sous les distributions à base de paquets DEB comme Debian, Ubuntu ou Mint, c’est APT qui fait tout le taf d’installation et de suppression, en faite ce n’est pas le cas, c’est dpkg qui fait réellement le boulot, c’est une sous-couche à APT, c’est lui qui s’occupe de l’installation et désinstallation des paquets en bon ouvrier qu’il est, sous la supervision de son chef APT qui lui donne les instructions, notamment la liste des dépendances, des paquets qui rentrent en conflits, et autres… Donc, il nous faut dire à dpkg de nous donner la liste de paquets de la machine qui fera office de première dame, d’exemple en gros, je prends ma bécane généralement pour faire cette tache. Cette liste obtenue, je l’enregistre dans un fichier texte simple puis je balance ce petit fichier dans les différentes machines. Il y a une étape que je ne décrie pas ici, un peu plus complexe, qui me permet de ne télécharger qu’une seule fois les paquets depuis les dépôts du projet Debian, par la suite c’est ma machine qui fait office de serveur, ce qui me fait gagner du temps et gagner au projet des ressources.

Commençons par récupérer la liste des paquets installés sur l’ordinateur « modèle » à dupliquer:

$ dpkg --get-selections >liste-pkg

Le fichier liste-pkg contient la liste des paquets installés sur la machine. Il faut alors transférer le fichier liste-pkg sur les ordinateurs à mettre à jour et y employer les commandes suivantes.

Mettre à jour la base de données des paquets connus par dpkg:

# avail=`mktemp`
# apt-cache dumpavail > "$avail"
# dpkg --merge-avail "$avail"
# rm -f "$avail"

Mettre à jour les sélections de dpkg:

# dpkg --set-selections < liste-pkg

Demander à apt-get d’installer les paquets sélectionnés:

# apt-get dselect-upgrade

La première commande enregistre la liste des paquets disponibles dans la base de données de dpkg, puis dpkg –set-selections restaure les vœux de paquets à installer, que l’invocation d’apt-get exauce ensuite !

Cette astuce n’est pas uniquement disponible sur des distributions DEB, avec RPM on peut bien sûr faire de même avec rpm -qa pour lister les paquets, mais openSUSE (seule distribution RPM qui me convienne) a une façon de faire graphique avec Yast et ce n’est pas le sujet de ce billet…

À savoir, on aurait tout aussi bien pu utiliser la commande dpkg -l >liste-pkg plus complète, au lieu de dpkg --get-selections >liste-pkg.

Sources