Supposons un Debian GNU/Linux installé sur un ordinateur monocarte d'architecture arm64. Supposons que cet ordinateur tombe définitivement en panne. Pas d'ordinateur monocarte de remplacement donc on souhaite que cet ordinateur soit remplacé par une machine virtuelle... dont l'architecture est amd64. Donc les binaires ne sont pas compatibles, on peut pas juste copier le rootfs de l'un à l'autre.
Donc il faut extraire la liste des logiciels installés pour les installer sur la machine virtuelle vierge. Sauf qu'on ne peut pas exécuter un dpkg --get-selections
sur la source sauf à se prendre la tête avec de l'émulation qemu.
Si l'on a accès au rootfs de l'ordinateur en panne, on peut extraire cette liste depuis /var/lib/dpkg/status :
grep -B1 "Status: install ok installed" /var/lib/dpkg/status | grep -Po "(?<=Package: ).*" | tr '\n' ' '
Pour une raison qui m'échappe, ça va aussi faire remonter des logiciels d'une ancienne version majeure de Debian. Genre moi j'ai eu la libgcrypt11 qui était celle de Wheezy alors que j'utilise Jessie et que la libgcrypt20 est installée...