So listen Sie alle installierten Pakete auf

1888

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?

Ivan
quelle
7
Dies wurde bereits beantwortet hier .
Simon Quigley
2
Wow, durch die Antworten scheint es so viele Möglichkeiten zu geben, dies zu erreichen: /
Madivad
2
Wie mache ich die Masseninstallation auf einem neuen System aus einer solchen Textdatei?
Elysium
2
@ Madivad Diese Paketmanager sollten einst das Leben leichter machen ...
René Nyffenegger
2
Ähnliche Frage unter unix.stackexchange.com "Pakete nach Installationsdatum
auflisten

Antworten:

2138

Ubuntu 14.04 und höher

Das aptTool auf Ubuntu 14.04 und höher macht dies sehr einfach.

apt list --installed

Ältere Versionen

So rufen Sie eine Liste der lokal installierten Pakete in Ihrem Terminal ab:

dpkg --get-selections | grep -v deinstall

(Das -vTag "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, die packagesauf Ihrem Desktop aufgerufen wird :

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

Alternativ einfach benutzen

dpkg -l

(Sie müssen keinen dieser Befehle als Superuser ausführen, daher sind hier keine sudooder andere Varianten erforderlich.)

Sabacon
quelle
37
Wenn dann auf den neuen Computer installieren, tut cat ~/Desktop/packages > sudo dpkg --set-selections && sudo apt-get dselect upgrade Quelle
koanhead
13
Die Syntax für dpkg hat sich seit 2006 möglicherweise geringfügig geändert, da dieser Befehl bei mir, @koanhead, nicht funktioniert hat. sudo dpkg --set-selections < ~/Desktop/packages && sudo apt-get -u dselect-upgrademacht den Trick.
James
221
Beachten Sie, dass dadurch nicht nachverfolgt wird, welche Pakete vom Benutzer explizit installiert und welche als Abhängigkeiten installiert wurden. Dies bedeutet, dass apt nicht in der Lage ist, nicht benötigte Abhängigkeiten zu entfernen, wenn Sie mit dieser Methode Ihr Setup auf einem anderen Computer neu erstellen, wenn Sie ein bestimmtes Paket entfernen.
Intuited
73
Es ist traurig und erstaunlich, dass der Kommentar von @intuited von der Community nicht besser verstanden wird. Würden die höher bewerteten Autoren aufhören, mehr darüber nachzudenken, bevor sie den Rat geben, dass es keine gute Idee ist, alte Pakete auf eine neue Ubuntu-Version zu laden (?)? Bei allen dpkg-Optionen sehe ich immer noch keine, die die 'ausdrücklich' installierten Pakete eines Benutzers herausholt, damit DIESE Liste neu geladen werden kann und die Abhängigkeiten installiert werden können. Ich würde es gerne wissen - bitte teilen Sie diese Informationen.
Erstellen
62
Wir alle wissen, dass Linux Menschen ohne fotografisches Gedächtnis diskriminiert, aber im Ernst, was daran falsch wäre apt list installed. Eines Tages sollten wir damit aufhören, systematisch das Prinzip "einfache Dinge einfach halten" zu missachten.
414

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 die Option hinzu -F '%p', wie von karthick87 erwähnt.


Eine weitere Möglichkeit scheint darin zu bestehen, die Datei zu kopieren /var/lib/apt/extended_states, bei der es sich um eine Textdatei-Datenbank in folgendem 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 ist.

intuitiert
quelle
52
Dies sollte die richtige Antwort sein. Warum Abhängigkeiten auflisten?
Stavros Korokithakis
13
Dies sollte die Antwort sein, aber die Verwendung von aptitude ist etwas unzuverlässig, da Multiarch derzeit (Fixes auf dem Weg) leider nicht funktioniert . Immer noch +1, um darauf hinzuweisen, dass nur explizit installierte Pakete aufgelistet werden und eine Möglichkeit, dies zu tun (obwohl es derzeit nicht mit 11.10+ funktioniert).
gertvdijk
4
@intuited "Fix Released" für Precise (vor einiger Zeit). :)
gertvdijk
11
Hier werden alle Pakete aufgelistet, nicht nur manuell installierte Pakete unter Ubuntu 13.10.
Eamon Nerbonne
5
gibt es eine möglichkeit, dasselbe ergebnis mit zu erzielen apt-get?
Javier Arias
203

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

