Question Comment lister tous les paquets installés


Je voudrais afficher une liste de tous les paquets installés dans un fichier texte afin que je puisse le consulter et l’installer en bloc sur un autre système. Comment pourrais-je faire ça?


1576
2017-12-17 02:08


origine


Cela a déjà été répondu ici. - Simon Quigley
Wow, en parcourant les réponses, il semble y avoir tellement de façons d'accomplir ceci: / - Madivad
Comment faire l'installation en bloc sur un nouveau système à partir d'un tel fichier texte? - Elysium
@Madivad ces gestionnaires de paquets étaient autrefois censés rendre la vie plus facile ... - René Nyffenegger
Question similaire à unix.stackexchange.com "Liste des paquets par date d'installation" - JamesThomasMoon1979


Réponses:


Ubuntu 14.04 et supérieur

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

apt list --installed

Versions plus anciennes

Pour obtenir une liste des paquets installés localement, faites cela dans votre terminal:

dpkg --get-selections | grep -v deinstall

(Le -v tag "inversion" grep pour renvoyer les lignes non correspondantes

Pour obtenir la liste d'un package 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

Sinon, utilisez simplement

dpkg -l

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


1728
2017-12-17 03:02



Ensuite, lors de l'installation sur le nouvel ordinateur, faites cat ~/Desktop/packages > sudo dpkg --set-selections && sudo apt-get dselect upgrade  la source - koanhead
La syntaxe de dpkg a peut-être légèrement changé depuis 2006 car cette commande ne fonctionnait pas pour moi, @koanhead. sudo dpkg --set-selections < ~/Desktop/packages && sudo apt-get -u dselect-upgrade fait le tour - James
Notez que cela ne gardera pas la trace des paquets qui ont été explicitement installés par l'utilisateur et qui ont été installés en tant que dépendances. Cela signifie que si vous utilisez cette méthode pour recréer votre configuration sur un autre ordinateur, apt ne sera pas en mesure de supprimer les dépendances inutiles lorsque vous supprimerez un paquet donné. - intuited
Il est triste et étonnant que le commentaire de @intuited ne soit pas mieux compris par la communauté. Est-ce que les contributeurs les plus "notés" cesseraient de penser plus avant de donner le conseil que le simple rechargement d'anciens paquets sur une nouvelle version d'ubuntu n'est pas une bonne idée (?). Avec toutes les options de dpkg, je n'en vois toujours pas une qui extrait les paquets «expressément» installés par un utilisateur afin que cette liste puisse être rechargée et que ses dépendances puissent être installées; J'aimerais bien le savoir - veuillez partager cette information. En attendant, faites une liste des paquets dont vous avez vraiment besoin lors d'une réinstallation et exécutez-la. - Ricalsin
Nous savons tous que Linux discrimine les personnes sans mémoire photographique, mais sérieusement, qu'est-ce qui ne va pas avec apt list installed. Un jour, nous devrions cesser systématiquement de ne pas respecter le principe "garder les choses simples".


Pour obtenir uniquement les paquets 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 inclura également une brève description, que vous pourriez vouloir. 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 au format suivant:

Package: grub-common
Architecture: amd64
Auto-Installed: 0

Package: linux-headers-2.6.35-22-generic
Architecture: amd64
Auto-Installed: 1

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


380
2017-08-28 21:35



Cela devrait être la bonne réponse. Pourquoi lister les dépendances? - Stavros Korokithakis
Ce devrait être la réponse, mais en utilisant aptitude est un peu peu fiable à cause de Multiarch actuellement (corrections sur le chemin), malheureusement. Toujours +1 pour indiquer uniquement la liste des paquets explicitement installés et un moyen de le faire (même si cela ne fonctionnera pas actuellement avec 11.10+). - gertvdijk
@intuited "Fix Released" pour Precise (il y a quelque temps). :) - gertvdijk
Cela répertorie tous les paquets, pas seulement les paquets installés manuellement sur Ubuntu 13.10. - Eamon Nerbonne
sur Ubuntu-15.10, doit d'abord installer aptitude par exemple: sudo apt-get install aptitude - Mark Mikofski


Créez une sauvegarde des paquets actuellement installés:

dpkg --get-selections > list.txt

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

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

Pour se débarrasser des paquets obsolètes:

sudo apt-get autoremove

Pour s’installer comme au moment de la sauvegarde (c’est-à-dire installer les paquets définis par dpkg --set-selections):

sudo apt-get dselect-upgrade

179
2018-05-16 18:26



Bon conseil sur la restauration sur une autre machine. +1. - Drew Noakes
la migration entre 2 différentes machines Ubuntu 12.04 cette approche a cassé mon système. il a fallu du temps jusqu'à ce que je me rende compte en quelque sorte ubuntu-desktop a été désinstallé - probablement en raison de l’une des commandes dpkg. attention, il m'a fallu des heures pour réparer les dégâts! - Karl Frisk
Et parfois, le système met à jour une application que vous souhaitez que le système ne touche plus jamais, lancez-la à la fin des commandes sudo apt-mark hold name-your-package  . Cela empêchera apt-get de passer à la version actuelle, qui est le processus par défaut pour la mise à jour. - Faron


Pour lister tous les paquets intentionnellement installé (pas en tant que dépendances) par les commandes apt, exécutez les opérations suivantes:

