Trova quali pacchetti sono installati da un repository


15

Sto cercando di trovare quali pacchetti ho installato da un repository usando i comandi del terminale.

Ho trovato un post da qualche parte che diceva che potevo usare aptitude search "?origin (<repository>) ?installed", ma non riuscivo a farlo funzionare. Ho provato a cercare un pacchetto che veniva da ppa: ubuntu-wine / ppa e non ho ottenuto nulla con questi:

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"

Sarebbe bello se potessi ottenere qualcosa che funzioni con i PPA.

Risposte:


12

Tra parentesi, è necessario utilizzare solo il nome del repository, non l'URI o qualcos'altro. Ad esempio nel tuo caso:

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

Corri apt-cache policyper vedere i repository e i nomi (aka origine, o) di quelli:

$ 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

Poiché la stringa di ricerca è un modello regex corrispondente in qualsiasi punto della stringa, puoi usare una sottostringa conveniente come ubuntu-wine, o anche solo wine.

Vedi anche: Come posso ottenere un elenco di tutti i repository e PPA dalla riga di comando in uno script di installazione?


1
Grazie, questo ha fatto funzionare il comando e mi ha dato quello che stavo cercando.
Enkouyami,

Questo non ha elencato i pacchetti per me: aptitude search "?origin (multiverse) ?installed"- non dovrebbe? ("Multiverso" è abilitato)
Volker Siegel,

@VolkerSiegel no, ma usa aptitude search "?section (multiverse) ?installed"invece.
jarno,

5

Ecco uno script Bash che ho scritto per visualizzare i pacchetti installati da origini diverse escluso Ubuntu. Utilizza un dpkg -lformato di output comune . Funziona più velocemente delle aptitudesoluzioni.

#!/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

Nota che potrebbero esserci anche pacchetti installati che non hanno tale origine disponibile, vedi questo per trovarli.


1

Dalla riga di comando Se ti piace fare significa

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

per esempio: tutti ci sono pacchetti da 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:~$ 

Il merito va qui


Ho ricevuto questo errore: bash: awk: nessun file o directory
simile

@Enkouyami che cos'è ls di / var / lib / apt / lists /
rɑːdʒɑ

Ecco un link a quello che ho ricevuto pastebin.com/AmiH9E9n
Enkouyami

@Enkouyami scusa, intendo il comando che cosa hai inserito
rɑːdʒɑ

1
@Enkouyami Ok questo non riguarda il comando, il posizionamento. fai come awk '$1 == "Package:" { if (a[$2]++ == 0) print $2; }' /var/lib/apt/lists/*haguichi*webupd8team*Packages
rɑːdʒɑ

1

Quindi è possibile utilizzare il gestore Y-PPA. Apri il tuo terminale e digita:

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

Quindi apri il trattino Unity e cerca con Y -PPA, quindi apri l'icona.

inserisci qui la descrizione dell'immagine

Fai clic su Gestisci PPA come mostrato nell'immagine, quindi seleziona un PPA e ti fornirà i dettagli del PPA e dei suoi pacchetti.


Potresti fornire alcune istruzioni per l'uso del gestore Y-PPA?
Seth,

@ Seth amico mio. fatto.
rʒɑdʒɑ

Stavo cercando una soluzione da riga di comando.
Enkouyami,

Questa soluzione non è né riga di comando né risponde alla domanda principale: come elencare i pacchetti installati da un determinato repository? Mostra solo TUTTI i pacchetti disponibili da un PPA.
Viacheslav Rodionov,

1

Origin non è l'URL del repository. Per trovare l'origine del repository, cerca il file che /var/lib/apt/lists/termina con Release.

Per esempio

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

Mostrerò:

Origin: Dropbox.com

Quindi aptitude search "?origin(dropbox.com) ?installed"mi mostrerà il pacchetto installato dal repository dropbox.


Questo non è quello che stavo cercando.
Enkouyami,

Potrebbe essere necessario sfuggire ad alcuni caratteri nel nome di origine, se sono speciali nell'espressione regolare.
jarno,

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.