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?
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?
Réponses:
L' apt
outil sur Ubuntu 14.04 et supérieur rend cela très facile.
apt list --installed
Pour obtenir la liste des packages installés localement, procédez comme suit:
dpkg --get-selections | grep -v deinstall
(La -v
balise "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:
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, aucune sudo
des variantes nécessaires ici)
sudo dpkg --set-selections < ~/Desktop/packages && sudo apt-get -u dselect-upgrade
fait le tour.
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'
, 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-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.
apt-get
?
Pour lister tous les paquets installés intentionnellement (pas en tant que 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
...
zgrep -hE '^(Start-Date:|Commandline:)' $(ls -tr /var/log/apt/history.log*.gz ) | egrep -v 'aptdaemon|upgrade' | egrep -B1 '^Commandline:'
dpkg
??
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 paquets définis par dpkg --set-selections
):
sudo apt-get dselect-upgrade
ubuntu-desktop
une autre, avait été désinstallé, probablement à cause de l'une des commandes de dpkg. attention, il m'a fallu des heures pour réparer les dégâts!
sudo apt-mark hold name-your-package
. Cela empêchera apt-get de passer à la version actuelle, qui est la procédure par défaut pour le processus de mise à jour.
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
apt-mark showmanual
pas vraiment. Il répertorie également des tonnes de packages installés automatiquement, probablement une partie de l'installation de base.
apt list --manual-installed
.
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
# for pkg in `cat installed-pkgs`; do apt-get install -y $pkg; done
dans le deuxième système, j'ai créé ceci pour qu'il installe les paquets.
apt-get install -y $(< installed-pkgs)
fera en sorte qu'apt -get s'exécute une seule fois et traite toutes les dépendances en même temps.
sudo apt-get build-dep name-package; sudo apt-get install name-package;
?
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
Remarque:
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 shell / chef / puppet 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 permettant de sélectionner / désélectionner certains d'entre eux, de créer une liste de sauvegarde, puis de restaurer le même ensemble de packages. 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 vous pouvez le voir sur la capture d'écran, Aptik vous permet également de sauvegarder et de restaurer des PPA , ce qui sera certainement nécessaire pour installer certains des packages installés.
apt-get install aptik-gtk
aussi bien
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.
la 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 dpkg --get-selections
solution 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 une grande explication sur Unix StackExchange qui décrit comment utiliser l' aptitude à la liste des paquets ne sont pas installées en tant que dépendances, et comment comparer cette liste avec la liste des paquets par défaut de votre version d' 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 et faites défiler les images du CD vers le bas dans 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 Cloud, votre fournisseur peut rendre les images disponibles ou vous devrez peut-être 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 plus de détails sur les modèles de recherche.
Je suis surpris que la apt-cache
commande conçue exactement à cet effet n'ait pas été mentionnée ci-dessus ...
apt-cache pkgnames
Pour plus d'informations, lancez apt-cache --help
:
** apt-cache est un outil de bas niveau utilisé pour interroger des informations. à partir des fichiers de cache binaires d'APT Commandes: gencaches - Construit le cache du paquet et le cache source showpkg - Affiche des informations générales pour un seul paquet showsrc - Afficher les enregistrements source stats - Affiche quelques statistiques de base dump - Affiche l'intégralité du fichier sous une forme laconique dumpavail - Imprimer un fichier disponible sur stdout unmet - Afficher les dépendances non résolues search - Recherche dans la liste des paquets un motif regex show - Affiche un enregistrement lisible pour le paquet depend - Affiche les informations de dépendance brutes pour un paquet rdepends - Affiche les informations de dépendance inverse pour un paquet 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 Les options: -h Ce texte d'aide. -p =? Le cache du paquet. -s =? Le cache source. -q Désactiver l'indicateur de progression. -i Affiche uniquement les dépôts importants pour la commande non satisfait. -c =? Lire ce fichier de configuration -o =? Définit une option de configuration arbitraire, par exemple -o dir :: cache = / tmp Consultez les pages de manuel apt-cache (8) et apt.conf (5) pour plus d'informations. **
apt --installed list
donnait le meilleur résultat (comme suggéré dans la réponse principale ci-dessus. Bien que cela apt-cache pkgnames
semble faire l'affaire à première vue, il répertorie "tous les packages du système" (conformément au texte d'aide ci-dessus), qui inclut également les packages connus d'apt. mais ne sont pas réellement installés. Il existe une --installed
option mais cela ne semble pas fonctionner avec pkgnames
.
apt-cache pkgnames | wc -l
donne les 55909
paquets (le système le sait), alors que aptitude search '~i!~M' | wc -l
donne 2160
(les paquets explicitement installés, sans dépendances).
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
/var/log/dpkg.log*
pour obtenir tous les journaux soumis à la rotation.
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 souhaitez que tous les packages actuels soient installés à l'aide de la liste ( qui inclut l'installation automatique, 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 obtenir des informations sur Aptik, visitez sa page officielle. Pour une capture d'écran, cliquez ici ou affichez la fin de cette section.
Installer Aptik est simple. Suivez ces étapes:
Ajouter 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
apt-mark showmanual
inclut Bash, Unity et Xorg, entre autres. Sont-ils censés être là?
Je pense qu'il est intéressant de noter apt list --installed
ou d' dpkg-query --list
utiliser réellement le fichier appelé /var/lib/dpkg/status
derrière où toutes les informations sur les paquets sont barbues.
Donc, si vous souhaitez traiter uniquement de la liste très étendue de packages cat /var/lib/dpkg/status
.
Remarque: ne modifiez pas le /var/lib/dpkg/status
fichier.
Outre les packages APT , de nombreux packages d'interface graphique sont à présent distribués sous forme d' instantanés .
Si votre paquet ne peut pas être trouvé dans apt list --installed
, alors 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
à la variable PATH afin de pouvoir démarrer celles-ci à partir du terminal (cette opération est effectuée automatiquement pour les utilisateurs non-root).
Le paquet dctrl-tools
fournit l' grep-status
outil pour obtenir la liste des paquets 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
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
less
programme.sudo apt list --installed | less
3. Utilisez la commande GREP
Vous pouvez rechercher un package spécifique dans la sortie à l'aide du
grep
programme.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 paquets inclus
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
(--installed)
packages installés, les packages pouvant être mis(--upgradeable)
à niveau ou toutes les(--all-versions)
versions de package 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
dpkg
commande.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
grep
programme à 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 à lister les paquetages installés dans Ubuntu.
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