So listen Sie alle installierten Pakete auf

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

Ubuntu 14.04 und höher

Der apt tool auf Ubuntu 14.04 und höher macht dies 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

(Der -v tag "invertiert" grep, um nicht übereinstimmende Zeilen zurückzugeben)

So erhalten Sie eine Liste eines bestimmten installierten Pakets:

dpkg --get-selections | grep postgres

Um diese Liste in einer Textdatei namens zu speichern packages auf Ihrem Desktop 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 nein sudo oder andere hier notwendige Varianten)

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

aptitude search '~i!~M'

Dies enthält auch eine kurze Beschreibung, die Sie möglicherweise wünschen. Wenn nicht, fügen Sie auch die Option hinzu -F '%p', wie von karthick87 erwähnt.


Eine weitere Option scheint das Kopieren der Datei zu sein /var/lib/apt/extended_states, die eine Textdateidatenbank in diesem Format ist:

Package: grub-commonArchitecture: amd64Auto-Installed: 0Package: linux-headers-2.6.35-22-genericArchitecture: amd64Auto-Installed: 1

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

Um alle Pakete aufzulisten absichtlich installiert (nicht als Abhängigkeiten) Führen Sie mit apt-Befehlen 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 k3bCommandline: apt-get install jhead...

Installationsdaten zeigen auch die synaptische Nutzung an, jedoch ohne Details (gleiches 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:14Commandline: apt-get install gpartedStart-Date: 2012-09-23  15:02:51Commandline: apt-get install sysstat...

Erstellen Sie eine Sicherungskopie der derzeit installierten Pakete:

dpkg --get-selections > list.txt

Stellen Sie dann (auf einem anderen System) Installationen aus dieser Liste wieder her:

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

Um veraltete Pakete loszuwerden:

sudo apt-get autoremove

Um wie zur Backup-Zeit installiert zu werden (dh um Pakete zu installieren, die von dpkg --set-selections):

sudo apt-get dselect-upgrade
apt-mark showmanual

handbuchseiten Zustand:

gibt eine Liste der manuell installierten Pakete aus

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

So geben Sie das Ergebnis in eine Textdatei aus:

apt-mark showmanual > list-manually-installed.txt

dpkg-query (statt 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

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

Beachten:
Sie erhalten das Ergebnis 1.txt-Datei in Ihrem Home-Ordner oder Sie können Ihren eigenen Pfad angeben.

Sie können Synaptic verwenden, um den aktuellen Status Ihrer installierten Anwendungen zu speichern. Wählen Sie in Synaptic "Datei / Status speichern", geben Sie den Namen der Datei ein, in der der Status gespeichert werden soll, und aktivieren Sie das Kontrollkästchen "Vollständiger Status speichern, nicht nur Änderungen".

Die daraus gespeicherte Datei kann mit "Datei- / Lesemar-kierungen" in Synaptic auf einen neuen Computer geladen werden.

Ich empfehle die Verwendung von Blaupause. Obwohl es für Server konzipiert ist, kann es auch von Desktops aus verwendet werden. Es wird ein Shell-Skript / Chef / Marionette 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.)

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

  2. Wenn Sie darauf klicken, wird Ihr Computer registriert und eine Liste aller Apps auf Ihrem Computer angezeigt.

  3. Wenn Sie fresh 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 in der App, die Sie installieren möchten, "Installieren".

Related.

Similar question at unix.stackexchange.com “List packages by installation date”