Wie listet man alle installierten Pakete auf

1563

Ich möchte eine Liste aller installierten Pakete in einer Textdatei ausgeben, damit ich sie überprüfen und auf einem anderen System installieren kann. Wie würde ich das tun?

    
Ivan 17.12.2010, 03:08

20 Antworten

1713

Ubuntu 14.04 und höher

Das Tool apt unter Ubuntu 14.04 und höher macht das sehr einfach.

apt list --installed

Ältere Versionen

Um eine Liste der lokal installierten Pakete zu erhalten, tun Sie dies in Ihrem Terminal:

dpkg --get-selections | grep -v deinstall

(Das -v -Tag "invertiert" grep, um nicht übereinstimmende Zeilen zurückzugeben)

Um eine Liste eines bestimmten installierten Pakets zu erhalten:

dpkg --get-selections | grep postgres

Um diese Liste in einer Textdatei namens packages auf Ihrem Desktop zu speichern, tun Sie dies in Ihrem Terminal:

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

Alternativ verwenden Sie einfach

dpkg -l

(Sie müssen keinen dieser Befehle als Superuser ausführen, also brauchen Sie weder sudo noch andere Varianten hier)

    
Sabacon 17.12.2010, 04:02
377

Um nur die Pakete zu erhalten, die ausdrücklich installiert wurden (nicht nur als Abhängigkeiten installiert), können Sie

ausführen
aptitude search '~i!~M'

Dies beinhaltet auch eine kurze Beschreibung, die Sie vielleicht möchten. Wenn nicht, fügen Sie auch die Option -F '%p' hinzu, wie von karthick87 erwähnt.

Eine weitere Option scheint zu sein, die Datei /var/lib/apt/extended_states zu kopieren, die eine Textdatei-Datenbank in diesem Format ist:

Package: grub-common
Architecture: amd64
Auto-Installed: 0

Package: linux-headers-2.6.35-22-generic
Architecture: amd64
Auto-Installed: 1

Auto-Installed: 0 zeigt an, dass das Paket ausdrücklich installiert wurde und nicht nur eine Abhängigkeit ist.

    
intuited 28.08.2012 23:35
179

Erstellen Sie eine Sicherungskopie der aktuell installierten Pakete:

dpkg --get-selections > list.txt

Dann (auf einem anderen System) Installationen aus dieser Liste wiederherstellen:

dpkg --clear-selections
sudo dpkg --set-selections < list.txt

Um veraltete Pakete loszuwerden:

sudo apt-get autoremove

Um wie zur Sicherungszeit installiert zu werden (d. h. um Pakete zu installieren, die durch dpkg --set-selections festgelegt wurden):

sudo apt-get dselect-upgrade
    
gogaman 16.05.2012 20:26
174

Um alle Pakete, die absichtlich installiert wurden (nicht als Abhängigkeiten) mit apt-Befehlen aufzuführen, führen Sie Folgendes aus:

