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?
L'outil apt
sur Ubuntu 14.04 et les versions ultérieures facilite grandement les choses.
apt list --installed
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é packages
sur 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 Sudo
ou de toute autre variante nécessaire ici)
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.
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
...
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
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
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
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.
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.
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.
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é.)
Accédez au Centre de logiciel et recherchez l'option "Synchroniser entre ordinateurs ..." dans le menu Fichier.
Lorsque vous cliquez dessus, vous verrez votre ordinateur enregistré et une liste de toutes les applications de votre ordinateur.
Lorsque vous installerez de nouvelles versions, cet ordinateur sera considéré comme un nouvel ordinateur.
Il vous suffit de vous connecter à votre compte Ubuntu pour afficher votre ordinateur précédent.
Clique dessus; vous obtiendrez une liste de toutes les applications. Sélectionnez "installer" sur l'application que vous souhaitez installer.
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/
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.
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:
Comment utiliser
Installer
Sudo apt-get install apt-clone
Faire une sauvegarde
Sudo apt-clone clone path-to/apt-clone-state-ubuntu-$(lsb_release -sr)-$(date +%F).tar.gz
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
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.
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 '
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. **
Pour le récapitulatif complet, voir:
à mi-chemin de la page:
dpkg --list
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
Aidez ce wiki de communauté - Ajoutez des solutions à jour.
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
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
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 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:
Ajoutez le PPA avec:Sudo add-apt-repository -y ppa:teejee2008/ppa
Mettez à jour apt avec la commande ci-dessous.Sudo apt-get update
Installez Aptik en utilisant:Sudo apt-get install aptik
Pour enregistrer une liste de packages installés dans un fichier nommé installed_packages.txt
, exécutez simplement:
dpkg-query --list >> installed_packages.txt
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
.
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).
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.
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
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