Comment lister tous les paquets installés

J'aimerais afficher une liste de tous les packages installés dans un fichier texte afin de pouvoir l'examiner et l'installer en bloc sur un autre système. Comment je ferais ça?

Ubuntu 14.04 et supérieur

Le apt l'outil sur Ubuntu 14.04 et supérieur rend cela très facile.

apt list --installed

Anciennes Versions

Pour obtenir une liste des paquets installés localement, procédez comme suit dans votre terminal:

dpkg --get-selections | grep -v deinstall

(Le -v balise & quot;inverse & quot; grep pour renvoyer des lignes non correspondantes)

Pour obtenir la liste d'un paquet spécifique installé:

dpkg --get-selections | grep postgres

Pour enregistrer cette liste dans un fichier texte appelé packages sur votre bureau, faites ceci dans votre terminal:

dpkg --get-selections | grep -v deinstall > ~/Desktop/packages

Alternativement, utilisez simplement

dpkg -l

(vous n'avez pas besoin d'exécuter l'une de ces commandes en tant que superutilisateur, donc non sudo ou toute autre variante nécessaire ici)

Pour obtenir uniquement les packages qui ont été expressément installés (pas seulement installés en tant que dépendances) , vous pouvez exécuter

aptitude search '~i!~M'

Cela comprendra également une brève description, que vous voudrez peut-être. Sinon, ajoutez également l'option -F '%p', comme mentionné par karthick87.


Une autre option semble être de copier le fichier /var/lib/apt/extended_states, qui est une base de données de fichiers texte dans ce format:

Package: grub-commonArchitecture: amd64Auto-Installed: 0Package: linux-headers-2.6.35-22-genericArchitecture: amd64Auto-Installed: 1

Auto-Installed: 0 indique que le paquet a été expressément installé et qu'il ne s'agit pas simplement d'une dépendance.

Pour lister tous les paquets installé intentionnellement (pas en tant que dépendances) par les commandes apt, exécutez ce qui suit :

(zcat $(ls -tr /var/log/apt/history.log*.gz); cat /var/log/apt/history.log) 2>/dev/null |  egrep '^(Start-Date:|Commandline:)' |  grep -v aptdaemon |  egrep '^Commandline:'

Cela fournit une vue basée sur le temps inverse, avec les anciennes commandes répertoriées en premier:

Commandline: apt-get install k3bCommandline: apt-get install jhead...

Données d'installation montrant également l'utilisation de synaptic, mais sans détails(la même chose avec la date d'installation) :

(zcat $(ls -tr /var/log/apt/history.log*.gz); cat /var/log/apt/history.log) 2>/dev/null |  egrep '^(Start-Date:|Commandline:)' |  grep -v aptdaemon |  egrep -B1 '^Commandline:'

fournir les éléments suivants:

Start-Date: 2012-09-23  14:02:14Commandline: apt-get install gpartedStart-Date: 2012-09-23  15:02:51Commandline: apt-get install sysstat...

Créer une sauvegarde des packages actuellement installés:

dpkg --get-selections > list.txt

Ensuite (sur un autre système), restaurez les installations à partir de cette liste:

dpkg --clear-selectionssudo dpkg --set-selections < list.txt

Pour se débarrasser des paquets périmés:

sudo apt-get autoremove

Pour être installé comme au moment de la sauvegarde (c'est-à-dire pour installer des packages définis par dpkg --set-selections):

sudo apt-get dselect-upgrade
apt-mark showmanual

état des pages de manuel:

affiche une liste des paquets installés manuellement

Ainsi, il devrait simplement donner une liste des packages explicitement installés (bien que cela inclut les packages qui faisaient partie de l'installation initiale par défaut) sans que toutes les dépendances incluses en raison de l'installation de ces packages soient installées.

Pour afficher le résultat dans un fichier texte:

apt-mark showmanual > list-manually-installed.txt

dpkg-query (au lieu de dpkg --get-selections, qui répertorie certains paquets qui ne sont pas installés) comme suit:

dpkg-query -W -f='${PackageSpec} ${Status}\n' | grep installed |  sort -u | cut -f1 -d \ > installed-pkgs

Ou:

dpkg -l | grep ^ii | sed 's_  _\t_g' | cut -f 2 > installed-pkgs

Pour lister tous les paquets installés,

dpkg -l |awk '/^[hi]i/{print $2}' > 1.txt

ou

aptitude search -F '%p' '~i' > 1.txt

ou

dpkg --get-selections > 1.txt

Note:
Vous obtiendrez le résultat 1.fichier txt dans votre dossier personnel ou vous pouvez spécifier votre propre chemin.

Vous pouvez utiliser Synaptic pour enregistrer l'état actuel de votre système installé. Dans Synaptic, sélectionnez "fichier/enregistrer les marquages", entrez le nom du fichier dans lequel enregistrer l'état et assurez-vous de cocher la case "Enregistrer l'état complet, pas seulement les modifications".

Le fichier enregistré à partir de celui-ci peut être chargé sur une nouvelle machine en utilisant les "marquages de fichier/lecture" dans Synaptic.

Je recommande d'utiliser Blueprint. Même s'il est conçu pour les serveurs, il peut également être utilisé à partir de postes de travail. Il créera un script shell / chef / puppet que vous pourrez utiliser pour réinstaller tous vos packages.

Vous voulez réinstaller les paquets maintenant sur 12.04, n'est-ce pas?

Si c'est le cas, c'est très facile. Vous aurez besoin d'un compte "Ubuntu Single Sign On"."(Créez-le avant la réinstallation afin que votre système soit synchronisé.)

  1. Accédez au Centre logiciel et recherchez la "Synchronisation entre les ordinateurs... option " sous le menu Fichier.

  2. Lorsque vous cliquez dessus, vous verrez votre ordinateur enregistré et une liste de toutes les applications sur votre ordinateur.

  3. Lorsque vous installerez fresh, cet ordinateur sera considéré comme un nouvel ordinateur.

  4. Il vous suffit de vous connecter à votre compte Ubuntu et votre ancien ordinateur sera affiché.

  5. Cliquez dessus; vous obtiendrez une liste de toutes les applications. Sélectionnez "installer" sur l'application que vous souhaitez installer.

Related.

Similar question at unix.stackexchange.com “List packages by installation date”