Comment lister tous les packages installés

1628

Je voudrais 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 ferais-je cela?

    
posée Ivan 17.12.2010 - 03:08
la source

22 réponses

1802

Ubuntu 14.04 et supérieur

L’outil apt sur Ubuntu 14.04 et les versions ultérieures rend cela très facile.

apt list --installed

Anciennes versions

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 package spécifique installé:

dpkg --get-selections | grep postgres

Pour enregistrer cette liste dans un fichier texte nommé packages sur votre bureau, procédez comme suit dans votre terminal:

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

Sinon, utilisez simplement

dpkg -l

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

    
réponse donnée Sabacon 17.12.2010 - 04:02
la source
389

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

aptitude search '~i!~M'

Ceci inclura é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 consister à 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 package a été expressément installé et qu'il ne s'agit pas simplement d'une dépendance.

    
réponse donnée intuited 28.08.2012 - 23:35
la source
182

Créez 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-selections
sudo dpkg --set-selections < list.txt

Pour vous 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 paquets définis par dpkg --set-selections ):

sudo apt-get dselect-upgrade
    
réponse donnée gogaman 16.05.2012 - 20:26
la source
178

Pour répertorier tous les packages installés intentionnellement (pas en tant que dépendances) à l'aide de 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:'

Ceci fournit une vue temporelle inversée, les commandes les plus anciennes étant 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 (idem avec 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 les éléments suivants:

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
...
    
réponse donnée bcl 02.02.2013 - 11:39
la source
64
apt-mark showmanual

état des pages de manuel:

will print a list of manually installed packages

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-installed.txt
    
réponse donnée Tim Tisdall 10.07.2014 - 15:43
la source
38

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
    
réponse donnée kyleN 16.05.2012 - 20:40
la source
36

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

    
réponse donnée karthick87 17.12.2010 - 04:35
la source
33

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 sauvegardé à partir de celui-ci peut être chargé sur une nouvelle machine à l’aide de "repères de fichier / lecture" dans Synaptic.

    
réponse donnée Nerdfest 17.12.2010 - 05:46
la source
32

Je recommande d'utiliser le 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 paquets.

    
réponse donnée Tamer 12.04.2011 - 14:26
la source
31

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

Si oui, 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 logiciel et recherchez l'option "Synchroniser entre ordinateurs ..." dans le menu Fichier.

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

  3. Lorsque vous installerez une nouvelle version, 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. Cliquez dessus; vous obtiendrez une liste de toutes les applications. Sélectionnez "installer" sur l'application que vous souhaitez installer.

réponse donnée Nirmik 16.05.2012 - 20:26
la source
30

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

Pour installer:

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

Informations complémentaires: lien

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

    
réponse donnée Sadi 30.05.2014 - 22:22
la source
27

APT-Clone. This package can be used to clone/restore the packages on a apt based system.

  • It will save/restore the packages, sources.list, keyring and automatic-installed states.
  • It can also save/restore no longer downloadable packages using 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 parce que:

  1. Il conserve toutes les informations sur les référentiels.
  2. Il enregistre les paquets installés automatiquement.
  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)
    

Il s'agit d'un simple fichier tar compressé pouvant être facilement modifié et révisé avant la restauration 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
    
réponse donnée user.dz 06.09.2015 - 01:09
la source
24

Il existe une bonne explication sur Unix StackExchange qui explique comment utiliser aptitude pour lister les paquets non installés en tant que dépendances et comment comparer cette liste avec la liste des paquets par défaut pour votre version Ubuntu.

Pour obtenir le fichier de manifeste pour les versions de bureau de 12.04 et plus récentes, visitez ce site , choisissez votre version, puis faites défiler vers le bas. sous les images du CD dans la section des 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 vous procurer le fichier de manifeste auprès de l'ISO utilisé pour installer le système d'origine. Pour un serveur VPS ou Cloud, votre fournisseur peut rendre les images disponibles ou vous devrez peut-être les contacter.

Voici un exemple d'utilisation du code de la publication référencée, ainsi que des modifications à installer sur le nouveau serveur.