(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
...
bcl
quelle
3
Oder (mit zgrep und Entfernen von Aktualisierungsnachrichten):zgrep -hE '^(Start-Date:|Commandline:)' $(ls -tr /var/log/apt/history.log*.gz ) | egrep -v 'aptdaemon|upgrade' | egrep -B1 '^Commandline:'
belacqua
3
Fehlen bei diesem Ansatz Pakete, die mit installiert wurden dpkg?
Drevicko
5
Während die obigen einfachen Antworten für den allgemeinen Benutzer gut sind. Diese Methode ist bei weitem die beste, um alle an der Maschine vorgenommenen Anpassungen rückgängig zu machen, da sie auch zeigt, was aus dem Basis-Image entfernt oder hinzugefügt wurde, da sie in der Reihenfolge aufgeführt wird, in der sie ausgeführt wurde die richtige Reihenfolge, um sie wieder in ein anderes System einzufügen.
AllGamer
3
@drevicko du bist richtig, es werden keine Pakete
aufgelistet
3
Dies ist ziemlich praktisch, um organisiert zu
bleiben
192

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

So installieren Sie sich wie zum Zeitpunkt der Sicherung (dh, um die von festgelegten Pakete zu installieren dpkg --set-selections):

sudo apt-get dselect-upgrade
Gogaman
quelle
5
Toller Tipp zum Wiederherstellen auf einem anderen Computer. +1.
Drew Noakes
15
Die Migration zwischen 2 verschiedenen Ubuntu 12.04-Rechnern hat mein System zerstört. Es dauerte eine Weile, bis ich merkte, dass es irgendwie ubuntu-desktopdeinstalliert wurde - wahrscheinlich aufgrund eines der dpkg-Befehle. Vorsicht, ich habe Stunden gebraucht, um den Schaden zu reparieren!
Karl Frisk
1
Und manchmal aktualisiert das System eine App, von der Sie ausdrücklich möchten, dass das System sie nie berührt. Führen Sie dies am Ende der Befehle aus sudo apt-mark hold name-your-package . Dadurch wird verhindert, dass apt-get auf die aktuelle Version aktualisiert wird. Dies ist die Standardeinstellung für den Aktualisierungsvorgang.
Faron
77
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
Tim Tisdall
quelle
Unter Debian arbeitete "apt-mark showmanual" nicht an "squeeze", sondern an "wheezy"
Wadih M.
11
Wie bei den meisten anderen Antworten auch, apt-mark showmanualnicht wirklich. Außerdem werden Tonnen von automatisch installierten Paketen aufgelistet, die wahrscheinlich Teil der Basisinstallation sind.
mivk
8
Nun, die Frage galt für installierte Pakete und dies ergibt alle installierten Pakete abzüglich der automatisch installierten Abhängigkeiten. Es enthält die Anfangspakete als Teil der Erstinstallation. Ich vermute, Sie könnten dies bei einer Neuinstallation ausführen, um eine Liste der Standardinstallationen zu erhalten, und diese dann von dieser subtrahieren, um den Unterschied zu sehen.
Tim Tisdall,
5
Niemand erwähnen diese Alternative manuell installierten Pakete aufzulisten: apt list --manual-installed.
Pablo A
41

dpkg-query(stattdessen werden hier dpkg --get-selectionseinige Pakete aufgelistet, die nicht installiert 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
kyleN
quelle
Bei der Eingabe # for pkg in `cat installed-pkgs`; do apt-get install -y $pkg; doneim zweiten System habe ich dies so gemacht, dass Pakete installiert werden.
user9869932
1
@julianromera: apt-get install -y $(< installed-pkgs)wird es so machen, dass apt-get nur einmal ausgeführt wird und sich gleichzeitig um alle Abhängigkeiten kümmert.
Jamadagni
@julianromera ... korrigiere mich, wenn ich mich irre, aber normalerweise eine App mit Abhängigkeiten zu erstellen, bevor ich die Installation durchführe sudo apt-get build-dep name-package; sudo apt-get install name-package; ?
Faron
39

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

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

karthick87
quelle
35

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 daraus gespeicherte Datei kann mithilfe von "Datei- / Lesemarkierungen" in Synaptic in ein neues Gerät geladen werden.

Nerdfest
quelle
34

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.

Dompteur
quelle
Ich versuche nicht, einen vollständigen Spiegel zu erstellen, aber nur die Tatsache, dass Konfigurationsdateien berücksichtigt werden, ist beeindruckend. Ich habe schon eine Weile nach einem solchen Tool gesucht, vielen Dank!
tbolender
33

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. Rufen Sie das Software Center auf und suchen Sie im Menü Datei nach der Option "Zwischen Computern synchronisieren ...".

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

  3. Bei der Neuinstallation wird dieser Computer als neuer Computer betrachtet.

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

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

Nirmik
quelle
Ich habe bei einer Neuinstallation denselben Namen für meinen Computer festgelegt, um zu verhindern, dass jedes Mal große Datenmengen vom Ubuntu One-Server heruntergeladen werden. Denkst du, dass das für mich funktioniert?
Alen
32

Es gibt auch ein Tool namens Aptik (sowohl Befehlszeile als auch GUI), mit dessen Hilfe Sie eine Liste aller installierten Pakete anzeigen können. Sie können einige davon auswählen oder deren Auswahl aufheben, eine Sicherungsliste erstellen und dann denselben Paketsatz in wiederherstellen ein anderes System.

Installieren:

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

Weitere Informationen: https://teejeetech.in/aptik/

Bildbeschreibung hier eingeben

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

Sadi
quelle
Wenn Sie die GUI wollen, müssen Sie installieren apt-get install aptik-gtkund
Maduka Jayalath
30

APT-Clone . 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 vom ubiquity(Ubuntu-Installer) für den Upgrade-Prozess verwendet. Es ist viel besser als die dpkg --get-selectionsLösung, weil:

  1. Es werden alle Repository-Informationen beibehalten.
  2. Es verfolgt, welche Pakete automatisch installiert wurden.
  3. Hiermit können lokal installierte DEB-Dateien neu gepackt werden.

Wie benutzt man

  1. Installieren

    sudo apt-get install apt-clone
    
  2. Backup erstellen

    sudo apt-clone clone path-to/apt-clone-state-ubuntu-$(lsb_release -sr)-$(date +%F).tar.gz
    
  3. 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 gzippte 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
user.dz
quelle
26

Es gibt eine großartige Erklärung zu Unix StackExchange , die 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-Datei 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 user@oldserver: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 in der Eignungsreferenz .

thinkmassive
quelle
25

Sie können sich das aptProtokoll unter /var/log/apt/und das dpkgProtokoll unter ansehen/var/log/

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

dpkg -l | grep '^ii '
Maythux
quelle
23

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

apt-cache pkgnames

Weitere Informationen erhalten Sie unter apt-cache --help:

** apt-cache ist ein einfaches Tool zum Abfragen von Informationen
aus den binären Cache-Dateien von APT

Befehle:
   gencaches - Erstellen Sie sowohl den Paket- als auch den Quellcache
   showpkg - Zeigt einige allgemeine Informationen für ein einzelnes Paket an
   showsrc - Quelldatensätze anzeigen
   Statistiken - Zeigen Sie einige grundlegende Statistiken an
   dump - Zeigt die gesamte Datei in knapper Form an
   dumpavail - Gibt eine verfügbare Datei an stdout aus
   Nicht erfüllt - Zeigt nicht erfüllte Abhängigkeiten an
   search - Durchsucht die Paketliste nach einem regulären Ausdruck
   show - Zeigt einen lesbaren Datensatz für das Paket an
   depend - Zeigt unformatierte Abhängigkeitsinformationen für ein Paket an
   rdepends - Zeigt Informationen zu umgekehrten Abhängigkeiten für ein Paket an
   pkgnames - Listet die Namen aller Pakete im System auf
   dotty - Generiert Paketdiagramme für GraphViz
   xvcg - Generiert Paketdiagramme für xvcg
   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 in den Manualpages apt-cache (8) und apt.conf (5).
**
ostrokach
quelle
5
TLDR; Ich habe schließlich herausgefunden, dass dies apt --installed listdas beste Ergebnis liefert (wie in der obigen Antwort vorgeschlagen). Obwohl apt-cache pkgnameses auf den ersten Blick den Trick zu tun scheint, listet es "alle Pakete im System" (gemäß dem obigen Hilfetext) auf, wozu auch Pakete gehören, über die apt Bescheid weiß Es gibt eine --installedOption, aber es scheint nicht zu funktionieren pkgnames.
SXC731
2
apt-cache pkgnames | wc -lgibt 55909Pakete (das System kennt), während aptitude search '~i!~M' | wc -lgibt 2160(Pakete explizit installiert, ohne Abhängigkeiten).
Knb
18

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
Avinash Raj
quelle
Die .1 dort impliziert, dass das Protokoll gedreht wurde. Wenn dies der Fall ist, ist es möglicherweise besser, zu grep /var/log/dpkg.log*zu wechseln , um alle gedrehten Protokolle zu erhalten.
Steve Buzonas
17

Hilf diesem Community-Wiki - Füge aktuelle Lösungen hinzu.


dpkg, xargs & apt-get

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

apt-cache, xargs & apt-get

Verwenden Sie diese Methode nur, wenn Sie möchten, dass alle aktuellen Pakete mithilfe der Liste ( einschließlich automatisch installierter Pakete usw.) installiert werden.

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

apt-mark, xargs & apt-get

Mit dem Befehl können wir apt-mark showmanualeine Liste der Pakete anzeigen, 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

Aptik Migrationsprogramm

Hilfsprogramm zur Vereinfachung der Neuinstallation von Softwarepaketen nach dem Upgrade / Neuinstallation von Ubuntu-basierten Distributionen.
[ Launchpad | Aptik ]

Weitere Informationen zu Aptik finden Sie auf der offiziellen Seite des Unternehmens . Für einen Screenshot klicken Sie hier oder sehen Sie sich das Ende dieses Abschnitts an.

Die Installation von Aptik ist einfach. Folge diesen Schritten:

  1. Fügen Sie die 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

Aptik Migration Utility v16.5.2


David dein Freund
quelle
1
Die Ausgabe von apt-mark showmanualenthält unter anderem Bash, Unity und Xorg. Sollen sie da sein?
wjandrea
@wjandrea die Ausgabe von 'apt-mark showmanual' enthält auch Bash & Unity in meiner generierten Liste. Es sollte normal sein, da die Befehlsliste manuell installiert und anfänglich mit Ubuntu installiert ist.
David dein Freund
16

Um eine Liste der installierten Pakete in einer Datei mit dem Namen zu speichern installed_packages.txt, führen Sie einfach Folgendes aus:

dpkg-query --list >> installed_packages.txt
wb9688
quelle
3

Ich halte es für interessant, die Datei zu notieren apt list --installedoder dpkg-query --listtatsächlich zu verwenden, in der sich /var/lib/dpkg/statusalle Informationen zu den Paketen befinden.

Also, wenn Sie mit der super erweiterten Liste von Paketen nur umgehen möchten cat /var/lib/dpkg/status.

Hinweis: Ändern Sie die /var/lib/dpkg/statusDatei nicht.

prosti
quelle
3

Zusätzlich zu APT- Paketen werden heutzutage viele GUI-Pakete als Snaps verteilt .

Wenn Ihr Paket nicht in gefunden werden kann apt list --installed, versuchen Sie Folgendes 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/binden PATH zu ergänzen , damit Sie diese vom Terminal aus starten können (automatisch für Benutzer ohne Rootberechtigung).

Rustyx
quelle
1

Das Paket enthält dctrl-toolsdas grep-statusTool, 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"

sehen : man dctrl-tools

GAD3R
quelle
1

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

Um die gesamte Ausgabe einfach zu lesen, können Sie das lessProgramm verwenden.

sudo apt list --installed | less

3. Verwenden Sie den GREP-Befehl

Sie können mit dem grepProgramm über die Ausgabe 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, die apachein ihren Namen enthalten sind.

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, die mit Paketnamen und -optionen übereinstimmen, 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 auf Ihrem Ubuntu VPS auflisten können, ist der dpkgBefehl.

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 grepProgramm 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.

MAK Ripon
quelle
0

Dafür gibt es viele Möglichkeiten. Wenn Sie CentOS wie ich verwenden, können Sie diese verwenden: 1. yum list installed 2.rpm -qa

saeed mohammadi
quelle