Dieser Artikel erklärt, wie man alle verfügbaren Pakete (installiert und zur Installation verfügbar) in einem Ubuntu-, Linux Mint- oder Debian-Repository auflistet, sei es ein offizielles Repository oder eine Quelle eines Drittanbieters wie ein PPA und so weiter.
Im Folgenden finden Sie zwei Möglichkeiten, Pakete aus einem Repository aufzulisten:über eine GUI oder über die Befehlszeile.
Aus derselben Serie:
- Verhindern, dass ein Paket in Ubuntu, Debian oder Linux Mint [APT] aktualisiert wird
- So finden Sie verfügbare Pakete über die Befehlszeile in Debian, Ubuntu oder Linux Mint [APT]
Alle Pakete in einem Debian-, Ubuntu- oder Linux-Mint-Repository mit GUI auflisten
Wenn Sie alle Pakete in einem Repository auf Ihrem Desktop auflisten möchten, können Sie den Synaptic Package Manager verwenden.
Synaptic ist eine grafische Paketverwaltungsanwendung für APT (APT ist der wichtigste Befehlszeilen-Paketmanager für Debian und seine Derivate).
Wenn Sie Synaptic nicht installiert haben, können Sie es unter Debian, Ubuntu und jeder Debian- oder Ubuntu-basierten Linux-Distribution, einschließlich elementarer Betriebssysteme, Linux Mint usw., installieren, indem Sie diesen Befehl verwenden:
sudo apt install synaptic
Um alle Pakete in einem bestimmten Software-Repository mit Synaptic aufzulisten, starten Sie die Anwendung und klicken Sie auf Origin
unten links im Fenster. Wählen Sie als Nächstes das Repository aus, für das Sie alle verfügbaren Pakete auflisten möchten (sowohl installiert als auch zur Installation verfügbar) aus der Liste, die auf der linken Seite des Synaptic Package Managers angezeigt wird.
Hier ist zum Beispiel Synaptic, das alle im Google-Repository verfügbaren Pakete zeigt und Google Chrome Stable, Beta und Unstable sowie Google Earth Pro und EC auflistet:
Wie Sie sehen können, sind hier alle Softwarequellen aufgelistet, einschließlich der offiziellen Repositories.
Launchpad PPA-Repositories werden ebenfalls unterstützt. Ihr Name beginnt mit LP-PPA, gefolgt vom eigentlichen PPA-Namen. Synaptic listet 2 Einträge für jeden PPA auf – stellen Sie sicher, dass Sie den PPA-Eintrag auswählen, der mit /ubuntu-codename
endet , zum Beispiel /bionic
, /cosmic
, usw. Der Eintrag mit der Endung /now
listet nicht alle verfügbaren Pakete im PPA auf.
Dies ist ein Screenshot, der alle Pakete zeigt, die im PPA für Ubuntu-Grafiktreiber verfügbar sind (für Ubuntu 18.10 Cosmic Cuttlefish, da ich das verwende), einschließlich der auf meinem System installierten:
Ich bin mir nicht sicher warum, aber einige Pakete werden mehrfach für PPA-Quellen (und nur für PPA-Repositories) aufgeführt. Dies ist nur eine Anzeigesache und beeinträchtigt keine Funktionalität.
Alle Pakete in einem Repository in Ubuntu, Debian oder Linux Mint über die Befehlszeile auflisten
Das Auflisten aller Pakete in einem Repository über die Befehlszeile in Ubuntu, Debian oder Linux Mint ist etwas knifflig, aber immer noch ziemlich einfach.
Es gibt mehrere Möglichkeiten, dies über den Befehl zu tun, aber ich werde nur eine auflisten. Der Befehl zum Auflisten aller verfügbaren Pakete in repository-name
lautet wie folgt:
grep ^Package /var/lib/apt/lists/repository-name*_Packages | awk '{print $2}' | sort -u
Ich werde erklären, wie man den Repository-Namen erhält. findet /var/list/apt/lists
heraus und wie man es benutzt. Davor erkläre ich, was dieser Befehl macht:
-
grep ^Package ...
sucht nach Zeilen, die mit^Package
beginnen indem Sie/var/lib/apt/lists/*_Packages
ausführen Datei -
awk '{print $2}'
gibt die zweite Spalte für jede Zeile aus (dies filtert alles außer dem Paketnamen heraus) -
sort -u
sortiert die Zeilen und gibt nur eindeutige Zeilen aus (entfernt Duplikate)
Als erstes müssen Sie den Namen des Repositorys *_Packages
finden Datei von /var/lib/apt/lists/
. Sie können alle Repositories auflisten _Packages
Dateien verfügbar in /var/lib/apt/lists/
mit einem einfachen ls
:
ls /var/lib/apt/lists/*_Packages
Da die Ergebnisse sehr lang sein können, können Sie die Befehlsausgabe über more
ausführen zum leichteren Lesen:
ls /var/lib/apt/lists/*_Packages | more
Wenn Sie einen Teil des Repository-Namens kennen (ich verwende KEYWORD
im Befehl unten als Name), können Sie den ls
verwenden Ergebnisse mit grep
, etwa so:
ls /var/lib/apt/lists/*_Packages | grep KEYWORD
Angenommen, Sie möchten alle Pakete im offiziellen Tor-Repository auflisten und wissen, dass der Name des Repositorys tor
enthalten muss . In diesem Fall würden Sie diesen Befehl verwenden, um _Packages
herauszufinden Dateiname von /var/lib/apt/lists/
ls /var/lib/apt/lists/*_Packages | grep tor
Bei schnellen Abfragen sehen Sie möglicherweise einige nicht verwandte Repositories, aber es ist immer noch einfacher zu sehen, wonach Sie suchen. grep
als alle Repositorys aufzulisten _Packages
Dateien.
Jetzt kennen Sie _Packages
filename können Sie alle in diesem Repository verfügbaren Pakete auflisten, indem Sie diesen Befehl ausführen:
grep ^Package /var/lib/apt/lists/some-repository-amd64_Packages | awk '{print $2}' | sort -u
Verwenden Sie die Datei mit der Architektur, für die Sie alle verfügbaren Pakete in diesem Repository auflisten möchten. Das obige Beispiel gilt für 64 Bit (amd64
), aber Sie könnten es verwenden i386
für 32bit usw.
Sie benötigen nicht das gesamte Repository _Packages
Dateiname. Zurück zu meinem Tor-Repository-Beispiel, dem _Packages
Der Dateiname für Tor ist deb.torproject.org_torproject.org_dists_cosmic_main_binary-amd64_Packages
. In diesem Fall könnten Sie deb.torproject
verwenden gefolgt von *_Packages
Dinge wie diese zu vereinfachen:
grep ^Package /var/lib/apt/lists/deb.torproject*_Packages | awk '{print $2}' | sort -u
Was Folgendes ausgibt:
deb.torproject.org-keyring
tor
tor-geoipdb
Ein anderes Beispiel. Angenommen, Sie möchten alle verfügbaren Pakete in Linux Uprising Oracle Java 11 PPA (ppa:linuxuprising/java
). Sie können sie auflisten, indem Sie Folgendes verwenden:
grep ^Package /var/lib/apt/lists/ppa.launchpad.net_linuxuprising_java*_Packages | awk '{print $2}' | sort -u
Was das ausgibt:
oracle-java11-installer
oracle-java11-set-default
Um dies mit anderen PPA-Repositories zu verwenden, ersetzen Sie linuxuprising
mit dem ersten Teil des PPA-Namens und java
mit dem zweiten Teil des PPA-Namens, und der Befehl listet alle Pakete aus diesem PPA auf (sowohl installierte als auch nicht installierte).
Sie können auch alle Pakete auflisten, die in allen PPA-Repositories verfügbar sind, die Sie Ihrem System hinzugefügt haben, indem Sie Folgendes verwenden:
grep ^Package /var/lib/apt/lists/ppa.launchpad.net*_Packages | awk '{print $2}' | sort -u
Für einen einfachen Zugriff können Sie diesen Befehl mithilfe des Lesezeichen-Managers für Markierungsbefehle mit einem Lesezeichen versehen (obwohl er hauptsächlich zum Suchen verwendet wird, kann HSTR auch Lesezeichen für Befehle verwenden).