(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 inversée basée sur le temps, avec les anciennes commandes listées en premier:

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

Données d'installation montrant également l'utilisation synaptique, 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:'

fournissant ce qui suit:

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

174
2018-02-02 10:39



Ou (avec zgrep et suppression des messages de mise à jour): zgrep -hE '^(Start-Date:|Commandline:)' $(ls -tr /var/log/apt/history.log*.gz ) | egrep -v 'aptdaemon|upgrade' | egrep -B1 '^Commandline:' - belacqua
Est-ce que cette approche manque des paquets installés avec dpkg?? - drevicko
Alors que les réponses simples ci-dessus sont bonnes pour l'utilisateur général. Cette méthode est de loin la meilleure pour revenir en arrière sur toutes les personnalisations effectuées sur la machine, car elle montre également ce qui a été supprimé ou ajouté à l’image de base, car il les liste dans la séquence dans laquelle il a été exécuté. la séquence correcte pour les ajouter dans un autre système. - AllGamer
@drevicko vous avez raison, il ne liste pas les paquets installés avec dpkg - Steve Buzonas
C'est très pratique pour rester organisé - mon cerveau le préfère de cette façon pour quelque raison que ce soit. - JeremyFelix


apt-mark showmanual

les pages de manuel indiquent:

imprimera une liste de paquets installés manuellement

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

Pour sortir le résultat dans un fichier texte:

apt-mark showmanual >list-installed.txt

60
2017-07-10 13:43



Sur Debian, "apt-mark showmanual" ne fonctionnait pas sur "squeeze" mais travaillait sur "wheezy" - Wadih M.
Comme avec la plupart des autres réponses, apt-mark showmanual pas vraiment Il répertorie également des tonnes de packages installés automatiquement, probablement une partie de l'installation de base. - mivk
Eh bien la question était pour les paquets installés et cela donne à tous les paquets installés moins les dépendances installées automatiquement. Il inclut les packages initiaux dans le cadre de l'installation initiale. Je suppose que vous pourriez exécuter ceci sur une nouvelle installation pour obtenir une liste des installations par défaut, puis soustraire cela à cela pour voir la différence. - Tim Tisdall


dpkg-query (au lieu de dpkg --get-selections, qui répertorie certains packages non 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

38
2018-05-16 18:40



Dactylographie # for pkg in `cat installed-pkgs`; do apt-get install -y $pkg; done dans le second système, je l'ai fait pour qu'il installe les packages. - xyz
@ julianromera: apt-get install -y $(< installed-pkgs) fera en sorte que apt-get s'exécute juste une fois et s'occupe de toutes les dépendances à la fois. - jamadagni
@julianromera ... corrige moi si je me trompe mais pour construire une application avec des dépendances avant de faire l'installation serait généralement sudo apt-get build-dep name-package; sudo apt-get install name-package;  ? - Faron


Pour répertorier tous les packages 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

Remarque:
Vous obtiendrez le fichier 1.txt résultant dans votre dossier personnel ou vous pourrez spécifier votre propre chemin.


36
2017-12-17 03:35





Vous pouvez utiliser Synaptic pour enregistrer l'état actuel de votre pack installé. Dans Synaptic, sélectionnez "fichier / enregistrer les marques", 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 ce fichier peut être chargé dans une nouvelle machine à l'aide de "marquages ​​de fichier / lecture" dans Synaptic.


33
2017-12-17 04:46





Je recommande d'utiliser plan. Même s'il est conçu pour les serveurs, il peut également être utilisé à partir d'ordinateurs de bureau. Il va créer un script shell / chef / marionnette que vous pouvez utiliser pour réinstaller tous vos paquets.


32
2018-04-12 12:26



Je n'essaye pas un miroir complet, mais seul le fait de prendre en compte les fichiers de configuration est génial. Je cherchais un tel outil depuis un moment, merci beaucoup! - tbolender


Vous voulez réinstaller les paquets maintenant sur 12.04, non?

Si oui, c'est très facile. Vous aurez besoin d'un "compte unique Ubuntu". (Créez-le avant de le réinstaller pour que votre système soit synchronisé.)

  1. Accédez au Centre de logiciels et recherchez l'option "Synchroniser entre ordinateurs ..." dans 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 de nouveaux ordinateurs, cet ordinateur sera considéré comme un nouvel ordinateur.

  4. Vous devez simplement vous connecter à votre compte Ubuntu et votre ordinateur précédent sera affiché.

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


31
2018-05-16 18:26



J'ai défini le même nom pour mon ordinateur sur une nouvelle installation afin d'éviter de gros téléchargements depuis le serveur Ubuntu One à chaque fois. Pensez-vous que cela fonctionne pour moi? - AliNâ


Il y a aussi un outil appelé Aptik (ligne de commande et interface graphique) pouvant vous aider à afficher une liste de tous les packages installés, avec une option pour sélectionner / désélectionner certains d'entre eux, créer une liste de sauvegarde, puis restaurer le même ensemble de packages sur un autre système.

À installer:

sudo add-apt-repository -y ppa:teejee2008/ppa
sudo apt-get update
sudo apt-get install aptik

Plus d'infos: http://www.teejeetech.in/2014/04/aptik-v14.html

enter image description here

Comme on peut le voir sur la capture d'écran, Aptik te laisse également sauvegarder et restaurer les PPA, qui sera certainement nécessaire pour installer certains des paquets installés.


30
2018-05-30 20:22



Si vous voulez l'interface graphique, vous devez installer apt-get install aptik-gtk ainsi que - Maduka Jayalath