Ich möchte eine Liste aller installierten Pakete in einer Textdatei ausgeben, damit ich sie überprüfen und auf einem anderen System als Masseninstallation installieren kann. Wie würde ich das machen?
Das Tool apt
unter Ubuntu 14.04 und höher macht dies sehr einfach.
apt list --installed
So rufen Sie eine Liste der lokal installierten Pakete in Ihrem Terminal ab:
dpkg --get-selections | grep -v deinstall
(Das -v
-Tag "invertiert" grep, um nicht übereinstimmende Zeilen zurückzugeben.)
So rufen Sie eine Liste eines bestimmten Pakets ab:
dpkg --get-selections | grep postgres
So speichern Sie diese Liste in einer Textdatei mit dem Namen packages
auf Ihrem Desktop in Ihrem Terminal:
dpkg --get-selections | grep -v deinstall > ~/Desktop/packages
Alternativ einfach benutzen
dpkg -l
(Sie müssen keinen dieser Befehle als Superuser ausführen, daher keine Sudo
oder andere hier erforderliche Varianten
Um nur die Pakete zu erhalten, die ausdrücklich installiert wurden (nicht nur als Abhängigkeiten), können Sie ausführen
aptitude search '~i!~M'
Dazu gehört auch eine kurze Beschreibung, die Sie möglicherweise wünschen. Wenn nicht, fügen Sie auch die Option -F '%p'
hinzu, wie von karthick87 erwähnt.
Eine weitere Möglichkeit scheint darin zu bestehen, die Datei /var/lib/apt/extended_states
zu kopieren, bei der es sich um eine Textdatei-Datenbank in diesem Format handelt:
Package: grub-common
Architecture: AMD64
Auto-Installed: 0
Package: linux-headers-2.6.35-22-generic
Architecture: AMD64
Auto-Installed: 1
Auto-Installed: 0
gibt an, dass das Paket ausdrücklich installiert wurde und nicht nur eine Abhängigkeit darstellt.
Führen Sie Folgendes aus, um alle Pakete absichtlich installiert (nicht als Abhängigkeiten) von apt-Befehlen aufzulisten:
(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:'
Dies bietet eine zeitbasierte Ansicht in umgekehrter Reihenfolge, wobei ältere Befehle zuerst aufgeführt werden:
Commandline: apt-get install k3b
Commandline: apt-get install jhead
...
Installationsdaten, die auch die synaptische Nutzung anzeigen, jedoch ohne Details (dasselbe mit Installationsdatum):
(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:'
bereitstellung der folgenden:
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
...
Erstellen Sie eine Sicherungskopie der aktuell installierten Pakete:
dpkg --get-selections > list.txt
Stellen Sie dann (auf einem anderen System) Installationen von dieser Liste wieder her:
dpkg --clear-selections
Sudo dpkg --set-selections < list.txt
So entfernen Sie veraltete Pakete:
Sudo apt-get autoremove
Installation wie zum Zeitpunkt der Sicherung (d. H. Installation von Paketen, die mit dpkg --set-selections
festgelegt wurden):
Sudo apt-get dselect-upgrade
apt-mark showmanual
manpages-Status:
druckt eine Liste der manuell installierten Pakete
Es sollte also nur eine Liste der explizit installierten Pakete enthalten sein (obwohl dies auch Pakete beinhaltet, die Teil der anfänglichen Standardinstallation waren), ohne dass alle Abhängigkeiten enthalten sind, die aufgrund der Installation dieser Pakete auftreten.
So geben Sie das Ergebnis in eine Textdatei aus:
apt-mark showmanual > list-manually-installed.txt
dpkg-query
(anstelle von dpkg --get-selections
, in dem einige nicht installierte Pakete aufgeführt sind):
dpkg-query -W -f='${PackageSpec} ${Status}\n' | grep installed | sort -u | cut -f1 -d \ > installed-pkgs
Oder:
dpkg -l | grep ^ii | sed 's_ _\t_g' | cut -f 2 > installed-pkgs
Um alle installierten Pakete aufzulisten,
dpkg -l |awk '/^[hi]i/{print $2}' > 1.txt
oder
aptitude search -F '%p' '~i' > 1.txt
oder
dpkg --get-selections > 1.txt
Anmerkung:
Sie erhalten die Ergebnisdatei 1.txt in Ihrem Home-Ordner oder können Ihren eigenen Pfad angeben.
Sie können Synaptic verwenden, um den aktuellen Status Ihres installierten Pakets zu speichern. Wählen Sie in Synaptic "Datei/Markierungen speichern", geben Sie den Namen der Datei ein, in der der Status gespeichert werden soll, und aktivieren Sie das Kontrollkästchen "Vollständigen Status speichern, nicht nur Änderungen".
Die hieraus gespeicherte Datei kann mithilfe von "Datei-/Lesemarkierungen" in Synaptic in ein neues Gerät geladen werden.
Ich empfehle Blaupause . Obwohl es für Server entwickelt wurde, kann es auch von Desktops aus verwendet werden. Es wird ein Shell-Skript/chef/puppet erstellt, mit dem Sie alle Ihre Pakete neu installieren können.
Du willst die Pakete jetzt dort am 12.04 neu installieren, oder?
Wenn ja, ist es sehr einfach. Sie benötigen ein "Ubuntu Single Sign On-Konto". (Erstellen Sie es vor der Neuinstallation, damit Ihr System synchronisiert wird.)
Rufen Sie das Software Center auf und suchen Sie im Menü Datei nach der Option "Zwischen Computern synchronisieren ...".
Wenn Sie darauf klicken, wird Ihr Computer registriert und eine Liste aller Apps auf Ihrem Computer angezeigt.
Bei der Neuinstallation wird dieser Computer als neuer Computer betrachtet.
Sie müssen sich nur in Ihrem Ubuntu-Konto anmelden und Ihr vorheriger Computer wird angezeigt.
Klick es an; Sie erhalten eine Liste aller Apps. Wählen Sie "Installieren" in der App, die Sie installieren möchten.
Es gibt auch ein Tool mit dem Namen Aptik (sowohl Befehlszeile als auch GUI), mit dem Sie eine Liste aller installierten Pakete anzeigen und einige davon auswählen bzw. deren Auswahl aufheben sowie eine Sicherungsliste erstellen können Stellen Sie dieselbe Paketgruppe auf einem anderen System wieder her.
Installieren:
Sudo add-apt-repository -y ppa:teejee2008/ppa
Sudo apt-get update
Sudo apt-get install aptik
Weitere Informationen: https://teejeetech.in/aptik/
Wie Sie auf dem Screenshot sehen können, können Sie mit Aptikauch PPAs sichern und wiederherstellen, was sicherlich notwendig ist, um einige der installierten Pakete zu installieren.
APT-Klon . Dieses Paket kann zum Klonen/Wiederherstellen der Pakete auf einem apt-basierten System verwendet werden.
- Es werden die Pakete, die sources.list, der Schlüsselring und die automatisch installierten Zustände gespeichert/wiederhergestellt.
- Es kann auch nicht mehr herunterladbare Pakete mit dpkg-repack speichern/wiederherstellen.
Quelle:
man apt-clone
APT-Clone wird von ubiquity
(Ubuntu-Installationsprogramm) für den Upgrade-Vorgang verwendet. Es ist viel besser als die _dpkg --get-selections
_ -Lösung, weil:
Wie benutzt man
Installieren
_Sudo apt-get install apt-clone
_
Backup erstellen
_Sudo apt-clone clone path-to/apt-clone-state-ubuntu-$(lsb_release -sr)-$(date +%F).tar.gz
_
Backup wiederherstellen
_Sudo apt-clone restore path-to/apt-clone-state-ubuntu.tar.gz
_
Auf neuere Version zurücksetzen:
_Sudo apt-clone restore-new-distro path-to/apt-clone-state-ubuntu.tar.gz $(lsb_release -sc)
_
Es erstellt eine einfache gezippte TAR-Datei, die einfach bearbeitet und überprüft werden kann, bevor sie auf den anderen Computern wiederhergestellt wird. Hier ein Beispiel seiner Struktur:
_/
├── 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
_
Es gibt eine großartige Erklärung zu Unix StackExchange , das beschreibt, wie Sie aptitude verwenden, um Pakete aufzulisten, die nicht als Abhängigkeiten installiert wurden, und wie Sie diese Liste mit der Liste der Standardpakete für Ihre Ubuntu-Version vergleichen.
Um die Manifest-Datei für Desktop-Versionen ab 12.04 zu erhalten, besuchen Sie diese Site , wählen Sie Ihr Release aus und scrollen Sie unter den CD-Images zum Dateibereich. Sie finden so etwas wie "ubuntu-12.04.4-desktop-AMD64 + mac.manifest", das zu Ihrer Architektur passt.
Für Serverversionen müssen Sie die Manifestdatei von der ISO beziehen, die zur Installation des ursprünglichen Systems verwendet wurde. Für einen VPS- oder Cloud-Server stellt Ihr Anbieter die Bilder möglicherweise zur Verfügung oder Sie müssen sie kontaktieren.
Hier ist ein Beispiel, in dem der Code aus dem Beitrag verwendet wird, auf den verwiesen wird, zusammen mit Änderungen, die auf dem neuen Server installiert werden sollen.
Alter Server (Code aus anderem Beitrag, Ausgabe in Datei gespeichert):
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
Kopieren Sie die Datei auf dem neuen Server mit scp und hängen Sie dann mit sed 'install' an jede Zeile an (-i führt ein Inline-Ersetzen durch). Dann können Sie die Liste als Eingabe für 'dpkg --set-selections' verwenden und die Pakete mit apt-get installieren:
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
Bevor Sie mit dieser Aufgabe beginnen, empfehle ich, alle eingangs genannten Teile des Beitrags zu lesen und zu verstehen. Weitere Informationen zu Suchmustern finden Sie im Aptitude Reference Guide .
Sie können das Protokoll apt
unter /var/log/apt/
und das Protokoll dpkg
unter /var/log/
anzeigen.
und Sie können die Liste der installierten Pakete mit nur einem Befehl erhalten:
dpkg -l | grep '^ii '
Ich bin überrascht, dass der apt-cache
-Befehl genau für diesen Zweck oben nicht erwähnt wurde ...
apt-cache pkgnames
Für weitere Informationen führen Sie apt-cache --help
aus:
** apt-cache ist ein einfaches Tool zum Abfragen von Informationen aus den binären Cache-Dateien von APT Befehle: gencaches - Build Sowohl das Paket als auch der Quellcache showpkg - Zeigen Sie einige allgemeine Informationen für ein einzelnes Paket an. showsrc - Zeigen Sie Quelldatensätze an die gesamte Datei in einer knappen Form dumpavail - druckt eine verfügbare Datei nach stdout aus nicht erfüllt - zeigt nicht erfüllte Abhängigkeiten an search - durchsucht die Paketliste nach einem Regex-Muster show - Zeigt einen lesbaren Datensatz für das Paket an depend - Zeigt unformatierte Abhängigkeitsinformationen für ein Paket an rdepends - Zeigt Informationen zur umgekehrten Abhängigkeit für ein Paket an pkgnames - Listet die Namen aller Pakete im System auf dotty - Paketdiagramme für GraphViz generieren xvcg - Paketdiagramme für xvcg generieren Richtlinie - Richtlinieneinstellungen anzeigen Optionen: -h Dieser Hilfetext. -p =? Der Paket-Cache. -S =? Der Quellcache. -Q Fortschrittsanzeige deaktivieren. -I Nur wichtige Abhängigkeiten für den nicht erfüllten Befehl anzeigen. -C =? Lesen Sie diese Konfigurationsdatei -O =? Legen Sie eine beliebige Konfigurationsoption fest, z. B. -o dir :: cache =/tmp Weitere Informationen finden Sie auf den Manualseiten von apt-cache (8) und apt.conf (5). **
Für den vollständigen Überblick siehe:
auf halber Strecke über die Seite:
dpkg - Liste
Mit dem folgenden Befehl werden auch alle installierten Pakete aufgelistet.
grep ' installed ' /var/log/dpkg.log /var/log/dpkg.log.1 | awk '{print $5}' | sort -u
Hilf diesem Community-Wiki - füge aktuelle Lösungen hinzu.
Dieser Befehl sollte die Erstellung einer Textdatei mit installierten Paketen durchführen:
dpkg -l | awk '{print $2}' > package_list.txt
Um die Masseninstallation der aufgelisteten Pakete durchzuführen, müssen Sie 'package_list.txt' bearbeiten. Entfernen Sie die seltsamen Linien oben in der Datei mit einem Texteditor. Mit diesem Befehl können Sie dann Pakete aus der erstellten Datei installieren, indem Sie Folgendes verwenden:
xargs < package_list.txt apt-get install -y
Verwenden Sie diese Methode nur, wenn Sie möchten, dass alle aktuellen Pakete mithilfe der Liste ( installiert werden, die automatisch installierte Pakete usw. enthält.
Geben Sie die Antwort von 'apt-cache pkgnames' in eine Datei mit dem Namen "package_list.txt" aus. Sie erreichen dies mit:
apt-cache pkgnames > package_list.txt
Wenn Sie dann Pakete von "package_list.txt" installieren möchten, verwenden Sie diesen Befehl:
xargs < package_list.txt apt-get install -y
Wir können den Befehl apt-mark showmanual
verwenden, um eine Liste von Paketen zu erhalten, die manuell oder ursprünglich mit Ubuntu installiert wurden. Wir wollen das in eine Datei ausgeben, die wir einfach "package-list.txt" nennen. Verwenden Sie diesen Befehl, um dies zu erreichen:
apt-mark showmanual > package-list.txt
Der Befehl, den wir verwenden würden, um Pakete aus der Datei "package_list.txt" zu installieren, ist unten.
xargs < package_list.txt apt-get install -y
Hilfsprogramm zur Vereinfachung der Neuinstallation von Softwarepaketen nach dem Upgrade/der Neuinstallation von Ubuntu-basierten Distributionen.
[ Launchpad | Aptik ]
Informationen zu Aptik finden Sie auf der offiziellen Seite. Für einen Screenshot klicken Sie auf hier oder sehen Sie sich das Ende dieses Abschnitts an .
Aptik zu installieren ist einfach. Folge diesen Schritten:
Füge den PPA hinzu mit:Sudo add-apt-repository -y ppa:teejee2008/ppa
Aktualisiere passend mit dem folgenden Befehl.Sudo apt-get update
Installiere Aptik mit:Sudo apt-get install aptik
Um eine Liste der installierten Pakete in einer Datei mit dem Namen installed_packages.txt
zu speichern, führen Sie einfach Folgendes aus:
dpkg-query --list >> installed_packages.txt
Ich denke, es ist interessant, apt list --installed
oder dpkg-query --list
zu notieren. Verwenden Sie tatsächlich die Datei mit dem Namen /var/lib/dpkg/status
dahinter, wo alle Informationen zu den Paketen Bart sind.
Wenn Sie sich also mit der super erweiterten Liste von Paketen befassen möchten, klicken Sie einfach auf cat /var/lib/dpkg/status
.
Hinweis: Ändern Sie die Datei /var/lib/dpkg/status
nicht.
Zusätzlich zu APT Paketen werden heutzutage viele GUI-Pakete als Snaps verteilt .
Wenn Ihr Paket nicht in apt list --installed
gefunden werden kann, versuchen Sie es mit 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 -
...
_
Es ist auch eine gute Idee, _/snap/bin
_ zum PATH hinzuzufügen, damit Sie diese vom Terminal aus starten können (automatisch für Benutzer ohne Rootberechtigung).
https://www.rosehosting.com/blog/list-all-installed-packages-with-apt-on-ubuntu/ :
1. Listen Sie die installierten Softwarepakete auf Ubuntu auf
Mit dem folgenden Befehl können Sie die auf Ihrem Computer installierten Softwarepakete auflisten:
Sudo apt list --installed
Die Ausgabe des Befehls ist der folgenden sehr ähnlich, je nachdem, welche Pakete derzeit installiert sind:
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. Verwenden Sie das Programm LESS
Zum einfachen Lesen der gesamten Ausgabe können Sie das Programm
less
verwenden.Sudo apt list --installed | less
3. Verwenden Sie den GREP-Befehl
Sie können über die Ausgabe mit dem Programm
grep
nach einem bestimmten Paket suchen.Sudo apt list --installed | grep -i Apache
4. Listen Sie alle Pakete auf, die Apache enthalten
Die Ausgabe des obigen Befehls listet alle Pakete auf, deren Namen
Apache
enthalten.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 unterstützt Muster, um Paketnamen und -optionen aufzulisten, um installierte
(--installed)
Pakete, aktualisierbare(--upgradeable)
Pakete oder alle verfügbaren(--all-versions)
Paketversionen aufzulisten.5. Verwenden Sie das DPKG-Programm
Eine weitere Alternative, mit der Sie die installierten Softwarepakete in Ihrem Ubuntu VPS auflisten können , ist der Befehl
dpkg
.Sudo dpkg -l
Die Ausgabe des Befehls enthält Informationen wie den Namen des Pakets, die Version, die Architektur und eine kurze Beschreibung des Pakets. Natürlich können Sie das Programm
grep
erneut verwenden, um nach einem bestimmten Paket zu suchen.Sudo dpkg -l | grep -i Apache
Die Ausgabe sollte wie folgt aussehen:
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 .
Mit der Konkurrenz dieses Tutorials haben Sie erfolgreich gelernt, wie man installierte Pakete in Ubuntu auflistet.
Das Paket _dctrl-tools
_ enthält das Tool _grep-status
_, mit dem Sie die Liste der Pakete abrufen können, die auf Ihrem System als installiert markiert sind:
_Sudo apt install dctrl-tools
_
Verwendungszweck:
_grep-status -FStatus -sPackage -n "install ok installed"
_
siehe: man dctrl-tools
Dafür gibt es viele Möglichkeiten. Falls Sie CentOS wie ich verwenden, können Sie diese verwenden: 1. yum list installed
2. rpm -qa