web-dev-qa-db-fra.com

répertorier tous les paquets d'un référentiel dans ubuntu / debian

existe-t-il une commande pour voir quels packages sont disponibles à partir d'un certain référentiel ppa?

88
opensas

Facile:

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

Ou plus flexible:

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

Pour des requêtes plus sophistiquées, utilisez apt-cache policy et aptitudecomme décrit ici :

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

Je ne sais pas si c'est ce que vous cherchez:

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

Comme il est dit, Synaptic Package Manager vous permet de rechercher par "Origine". Ce n'est pas programmatique, mais cela devrait vous donner ce que vous recherchez.

7
beatgammit

Vieux fil, mais j'ai pensé que ça pourrait aider. Utilisez awk, sort et uniq pour saisir uniquement les packages et supprimer les sommes de contrôle du référentiel de packages.

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

Juste pour le plaisir ou si vous ne faites pas confiance aux caches, vous pouvez interroger les packages déclarés d'une source à partir de la source. Les référentiels sont à peu près des sites Web, HTTP ou FTP.

Votre système possède des URL source, que vous pouvez interroger pour des architectures spécifiques et des paramètres binaires/source. Ensuite, vous pouvez interroger les listes de packages de l'architecture spécifique.

Par exemple, j'utilise un excellent lecteur multimédia de jRiver MediaCenter sur Pop! _OS. Pour interroger leur référentiel stable , que j'ai configuré, découvrez d'abord l'URL:

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

Saisissez ensuite l'emplacement de la liste de l'architecture qui vous intéresse. Notez que l'URL est formée suivant le modèle <archive_url>/dists/<distro>/Release:

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

Enfin, ajoutez le chemin de la liste de l'architecture à la distribution et extrayez les noms des packages à partir des listes de signatures:

$ 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

Naturellement, ajustez ou supprimez les filtres grep | cut | sort à votre goût. Retirer -s (silencieux) paramètre de curl pour voir les diagnostics si nécessaire.

... ou utilisez un Synaptic package manager .

0
Vlad Didenko