Table des matières

, , , , , ,

Sauvegarde et restauration de la liste des paquets installés pour restauration, duplication ou migration

Cette méthode ne prend pas en compte les snap ou les flatpak.

Votre système est installé et vous avez ajouté au fil du temps des applications pour votre utilisation quotidienne. Ce tutoriel vous sera utile dans les cas suivants :

Pré-requis

  1. Niveau requis : être familiarisé avec le terminal,
  2. Avoir une connexion internet opérationnelle,
  3. Avoir configuré son fichier /etc/apt/sources.list (ou /etc/apt/sources.list.d ) pour les dépôts standards,
  4. Pour un changement de version ou un clonage sur un autre PC, si vous utilisiez des dépôts spécifiques, le fichier sources.list de la nouvelle version devra être adapté ainsi que les clés d'authentification correspondantes

Sauvegarde depuis le système opérationnel

Récupérez la liste des paquets installés sur le système :

dpkg --get-selections > liste-des-paquets

Cela crée un fichier "liste-des-paquets" dans le répertoire courant. Il contient la liste des paquets installés. Ce fichier est au format texte vous pouvez donc le consulter pour information

Si votre but est une sauvegarde pour une réinstallation

Sauvegardez ce fichier (ainsi que le sources.list) sur un support externe (usb, web, etc.)

Si votre but est un changement de version ou un clonage sur un autre PC

Éditez ce fichier et faites supprimer les paquets qui ne vous intéressent plus.

Ne conservez que vos paquets. Ceux que vous avez rajoutés et qui ne font pas partie de l'installation standard d'Ubuntu (les paquets systèmes, les paquets libxxxx, les paquets gnome-xxxxx, Firefox, et caetera). La liste des paquets de l'installation standard est disponible dans les fichiers «.manifest»1) fournis sur les dépôts des images iso. Ils contiennent une liste de lignes "nom du paquet - version du paquet".

Voici un extrait en exemple d'un fichier "liste-des-paquets" modifié :

goldendict					install
gparted						install
gparted-common					install
grep						install
grisbi						install
grisbi-common					install

Sauvegardez ce fichier (ainsi que le sources.list) sur un support externe (usb, web, etc.)

Vous pouvez aussi compléter par la liste des applications installées avec cette commande

ls /usr/share/applications | awk -F '.desktop' ' { print $1}'

Si votre but est de connaître les paquets que vous avez installés pour les remettre dans une autre version

Il est possible d'obtenir la liste des ajouts manuels. Rien ne garantit qu'ils sont encore supportés dans cette nouvelle version. Consulter cet échange.

apt-mark showmanual > ~/manual-installed.txt
initial=( $(zgrep -oP "(?<=Package: ).*" /var/log/installer/initial-status.gz) )
for p in ${initial[@]} ; do sed -i "/$p/d" ~/manual-installed.txt ; done

Sauvegarde depuis un support d'installation

Il faut choisir l'option "essayer avant d'installer" et d'abord identifier la partition contenant le répertoire /var, faire un point de montage, l'autoriser en écriture, monter la partition et exécuter la recherche en précisant le bon répertoire.

Exemple

sudo mkdir             /media/DPKG
sudo mount  /dev/sdc3  /media/DPKG
sudo chown $USER:$USER /media/DPKG
dpkg --admindir=/media/DPKG/var/lib/dpkg --get-selections >/media/DPKG/liste-des-paquets
head -2 /media/DPKG/liste-des-paquets
accountsservice					install
acl						install
sudo umount /media/DPKG

Restauration

Si vous réinstallez une version identique, remplacez le fichier sources.list par le votre.

Si vous changez de version, adaptez si besoin le fichier sources.list avec vos dépôts spécifiques.

Récupérez votre fichier « liste-des-paquets » puis entrez les commandes suivantes :

sudo apt update
sudo dselect update
sudo dpkg %%--set-selections%% < liste-des-paquets
sudo apt -u dselect-upgrade

Normalement vos applications préférées sont restaurées et si vous avez une sauvegarde de votre partition « home », vous pourrez également récupérer vos paramétrages spécifiques.

Attention : la commande « sudo dpkg --clear-selections » est potentiellement très dangereuse : elle modifie le fichier /var/lib/dpkg/status en positionnant tous les paquets sur « à supprimer » !

Si derrière est exécuté un « sudo apt -u dselect-upgrade » sans au préalable avoir fait un « sudo dpkg --set-selections < liste-des-paquets », on efface tous les paquets !

Pour s'en sortir en cas de « sudo dpkg --clear-selections » sans avoir un fichier « liste-des-paquets » complet et valide, la solution consiste à renommer « /var/lib/dpkg/status.old » en « /var/lib/dpkg/status » si cela vient d'arriver, ou bien d'aller chercher une sauvegarde créée automatiquement dans « /var/backups/ »

Voir aussi


Contributeurs : ostaquet (L'auteur), bobil78, mr_jay_01, sylvainsjc, YoBoY, bioman, L'ami René (MAJ mise en page)+(Autres pages en lien avec les sujets), draco31.fr, pipou24, yanntech.

1)
typiquement, casper/filesystem.manifest dans l'image ubuntu-22.04.1-desktop-amd64.iso