Ancien serveur (code d'une autre publication, sortie enregistré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 [email protected]: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 plus de détails sur les modèles de recherche.

    
réponse donnée thinkmassive 10.02.2014 - 17:35
la source
22

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

et vous pouvez obtenir la liste des packages installés avec une seule commande:

dpkg -l | grep '^ii '
    
réponse donnée Maythux 13.03.2014 - 11:36
la source
18

Pour un aperçu complet, voir:

lien

au milieu de la page:

dpkg --list

    
réponse donnée adriano72 31.07.2013 - 15:21
la source
18

Je suis surpris que la commande apt-cache conçue à cette fin ne soit pas mentionnée ci-dessus ...

apt-cache pkgnames

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

**apt-cache is a low-level tool used to query information
from APT's binary cache files

Commands:
   gencaches - Build both the package and source cache
   showpkg - Show some general information for a single package
   showsrc - Show source records
   stats - Show some basic statistics
   dump - Show the entire file in a terse form
   dumpavail - Print an available file to stdout
   unmet - Show unmet dependencies
   search - Search the package list for a regex pattern
   show - Show a readable record for the package
   depends - Show raw dependency information for a package
   rdepends - Show reverse dependency information for a package
   pkgnames - List the names of all packages in the system
   dotty - Generate package graphs for GraphViz
   xvcg - Generate package graphs for xvcg
   policy - Show policy settings

Options:
  -h   This help text.
  -p=? The package cache.
  -s=? The source cache.
  -q   Disable progress indicator.
  -i   Show only important deps for the unmet command.
  -c=? Read this configuration file
  -o=? Set an arbitrary configuration option, eg -o dir::cache=/tmp
See the apt-cache(8) and apt.conf(5) manual pages for more information.
**
    
réponse donnée ostrokach 14.08.2015 - 21:35
la source
16

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
    
réponse donnée Avinash Raj 30.05.2014 - 20:36
la source
14

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

dpkg-query --list >> installed_packages.txt
    
réponse donnée wb9688 12.05.2015 - 10:29
la source
14

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

dpkg, xargs, & 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, & apt-get

Utilisez cette méthode uniquement si vous souhaitez que tous les packages actuels soient installés à l'aide de la liste ( qui comprend automatiquement installé, etc.).

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

apt-cache pkgnames > package_list.txt

Ensuite, lorsque vous souhaitez installer des packages à partir de "package_list.txt", utilisez la commande suivante:

xargs < package_list.txt apt-get install -y

apt-mark, xargs, & 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 les packages à partir du fichier "package_list.txt" est ci-dessous.

xargs < package_list.txt apt-get install -y

Utilitaire de migration Aptik

Utility to simplify re-installation of software packages after upgrading/re-installing Ubuntu-based distributions.
[Launchpad | Aptik]

Pour plus d'informations sur Aptik, visitez sa page officielle , et pour un capture d'écran cliquez sur 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 avec:
    sudo apt-get install aptik

réponse donnée David your friend 05.09.2017 - 11:39
la source
2

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

Le résultat de la commande sera très similaire au suivant, en fonction des 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 l'intégralité de la sortie, 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. Lister tous les paquets qui incluent Apache

La sortie de la commande ci-dessus listera tous les paquets 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 sûr, vous pouvez utiliser le programme grep à nouveau 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 la concurrence de ce tutoriel, vous avez appris à répertorier les paquetages installés dans Ubuntu.

    
réponse donnée 19.10.2018 - 08:54
la source
0

Je pense qu'il est intéressant de noter que apt list --installed ou dpkg-query --list utilise effectivement le fichier appelé /var/lib/dpkg/status dans "derrière", où toutes les informations concernant les paquets sont à la barbe.

Donc, si vous souhaitez utiliser la super liste étendue de paquets, il ne vous reste que cat /var/lib/dpkg/status .

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

    
réponse donnée prosti 16.08.2018 - 21:44
la source
0

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

Utilisation:

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

voir: man dctrl-tools

    
réponse donnée 22.11.2018 - 12:11
la source

Lire d'autres questions sur les étiquettes