Je vais changer mon système de 32 bits à 64 bits, et ce sera le même que j'avais auparavant, Debian Squeeze, mais je ne veux pas perdre les programmes que j'ai installés auparavant, car je ne me souviens pas du nom de tous.
Je voulais donc une commande pour le faire pour moi, enregistrer le nom de tous les programmes que j'ai installés sur un fichier, mais pas les programmes standard fournis avec le système, et lorsque j'utilise l'autre système, je mentionnerais le nom de le fichier et votre répertoire pour que tout soit installé automatiquement.
Une dernière question: est-il possible de le faire avec des programmes installés manuellement avec dpkg-i package.deb
? Si oui, comment puis-je faire cela?
Sur les versions actuelles de Debian, vous pouvez obtenir une liste des paquets installés explicitement avec
Pour ceux qui exécutent des versions anciennes de Debian où
apt-mark showmanual
n'existe pas, ou si vous souhaitez effectuer des sélections supplémentaires, vous pouvez utiliser aptitude.~i
correspond aux packages installés;!~M
omet les packages qui ont été installés automatiquement en tant que dépendance d'un autre package.-F %p
modifie le format de sortie pour inclure uniquement le nom du package.Vous pouvez ultérieurement installer ces packages avec
Debian squeeze n'en a pas
apt-mark showmanual
, mais il en contient lesapt-mark showauto
listes installées automatiquement. Si vous l'utilisez, vous pouvez répertorier tous les packages de l'ancien système avecdpkg --get-selections >package.list
, restaurer tous ces éléments, puis marquer les packages automatiques avecapt-mark markauto
. Pour votre cas d'utilisation (32 bits à 64 bits), cette approche est susceptible de laisser quelques bibliothèques marquées comme manuelles, car elles ont des noms différents sous différentes architectures.Notez que si le cas d'utilisation est de reproduire une installation identique, plutôt que de conserver l'ensemble des paquets mais de changer l'architecture, il existe maintenant un outil appelé apt-clone (distribué dans Debian depuis Wheezy) qui fait tout automatiquement.
la source
acl
pourrait être considéré comme une partie importante du système de base et serait donc marqué comme installé manuellement. Il a été installé «manuellement» par l'installateur initial plutôt que par l'utilisateur, mais même ainsi, la signification de «installé automatiquement» est «vous pouvez le supprimer en toute sécurité s'il ne casse pas les dépendances», et les packages fondamentaux nécessaires pour faire le le système ne fonctionne pas correctement.Je ne vois pas de moyen simple et standard de le faire. Je crains que vous n'ayez à jouer avec
dpkg
les journaux et les options de, cardpkg
cela ne distingue pas les "programmes standard fournis avec le système" et les autres.CELA NE SERA PAS DIRECTEMENT , je préfère être clair en utilisant du texte en majuscule gras , mais vous pouvez faire quelque chose comme ça
Extrayez la liste des logiciels installés à partir des
/var/log/dpkg.log*
fichiers.Supprimez ceux installés lors de l'installation du système. (Utilisez le temps d'installation pour les détecter)
Enregistrez la liste au
dpkg --get-selections
formatEt voilà! Lorsque votre système est opérationnel, réinstallez vos programmes avec
la source