Rechercher les packages installés à partir d'un référentiel

15

J'essaie de trouver les packages que j'ai installés à partir d'un référentiel à l'aide de commandes de terminal.

J'ai trouvé un article quelque part disant que je pouvais l'utiliser aptitude search "?origin (<repository>) ?installed", mais je ne pouvais pas le faire fonctionner. J'ai essayé de rechercher un paquet provenant de ppa: ubuntu-wine / ppa et je n'ai rien obtenu avec ceux-ci:

aptitude search "?origin (http://ppa.launchpad.net/ubuntu-wine/ppa/ubuntu/) ?installed"
aptitude search "?origin (http://ppa.launchpad.net/ubuntu-wine/ppa/ubuntu/) ?installed"
aptitude search "?origin (http://ppa.launchpad.net/ubuntu-wine/ppa/ubuntu/ raring/main) ?installed"

Ce serait bien si je pouvais obtenir quelque chose qui fonctionne avec les AAE.

Enkouyami
la source

Réponses:

12

Entre parenthèses, vous devez utiliser uniquement le nom du référentiel, pas l'URI ou autre chose. Par exemple dans votre cas:

aptitude search "?origin (ubuntu-wine) ?installed"

Exécutez apt-cache policypour voir les référentiels et les noms (aka origine o) de ceux-ci:

$ apt-cache policy | grep wine
 500 http://ppa.launchpad.net/ubuntu-wine/ppa/ubuntu xenial/main i386 Packages
     release v=16.04,o=LP-PPA-ubuntu-wine,a=xenial,n=xenial,l=Wine Team PPA,c=main,b=i386
 500 http://ppa.launchpad.net/ubuntu-wine/ppa/ubuntu xenial/main amd64 Packages
     release v=16.04,o=LP-PPA-ubuntu-wine,a=xenial,n=xenial,l=Wine Team PPA,c=main,b=amd64

Étant donné que la chaîne de recherche est un modèle d'expression régulière correspondant n'importe où dans la chaîne, vous pouvez utiliser une sous-chaîne pratique comme ubuntu-wine, ou même juste wine.

Voir aussi: Comment puis-je obtenir une liste de tous les référentiels et PPA de la ligne de commande dans un script d'installation?

Radu Rădeanu
la source
1
Merci, cela a fait fonctionner la commande et cela m'a donné ce que je cherchais.
Enkouyami
Cela n'a pas répertorié les packages pour moi: aptitude search "?origin (multiverse) ?installed"- n'est-ce pas? ("multivers" est activé)
Volker Siegel
@VolkerSiegel non, mais utilisez aptitude search "?section (multiverse) ?installed"plutôt.
jarno
5

Voici un script Bash que j'ai écrit pour afficher les packages installés de différentes origines à l'exception d'Ubuntu. Il utilise un dpkg -lformat de sortie commun . Cela fonctionne plus rapidement que les aptitudesolutions.

#!/bin/bash

# Print packages installed from different origins.
# Exclude standard Ubuntu repositories.

