it-swarm.com.de

Listen Sie alle Pakete aus einem Repository in Ubuntu / Debian auf

gibt es einen Befehl, um zu sehen, welche Pakete in einem bestimmten ppa-Repository verfügbar sind?

88
opensas

Einfach:

grep ^Package: /var/lib/apt/lists/ppa.launchpad.net_*_Packages 

Oder flexibler:

grep-dctrl -sPackage . /var/lib/apt/lists/ppa.launchpad.net_*_Packages 

Verwenden Sie für ausgefallenere Abfragen apt-cache policy und aptitudewie hier beschrieben :

aptitude search '~O LP-PPA-gstreamer-developers'
65
Tobu
grep Package /var/lib/apt/lists/(repo name)_Packages
22
raerek

Ich weiß nicht, ob Sie danach suchen:

https://superuser.com/questions/132346/find-packages-installed-from-a-certain-repository-with-aptitude

Wie bereits erwähnt, können Sie mit Synaptic Package Manager nach "Origin" suchen. Dies ist nicht programmatisch, aber es sollte Ihnen das geben, wonach Sie suchen.

7
beatgammit

Alter Thread, dachte aber, es könnte helfen. Verwenden Sie awk, sort und uniq, um nur die Pakete abzurufen und die Paket-Repo-Prüfsummen zu verwerfen.

grep ^Package /var/lib/apt/lists/<repo you are interested in>* | awk '{print $2}' | sort | uniq
3
luksi1

Nur zum Spaß oder wenn Sie den Caches nicht vertrauen, können Sie die deklarierten Pakete einer Quelle von der Quelle abfragen. Die Repositories sind so ziemlich Websites, entweder HTTP oder FTP.

Ihr System verfügt über Quell-URLs, die Sie nach bestimmten Architekturen und Binär-/Quellparametern abfragen können. Anschließend können Sie die Paketlisten der jeweiligen Architektur abfragen.

Zum Beispiel verwende ich einen exzellenten jRiver Media Player MediaCenter auf Pop! _OS. Um das von mir konfigurierte stabile Repository abzufragen, ermitteln Sie zunächst die URL:

$ cat /etc/apt/sources.list.d/mediacenter26.list 
#MC
deb [Arch=i386,AMD64,armhf] http://dist.jriver.com/stable/mediacenter/ jessie main

Suchen Sie sich dann den Listenort für die Architektur aus, die Sie interessiert. Beachten Sie, dass die URL nach dem Muster <archive_url>/dists/<distro>/Release Gebildet wird:

$ curl -s http://dist.jriver.com/stable/mediacenter/dists/jessie/Release |
> grep "AMD64/Packages$" |
> cut -d" " -f 4 |
> sort -u
main/binary-AMD64/Packages

Fügen Sie abschließend den Listenpfad der Architektur an die Distribution hinzu und extrahieren Sie die Paketnamen aus den Signaturlisten:

$ curl -s http://dist.jriver.com/stable/mediacenter/dists/jessie/main/binary-AMD64/Packages |
> grep "^Package: " |
> cut -d" " -f2 |
> sort -u
mediacenter21
mediacenter22
mediacenter23
mediacenter24
mediacenter25

Natürlich können Sie die Filter grep | cut | sort nach Ihrem Geschmack einstellen oder entfernen. Entfernen Sie den Parameter -s (Silent) aus curl, um bei Bedarf die Diagnose anzuzeigen.

... oder verwenden Sie einen Synaptic Package Manager .

0
Vlad Didenko