web-dev-qa-db-fra.com

Comment lister tous les paquets installés

J'aimerais afficher la 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?

1816
Ivan

Ubuntu 14.04 et plus

L'outil aptsur Ubuntu 14.04 et les versions ultérieures facilite grandement les choses.

apt list --installed

Versions plus anciennes

Pour obtenir la liste des packages installés localement, procédez comme suit:

dpkg --get-selections | grep -v deinstall

(La balise -v "inverse" grep pour renvoyer les 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é packagessur votre bureau, procédez comme suit dans votre terminal:

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

Alternativement, utilisez simplement

dpkg -l

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

2048
Sabacon

Pour obtenir uniquement les packages qui ont été expressément installés (pas seulement 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', mentionnée 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 simplement d'une dépendance.

406
intuited

Pour lister tous les paquets installés intentionnellement (pas comme dépendances) avec les commandes apt, lancez 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:'

Ceci fournit une vue temporelle inversée, avec les commandes les plus anciennes énuméré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 (idem 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
...
199
bcl

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

dpkg --get-selections > list.txt

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

dpkg --clear-selections
Sudo 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 les packages définis par dpkg --set-selections):

Sudo apt-get dselect-upgrade
190
gogaman
apt-mark showmanual

les pages de manuel indiquent:

imprimera une liste des 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 toutes les dépendances incluses en raison de l'installation de ces paquets.

Pour exporter le résultat dans un fichier texte:

apt-mark showmanual > list-manually-installed.txt
74
Tim Tisdall

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

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 fichier de résultat 1.txt dans votre dossier de départ ou vous pourrez spécifier votre propre chemin.

39
karthick87

Vous pouvez utiliser Synaptic pour enregistrer l’état actuel de votre pack 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 uniquement les modifications".

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

35
Nerdfest

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/chef/marionnette Shell que vous pourrez utiliser pour réinstaller tous vos paquets.

34
Tamer

Vous voulez réinstaller les paquets maintenant là-bas le 12.04, non?

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

  1. Accédez au Centre de logiciel 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 de votre ordinateur.

  3. Lorsque vous installerez de nouvelles versions, cet ordinateur sera considéré comme un nouvel ordinateur.

  4. Il vous suffit de vous connecter à votre compte Ubuntu pour afficher votre ordinateur précédent.

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

33
Nirmik

Il existe également un outil appelé Aptik (ligne de commande et interface graphique) qui peut vous aider à afficher une liste de tous les packages installés, avec une option pour sélectionner/désélectionner. Pour certains d’entre eux, créez une liste de sauvegarde, puis restaurez le même ensemble de packages dans un autre système.

À installer:

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

Informations complémentaires: https://teejeetech.fr/aptik/

enter image description here

Comme on peut le voir sur la capture d'écran, Aptik vous permet de sauvegarder et de restaurer également des PPA , ce qui sera certainement nécessaire pour installer certains des packages installés.

32
Sadi

APT-Clone . Ce paquet peut être utilisé pour cloner/restaurer les paquets sur un système basé sur apt.

  • Il sauvegardera/restaurera les packages, sources.list, le trousseau de clés et les états installés automatiquement.
  • Il peut également sauvegarder/restaurer des paquets qui ne sont plus téléchargeables à l'aide de dpkg-repack.

source: man apt-clone

APT-Clone est utilisé par ubiquity (programme d'installation Ubuntu) pour le processus de mise à niveau. C'est beaucoup mieux que la solution dpkg --get-selections car:

  1. Il conserve toutes les informations sur les référentiels.
  2. Il garde une trace de quels paquets ont été automatiquement installés.
  3. Il permet de reconditionner les fichiers DEB installés localement.

Comment utiliser

  1. Installer

    Sudo apt-get install apt-clone
    
  2. Faire une sauvegarde

    Sudo apt-clone clone path-to/apt-clone-state-ubuntu-$(lsb_release -sr)-$(date +%F).tar.gz
    
  3. Restaurer la sauvegarde

    Sudo apt-clone restore path-to/apt-clone-state-ubuntu.tar.gz
    

    Restaurer vers une version plus récente:

    Sudo apt-clone restore-new-distro path-to/apt-clone-state-ubuntu.tar.gz $(lsb_release -sc)
    

C'est un simple fichier tar compressé qui peut être facilement édité et revu avant d'être restauré sur les autres machines. Voici un exemple de sa structure:

/
├── etc
│   └── apt
│       ├── preferences.d
│       ├── sources.list
│       ├── sources.list.d
│       │   ├── anton_-ubuntu-dnscrypt-vivid.list
│       │   ├── maarten-baert-ubuntu-simplescreenrecorder-vivid.list
│       │   └── megasync.list
│       ├── trusted.gpg
│       └── trusted.gpg.d
│           ├── anton__ubuntu_dnscrypt.gpg
│           ├── anton__ubuntu_dnscrypt.gpg~
│           ├── maarten-baert_ubuntu_simplescreenrecorder.gpg
│           └── maarten-baert_ubuntu_simplescreenrecorder.gpg~
└── var
    └── lib
        └── apt-clone
            ├── extended_states
            ├── installed.pkgs
            └── uname
30
user.dz

Il y a ne bonne explication sur Unix StackExchange qui explique comment utiliser aptitude pour lister les paquetages non installés comme dépendances et comment comparer cette liste avec la liste des paquetages par défaut de votre version Ubuntu.

Pour obtenir le fichier de manifeste pour les versions de bureau de 12.04 et plus récentes, visitez le site ce site , choisissez votre version et faites défiler les images du CD sous la section Fichiers. Vous trouverez quelque chose comme "ubuntu-12.04.4-desktop-AMD64 + mac.manifest" qui correspond à votre architecture.

Pour les versions de serveur, vous devez obtenir le fichier de manifeste auprès de l'ISO utilisé pour installer le système d'origine. Pour un serveur VPS ou un serveur cloud, votre fournisseur peut rendre les images disponibles ou vous devez éventuellement les contacter.

Voici un exemple utilisant le code de la publication référencée, ainsi que les modifications à installer sur le nouveau serveur.

Ancien serveur (code d'une autre publication, sortie sauvegardée dans un fichier):

aptitude search '~i !~M' -F '%p' --disable-columns | sort -u > currently-installed.list
wget -qO - http://mirror.pnl.gov/releases/precise/ubuntu-12.04.3-desktop-AMD64.manifest \
  | cut -f1 | sort -u > default-installed.list
comm -23 currently-installed.list default-installed.list > user-installed.list

Sur le nouveau serveur, copiez le fichier à l'aide de scp, puis utilisez sed pour ajouter 'install' à chaque ligne (-i effectue un remplacement en ligne). Vous pouvez ensuite utiliser la liste comme entrée pour 'dpkg --set-selections' et installer les paquets avec apt-get:

scp user@oldserver:user-installed.list .
sed -i 's/$/\tinstall/' user-installed.list
Sudo dpkg --set-selections < user-installed.list
Sudo apt-get dselect-upgrade

Avant de commencer cette tâche, je vous recommande de lire et de comprendre toutes les parties du message mentionné au début, puis de consulter le guide de référence d'aptitude pour obtenir des détails sur les modèles de recherche.

26
thinkmassive

Vous pouvez consulter le journal apt sous /var/log/apt/ et le journal dpkg sous /var/log/

et vous pouvez obtenir la liste des paquets installés avec juste une commande:

dpkg -l | grep '^ii '
25
Maythux

Je suis surpris que la commande apt-cache conçue exactement à cette fin n'ait pas été mentionnée ci-dessus ...

apt-cache pkgnames

Pour plus d'informations, exécutez apt-cache --help:

 ** apt-cache est un outil de bas niveau utilisé pour interroger des informations 
 à partir des fichiers de cache binaire d'APT 
 
 Commandes: 
 gencaches - Build Le paquet et le cache source 
 showpkg - Afficher des informations générales sur un seul paquet 
 showsrc - Afficher les enregistrements source 
 stats - Afficher des statistiques de base 
 dump - Afficher l'intégralité du fichier sous forme abrégée 
 dumpavail - Imprimer un fichier disponible sur la sortie standard 
 unmet - Afficher les dépendances non satisfaites 
 rechercher - Rechercher dans la liste des paquets un motif regex 
 show - Afficher un enregistrement lisible pour le package 
 dépend - Afficher des informations de dépendance brutes pour un package 
 rdepends - Afficher des informations de dépendance inverse pour un package 
 pkgnames - Liste les noms de tous les paquets du système
 dotty - Génère des graphiques de package pour GraphViz 
 xvcg - Génère des graphiques de package pour xvcg 
 policy - Afficher les paramètres de stratégie 
 
 Options: 
 -h Ce texte d'aide. 
 -p =? Le cache du paquet. 
 -S =? Le cache source. 
 -Q Désactiver l'indicateur de progression. 
 -I Afficher uniquement les dépôts importants pour la commande non satisfait. 
 -C =? Lisez ce fichier de configuration 
 -O =? Définissez une option de configuration arbitraire, par exemple -o dir :: cache =/tmp 
 Voir les pages de manuel apt-cache (8) et apt.conf (5) pour plus d'informations. 
 ** 
23
ostrokach
20
adriano72

La commande ci-dessous répertorie également tous les packages installés,

grep ' installed ' /var/log/dpkg.log /var/log/dpkg.log.1 | awk '{print $5}' | sort -u
18
Avinash Raj

Aidez ce wiki de communauté - Ajoutez des solutions à jour.


dpkg, xargs et apt-get

Cette commande devrait permettre la création d'un fichier texte contenant les packages installés:

dpkg -l | awk  '{print $2}' > package_list.txt

Pour effectuer l'installation en bloc des packages répertoriés, vous devez modifier 'package_list.txt'. Supprimez les lignes étranges en haut du fichier à l'aide d'un éditeur de texte. Vous pouvez ensuite utiliser cette commande pour installer des packages à partir du fichier créé à l'aide de:

xargs < package_list.txt apt-get install -y

apt-cache, xargs et apt-get

Utilisez cette méthode uniquement si vous voulez installer tous les packages actuels à l'aide de la liste ( qui inclut automatiquement installé, etc.).

Exportez la réponse de 'apt-cache pkgnames' dans un fichier que nous nommerons simplement "package_list.txt". Vous pouvez accomplir ceci avec:

apt-cache pkgnames > package_list.txt

Ensuite, lorsque vous souhaitez installer des packages à partir de "package_list.txt", vous devez utiliser cette commande:

xargs < package_list.txt apt-get install -y

apt-mark, xargs et apt-get

Nous pouvons utiliser la commande apt-mark showmanual pour donner une liste des paquets qui ont été installés manuellement ou initialement avec Ubuntu. Nous voudrons exporter cela dans un fichier que nous appellerons simplement "package-list.txt". Utilisez cette commande pour accomplir cela:

apt-mark showmanual > package-list.txt

La commande que nous utiliserions pour installer des packages à partir du fichier "package_list.txt" est ci-dessous.

xargs < package_list.txt apt-get install -y

Utilitaire de migration Aptik

Utilitaire permettant de simplifier la réinstallation de progiciels après la mise à niveau/la réinstallation de distributions basées sur Ubuntu.
[ Launchpad | Aptik ]

Pour plus d’informations sur Aptik, essayez de visiter son page officielle, et pour une capture d'écran, cliquez ici ou affichez la fin de cette section. .

L'installation d'Aptik est simple. Suivez ces étapes:

  1. Ajoutez le PPA avec:
    Sudo add-apt-repository -y ppa:teejee2008/ppa

  2. Mettez à jour apt avec la commande ci-dessous.
    Sudo apt-get update

  3. Installez Aptik en utilisant:
    Sudo apt-get install aptik

Aptik Migration Utility v16.5.2


17
David your friend

Pour enregistrer une liste de packages installés dans un fichier nommé installed_packages.txt, exécutez simplement:

dpkg-query --list >> installed_packages.txt
16
wb9688

Je pense qu'il est intéressant de noter que apt list --installed ou dpkg-query --list utilise en fait le fichier appelé /var/lib/dpkg/status dans derrière où toute l'information sur les paquets est barbe.

Donc, si vous souhaitez utiliser la liste très étendue de packages, cat /var/lib/dpkg/status.

Remarque: ne modifiez pas le fichier /var/lib/dpkg/status.

3
prosti

En plus des packages APT, de nombreux packages d'interface graphique sont actuellement distribués sous forme de snaps .

Si votre paquet ne peut pas être trouvé dans apt list --installed, essayez snap list :

$ snap list

Name                  Version                     Rev   Tracking  Publisher       Notes
gimp                  2.10.10                     165   stable    snapcrafters    -
gnome-calculator      3.32.1                      406   stable/…  canonical✓      -
keepassxc             2.4.1                       267   stable    keepassxreboot  -
...

C'est également une bonne idée d'ajouter /snap/bin à PATH afin de pouvoir les démarrer à partir du terminal (cette opération est effectuée automatiquement pour les utilisateurs non root).

3
rustyx

https://www.rosehosting.com/blog/list-all-installed-packages-with-apt-on-ubuntu/ :

1. Répertoriez les packages logiciels installés sur Ubuntu.

Pour répertorier les packages logiciels installés sur votre ordinateur, vous pouvez utiliser la commande suivante:

Sudo apt list --installed

La sortie de la commande sera très similaire à la suivante, selon les packages actuellement installés:

Listing...
acl/xenial,now 2.2.52-3 AMD64 [installed]
adduser/xenial,xenial,now 3.113+nmu3ubuntu4 all [installed]
Apache2/xenial-updates,xenial-security,now 2.4.18-2ubuntu3.1 AMD64 [installed]
Apache2-bin/xenial-updates,xenial-security,now 2.4.18-2ubuntu3.1 AMD64 [installed,automatic]
Apache2-data/xenial-updates,xenial-updates,xenial-security,xenial-security,now 2.4.18-2ubuntu3.1 all [installed,automatic]
Apache2-doc/xenial-updates,xenial-updates,xenial-security,xenial-security,now 2.4.18-2ubuntu3.1 all [installed]
Apache2-utils/xenial-updates,xenial-security,now 2.4.18-2ubuntu3.1 AMD64 [installed]
apparmor/xenial-updates,now 2.10.95-0ubuntu2.5 AMD64 [installed,automatic]
apt/xenial-updates,now 1.2.19 AMD64 [installed]
apt-utils/xenial-updates,now 1.2.19 AMD64 [installed]
...

2. Utilisez le programme LESS

Pour lire facilement la totalité du résultat, vous pouvez utiliser le programme less.

Sudo apt list --installed | less

3. Utilisez la commande GREP

Vous pouvez rechercher un package spécifique dans la sortie à l'aide du programme grep.

Sudo apt list --installed | grep -i Apache

4. Répertoriez tous les paquets incluant Apache

La sortie de la commande ci-dessus listera tous les packages qui incluent Apache dans leurs noms.

Apache2/xenial-updates,xenial-security,now 2.4.18-2ubuntu3.1 AMD64 [installed]
Apache2-bin/xenial-updates,xenial-security,now 2.4.18-2ubuntu3.1 AMD64 [installed,automatic]
Apache2-data/xenial-updates,xenial-updates,xenial-security,xenial-security,now 2.4.18-2ubuntu3.1 all [installed,automatic]
Apache2-doc/xenial-updates,xenial-updates,xenial-security,xenial-security,now 2.4.18-2ubuntu3.1 all [installed]
Apache2-utils/xenial-updates,xenial-security,now 2.4.18-2ubuntu3.1 AMD64 [installed]
libapache2-mod-php/xenial,xenial,now 1:7.0+35ubuntu6 all [installed,automatic]
libapache2-mod-php7.0/xenial-updates,now 7.0.13-0ubuntu0.16.04.1 AMD64 [installed,automatic]
libapache2-mod-security2/xenial,now 2.9.0-1 AMD64 [installed]
libapache2-modsecurity/xenial,xenial,now 2.9.0-1 all [installed]

Apt prend en charge les modèles pour faire correspondre les noms de package et les options afin de répertorier les packages (--installed) installés, les packages (--upgradeable) pouvant être mis à niveau ou toutes les versions de package (--all-versions) disponibles.

5. Utilisez le programme DPKG

Une autre alternative que vous pouvez utiliser pour répertorier les packages logiciels installés sur votre VPS Ubuntu est la commande dpkg.

Sudo dpkg -l

La sortie de la commande vous fournira des informations telles que le nom du package, la version, l'architecture et une brève description du package. Bien entendu, vous pouvez à nouveau utiliser le programme grep pour rechercher un package spécifique.

Sudo dpkg -l | grep -i Apache

La sortie devrait ressembler à celle ci-dessous:

ii  Apache2                       2.4.18-2ubuntu3.1                     AMD64        Apache HTTP Server
ii  Apache2-bin                   2.4.18-2ubuntu3.1                     AMD64        Apache HTTP Server (modules and other binary files)
ii  Apache2-data                  2.4.18-2ubuntu3.1                     all          Apache HTTP Server (common files)
ii  Apache2-doc                   2.4.18-2ubuntu3.1                     all          Apache HTTP Server (on-site documentation)
ii  Apache2-utils                 2.4.18-2ubuntu3.1                     AMD64        Apache HTTP Server (utility programs for web servers)
rc  Apache2.2-common              2.2.22-6ubuntu5.1                     AMD64        Apache HTTP Server common files
ii  libapache2-mod-php            1:7.0+35ubuntu6                       all          server-side, HTML-embedded scripting language (Apache 2 module) (default)
rc  libapache2-mod-php5           5.5.9+dfsg-1ubuntu4.16                AMD64        server-side, HTML-embedded scripting language (Apache 2 module)
ii  libapache2-mod-php7.0         7.0.13-0ubuntu0.16.04.1               AMD64        server-side, HTML-embedded scripting language (Apache 2 module)
ii  libapache2-mod-security2      2.9.0-1                               AMD64        Tighten web applications security for Apache
ii  libapache2-modsecurity        2.9.0-1                               all          Dummy transitional package
ii  libapr1:AMD64                 1.5.2-3                               AMD64        Apache Portable Runtime Library
ii  libaprutil1:AMD64             1.5.4-1build1                         AMD64        Apache Portable Runtime Utility Library
ii  libaprutil1-dbd-sqlite3:AMD64 1.5.4-1build1                         AMD64        Apache Portable Runtime Utility Library - SQLite3 Driver
ii  libaprutil1-ldap:AMD64        1.5.4-1build1                         AMD64        Apache Portable Runtime Utility Library - LDAP Driver
.

Avec le concours de ce tutoriel, vous avez appris à lister les paquets installés dans Ubuntu.

3
M.A.K. Ripon

Le package dctrl-tools fournit l'outil grep-status pour obtenir la liste des packages marqués comme installés sur votre système:

Sudo apt install dctrl-tools

Usage:

grep-status -FStatus -sPackage -n   "install ok installed"

voir: man dctrl-tools

1
GAD3R

Il y a plusieurs façons de le faire. Si vous utilisez CentOS comme moi, vous pouvez utiliser ceux-ci: 1. yum list installed 2. rpm -qa

1
saeed mohammadi