grep -H '^Origin:' /var/lib/apt/lists/*Release | grep -v ' Ubuntu$' | sort -u \
| while read -r line; do
    origin=${line#* }    
    echo $origin:

    list=${line%%:*}
    sed -rn 's/^Package: (.*)$/\1/p' ${list%_*Release}*Packages | sort -u \
    | xargs dpkg -l 2>/dev/null | grep '^.i '
    echo
 done

Notez qu'il peut également y avoir des packages installés qui n'ont pas une telle origine disponible, voyez ceci pour les trouver.

jarno
la source
1

Depuis la ligne de commande Si vous aimez faire, cela signifie

awk '$1 == "Package:" { if (a[$2]++ == 0) print $2; }' /var/lib/apt/lists/*PPA-FIRST-PART*PPA-SECOND-PART*Packages

par exemple: Tout ce qu'il y a de paquets de noobslab

 jai@frank-Jai:~$ awk '$1 == "Package:" { if (a[$2]++ == 0) print $2; }' /var/lib/apt/lists/*noobslab*Packages

python-logilab-common
synapse
ubuntuone-client
python-ubuntuone-storageprotocol
ubuntuone-client-gnome
python-ubuntuone-client
lives
libweed0
libweed-dev
lives-data
converseen
minitube
libsyncdaemon-1.0-1
libsyncdaemon-1.0-dev
ubuntu-sso-client
python-ubuntuone-devtools
ubuntuone-dev-tools
ubuntuone-control-panel
python-ubuntuone-control-panel
synapse-dbg
gir1.2-syncdaemon-1.0
libweed-dbg
lives-dbg
umplayer
umplayer-translations
libgranite-dev
deepin-software-center
ubuntuone-control-panel-qt
python-dirspec
rhythmbox-ubuntuone
python-ubuntu-sso-client
ubuntu-sso-client-qt
python-ubuntu-sso-client.tests
granite-demo
ubuntuone-client-proxy
python-oauthlib
slidewall
python3-dirspec
python3-oauthlib
ubuntuone-client-data
libgranite1
libgranite1-dbg
gir1.2-granite-1.0
libgranite-common
curlew
fbmessenger
open-as-administrator
indicator-synapse
indicator-synapse-dbg
wallpaper-manager
awoken-icon-theme
malys-uniblack
malys-uniblue
malys-ex
acyl-icons
nitrux-icons
piratunbu-icons
azenis-green-icons
nouvegnome-color
nouvegnome-gray
hi-lights-icons
matrilineare
zoncolor-icons
royal-linux-icons
elementary-icons
myhumanity
myelementary
glass-icons
osx-nostalgie
sky-blue-cinnamon
sky-blue-gnome
sky-blue-unity
wine-blue-remix
lubuntubox
windows7-icons
appleart-icons
magical-lights-icons
colored-plastic-icons
numix-utouch-icon-theme
ubudao-style
artnet-icons
high-delight-icons
snow-sabre-icons
trevilla-icons
aery-icons
ambiance-blue
zukitwo
gnomishbeige-theme
salience-theme
zukiwi
gnomishgray
delorean-dark
smoothly-theme
ambiance-ds-blue
ambiance-lime
gnomishdark
zukitwo-cupertino-gs
mediterranean-theme
elementaryish
borderline
boje
wow-2
zoncolor-themes
omg-suite
simplex
leopard-steel
dorian-theme
daylight
adwaita-elements
uncomplicated
trevilla-jmhzonedark
trevilla-dark
trevilla-white
trevilla-whiteblue
trevilla-whiteorange
trevilla-white2
ambiancep-set
ambiance-crunchy
trevilla-gray
siva-series-gtk
cobibird
elegant-brit
mac-ithemes-noobslab
mac-icons-noobslab
ubuntu-touch-themes
windows8-theme
bigfootblue-cinnamon
windows8-cinnamon
eliza1-cinnamon
bigfootred-cinnamon
plus1-theme
futura
blo-theme
darkair-theme
plane-gtk3
deepin-gtk-theme
nokto-theme
numix-theme
neptune-theme
trevilla-themes
jai@frank-Jai:~$ 

Le crédit va ici

rɑːdʒɑ
la source
J'ai eu cette erreur: bash: awk: Aucun fichier ou répertoire de ce type
Enkouyami
@Enkouyami quel est le ls de / var / lib / apt / lists /
rɑːdʒɑ
Voici un lien vers ce que j'ai obtenu pastebin.com/AmiH9E9n
Enkouyami
@Enkouyami oups désolé, je veux dire la commande ce que vous avez entré
rɑːdʒɑ
1
@Enkouyami Ok cela ne concerne pas la commande, le placement. faire comme awk '$1 == "Package:" { if (a[$2]++ == 0) print $2; }' /var/lib/apt/lists/*haguichi*webupd8team*Packages
rɑːdʒɑ
1

Ensuite, vous pouvez utiliser le gestionnaire Y-PPA. Ouvrez votre terminal et saisissez:

sudo add-apt-repository ppa:webupd8team/y-ppa-manager
sudo apt-get update
sudo apt-get install y-ppa-manager

Ouvrez ensuite votre tableau de bord Unity et effectuez une recherche avec Y -PPA, puis ouvrez l'icône.

entrez la description de l'image ici

Cliquez sur gérer les PPA comme indiqué dans l'image, puis sélectionnez un PPA et il vous donnera les détails du PPA et de ses packages.

rɑːdʒɑ
la source
Pourriez-vous fournir des instructions pour l'utilisation du gestionnaire Y-PPA?
Seth
@Seth mon ami. terminé.
rɑːdʒɑ
Je cherchais une solution en ligne de commande.
Enkouyami
Cette solution n'est ni en ligne de commande ni ne répond à la question principale - comment lister les packages installés à partir d'un référentiel donné? Il ne montre que TOUS les packages disponibles à partir d'un PPA.
Viacheslav Rodionov
1

L'origine n'est pas l'URL du référentiel. Pour trouver l'origine du référentiel, recherchez le fichier se /var/lib/apt/lists/terminant par Release.

Par exemple

grep "Origin" /var/lib/apt/lists/linux.dropbox.com_debian_dists_wheezy_Release

Montrera:

Origin: Dropbox.com

Alors aptitude search "?origin(dropbox.com) ?installed", montrez-moi le package installé à partir du référentiel dropbox.

sorgel
la source
Ce n'est pas ce que je cherchais.
Enkouyami
Vous devrez peut-être échapper certains caractères dans le nom d'origine, s'ils sont spéciaux dans l'expression régulière.
jarno