107 votes

Listez tous les paquets d'un dépôt dans ubuntu / debian

Y a-t-il une commande pour voir quels packages sont disponibles à partir d'un certain dépôt ppa?

72voto

Todd Price Points 703

Simple:

 grep -h -P -o "^Paquet : \K.*" /var/lib/apt/lists/ppa.launchpad.net_*_Packages | sort -u

Ou plus flexible:

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

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

aptitude search '~O LP-PPA-gstreamer-developers'

0 votes

Utilisez xzcat /var/lib/apt/lists/ppa.launchpad.net_*_Packages.xz | grep '^Package:' si ce fichier de package est compressé.

0 votes

Vous devriez mettre des guillemets simples ' autour de ce ^Package:. Sur zsh, le ^ a une signification spéciale.

28voto

raerek Points 638
grep Paquet /var/lib/apt/lists/(nom du dépôt)_Paquets

0 votes

ls /var/lib/apt/lists/*_binary-amd64_Packages | sed -E 's/.*\/([^\/_]*).*/\1/' | sort -u

0 votes

cat /var/lib/apt/lists/AAA.BBB.com_*_Packages | grep '^Package: ' | cut -c 10- | sort -u | nl

8voto

beatgammit Points 329

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

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

Comme indiqué, le Gestionnaire de paquets Synaptic vous permet de rechercher par "origine". Ce n'est pas programmé, mais cela devrait vous donner ce que vous cherchez.

4voto

Vlad Didenko Points 111

Juste pour le plaisir ou si vous ne faites pas confiance aux caches, vous pouvez interroger les packages déclarés d'une source depuis, eh bien, la source. Les dépôts sont principalement des sites Web, soit en HTTP, soit en FTP.

Votre système a des URL source, que vous pouvez interroger pour des architectures spécifiques et des paramètres binaire/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 dépôt stable, que j'ai configuré, commencez par trouver l'URL :

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

Ensuite, récupérez l'emplacement de la liste pour l'architecture qui vous intéresse. Notez que l'URL est formée en suivant le schéma /dists//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 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 selon vos préférences. Supprimez le paramètre -s (silencieux) de curl pour voir les diagnostics si nécessaire.

... ou utilisez un Gestionnaire de paquets Synaptic.

0 votes

Voici un excellent récapitulatif sur l'architecture du dépôt, très utile lorsque vous essayez d'examiner un dépôt à partir d'un système non debian. Merci!

3voto

luksi1 Points 31

Ancien fil, mais j'ai pensé que cela pourrait aider. Utilisez awk, sort et uniq pour saisir uniquement les packages et ignorer les sommes de contrôle du dépôt des packages.

grep ^Package /var/lib/apt/lists/* | awk '{print $2}' | sort | uniq

0 votes

awk '/^Package: / {print $2}' /var/lib/apt/lists/PACKAGE_REPO | sort -u devrait faire la même chose

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X