(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 umgekehrte zeitbasierte Ansicht, wobei ältere Befehle zuerst aufgelistet werden:

Commandline: apt-get install k3b
Commandline: apt-get install jhead
...

Installationsdaten zeigen auch synaptische Verwendung, aber ohne Details (das gleiche gilt für das 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
...
    
bcl 02.02.2013 11:39
57
apt-mark showmanual

man pages state:

  

druckt eine Liste manuell installierter Pakete

Es sollte also nur eine Liste explizit installierter Pakete enthalten (obwohl dies Pakete enthält, die Teil der Standard-Erstinstallation waren), ohne dass alle Abhängigkeiten aufgrund der Installation dieser Pakete enthalten sind.

Ausgabe des Ergebnisses in eine Textdatei:

apt-mark showmanual >list-installed.txt
    
Tim Tisdall 10.07.2014 15:43
38

dpkg-query (anstelle von dpkg --get-selections , die einige Pakete auflistet, die nicht installiert sind) wie folgt:

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
    
kyleN 16.05.2012 20:40
36

Um alle installierten Pakete aufzulisten,

dpkg -l |awk '/^[hi]i/{print }' > 1.txt

oder

aptitude search -F '%p' '~i' > 1.txt

oder

dpkg --get-selections > 1.txt

Hinweis:
Sie erhalten die Ergebnisdatei 1.txt in Ihrem Benutzerordner oder Sie können Ihren eigenen Pfad angeben.

    
karthick87 17.12.2010 04:35
33

Sie können Synaptic verwenden, um den aktuellen Status Ihres installierten Pakets zu speichern. Wählen Sie in Synaptic "file / save markings", geben Sie den Namen der Datei ein, in der der Status gespeichert werden soll, und vergewissern Sie sich, dass das Kontrollkästchen "Voller Status, nicht nur Änderungen" aktiviert ist.

Die Datei, die von dieser Datei gespeichert wird, kann in Synaptic mit "file / read markings" in eine neue Maschine geladen werden.

    
Nerdfest 17.12.2010 05:46
32

Ich empfehle den Blueprint . Obwohl es für Server konzipiert ist, kann es auch von Desktops aus verwendet werden. Es wird ein Shell-Skript / Koch / Puppet erstellt, mit dem Sie alle Ihre Pakete neu installieren können.

    
Tamer 12.04.2011 14:26
31

Sie wollen die Pakete jetzt dort am 12.04 neu installieren, oder?

Wenn ja, ist es sehr einfach. Sie benötigen einen "Ubuntu Single Sign On Account". (Erstellen Sie es vor der Neuinstallation, damit das System synchronisiert wird.)

  1. Gehen Sie zum Software Center und suchen Sie nach der Option "Sync zwischen Computern ..." im Menü "Datei".

  2. Wenn Sie darauf klicken, sehen Sie Ihren Computer registriert und eine Liste aller Anwendungen auf Ihrem Computer.

  3. Wenn Sie neu installieren, wird dieser Computer als neuer Computer betrachtet.

  4. Sie müssen sich nur bei Ihrem Ubuntu-Konto anmelden und Ihr vorheriger Computer wird angezeigt.

  5. Klicken Sie darauf; Sie erhalten eine Liste aller Apps. Wählen Sie "Installieren" in der App, die Sie installieren möchten.

Nirmik 16.05.2012 20:26
30

Es gibt auch ein Tool namens Aptik (sowohl Befehlszeile als auch GUI), mit dem Sie eine Liste aller installierten Pakete anzeigen können, mit einer Option, einige davon auszuwählen / zu entfernen, eine Backup-Liste zu erstellen und dann denselben Paketsatz in einem anderen System wiederherstellen.

Zur Installation:

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

Weitere Informationen: Link

Wie auf dem Screenshot zu sehen ist, können Sie mit Aptik auch PPAs sichern und wiederherstellen , was sicherlich notwendig sein wird, um einige der installierten Pakete zu installieren.

    
Sadi 30.05.2014 22:22
27
  

APT-Klon . Dieses Paket kann zum Klonen / Wiederherstellen der Pakete auf einem apt-basierten System verwendet werden.

     
  • Es wird gespeichert / wiederhergestellt die Pakete, sources.list, keyring und   Automatisch installierte Zustände.
  •   
  • Es können auch nicht mehr herunterladbare Pakete mit dpkg-repack gespeichert / wiederhergestellt werden.
  •   

Quelle: man apt-clone

APT-Clone wird von ubiquity (Ubuntu Installer) für den Upgrade-Prozess verwendet. Es ist viel besser als die dpkg --get-selections Lösung, weil:

  1. Es speichert alle Informationen zu den Repositories.
  2. Es verfolgt, welche Pakete automatisch installiert wurden.
  3. Es ermöglicht lokal neu installierte DEB-Dateien zu packen.

Verwendung

  1. Installieren

    sudo apt-get install apt-clone
    
  2. Erstellen Sie ein Backup

    sudo apt-clone clone path-to/apt-clone-state-ubuntu-$(lsb_release -sr)-$(date +%F).tar.gz
    
  3. Sicherung wiederherstellen

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

    Auf neuere Version wiederherstellen:

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

Es wird eine einfach gezippte TAR-Datei erstellt, die einfach bearbeitet und überprüft werden kann, bevor sie auf den anderen Rechnern wiederhergestellt wird. Hier ein Beispiel für seine 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
    
user.dz 06.09.2015 01:09
24

Es gibt eine großartige Erklärung zu Unix StackExchange , die beschreibt, wie aptitude verwendet wird um Pakete aufzulisten, die nicht als Abhängigkeiten installiert sind und wie man diese Liste mit der Liste der Standardpakete für deine Ubuntu-Version vergleicht.

Rufen Sie diese Website auf, um die Manifestdatei für Desktopversionen der Version 12.04 und höher zu erhalten. Wählen Sie Ihre Version aus und führen Sie einen Bildlauf nach unten durch unter den CD-Images zum Dateibereich. Sie finden 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 Originalsystems verwendet wurde. Bei einem VPS- oder Cloud-Server stellt Ihr Anbieter die Bilder möglicherweise zur Verfügung oder Sie müssen sie möglicherweise kontaktieren.

Hier ist ein Beispiel, das den Code aus dem referenzierten Post zusammen mit den Änderungen verwendet, die auf dem neuen Server installiert werden müssen.

Alter Server (Code aus anderem Post, 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 verwenden Sie sed, um "install" an jede Zeile anzufügen (-i führt eine Inline-Ersetzung 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 ich mit dieser Aufgabe beginne, empfehle ich, alle Teile des eingangs erwähnten Beitrags zu lesen und zu verstehen, und konsultiere dann die aptitude reference guide für Details zu Suchmustern.

    
thinkmassive 10.02.2014 17:35
22

Sie können sich das apt Protokoll unter /var/log/apt/ und das dpkg Protokoll unter /var/log/

ansehen

und Sie können die Liste der installierten Pakete mit nur einem Befehl abrufen:

dpkg -l | grep '^ii '
    
Maythux 13.03.2014 11:36
18

Den vollständigen Überblick finden Sie unter:

Link

halbwegs über die Seite:

  

dpkg - Liste

    
adriano72 31.07.2013 15:21
18

Ich bin überrascht, dass der apt-cache -Befehl, der genau für diesen Zweck entworfen wurde oben nicht erwähnt wurde ...

apt-cache pkgnames

Für weitere Informationen führen Sie apt-cache --help :

aus
**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.
**
    
ostrokach 14.08.2015 21:35
16

Der folgende Befehl listet alle installierten Pakete auf,

grep ' installed ' /var/log/dpkg.log /var/log/dpkg.log.1 | awk '{print }' | sort -u
    
Avinash Raj 30.05.2014 20:36
14

Um eine Liste installierter Pakete in einer Datei namens installed_packages.txt zu speichern, führen Sie einfach:

aus
dpkg-query --list >> installed_packages.txt
    
wb9688 12.05.2015 10:29
14

Helfen Sie mit, dieses Community-Wiki - Fügen Sie aktuelle Lösungen hinzu.

dpkg, xargs und & amp; apt-get

Dieser Befehl sollte die Erstellung einer Textdatei mit installierten Paketen ausführen:

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

Um die Masseninstallation der aufgeführten Pakete durchzuführen, müssen Sie 'package_list.txt' bearbeiten. Entfernen Sie die seltsamen Zeilen am Anfang der Datei mit einem Texteditor. Sie können diesen Befehl dann verwenden, um Pakete mit folgender Datei aus der erstellten Datei zu installieren:

xargs < package_list.txt apt-get install -y

apt-cache, xargs & amp; apt-get

Verwenden Sie diese Methode nur, wenn Sie möchten, dass alle aktuellen Pakete mithilfe der Liste installiert werden ( enthält automatisch installiert usw.).

Geben Sie die Antwort von 'apt-cache pkgnames' in eine Datei aus, die wir einfach 'package_list.txt' nennen. Sie können dies erreichen 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

apt-mark, xargs & amp; apt-get

Wir können den Befehl 'apt-mark showmanual' verwenden, um eine Liste von Paketen zu geben, 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, finden Sie unten.

xargs < package_list.txt apt-get install -y

Aptik Migrationsprogramm

  

Dienstprogramm zur Vereinfachung der Neuinstallation von Softwarepaketen nach der Aktualisierung / Neuinstallation von Ubuntu-basierten Distributionen.
  [ Launchpad | Aptik ]

Weitere Informationen zu Aptik erhalten Sie auf der offiziellen Seite screenshot Klicken Sie hier oder sehen Sie sich das Ende dieses Abschnitts an.

Die Installation von Aptik ist einfach. Befolgen Sie diese Schritte:

  1. Fügen Sie das PPA hinzu mit:
    sudo add-apt-repository -y ppa:teejee2008/ppa

  2. Aktualisieren Sie apt mit dem folgenden Befehl.
    sudo apt-get update

  3. Installieren Sie Aptik mit:
    sudo apt-get install aptik

David your friend 05.09.2017 11:39
0

Ich denke, es ist interessant festzustellen, dass apt list --installed oder dpkg-query --list tatsächlich die Datei namens /var/lib/dpkg/status in hinter verwenden, in der alle Informationen über die Pakete enthalten sind.

Wenn Sie also mit der super-erweiterten Liste von Paketen arbeiten möchten, einfach cat /var/lib/dpkg/status .

Hinweis: Ändern Sie nicht /var/lib/dpkg/status file.

    
prosti 16.08.2018 21:44

Tags und Links