Finden Sie heraus, welche Pakete aus einem Repository installiert sind

15

Ich versuche mithilfe von Terminalbefehlen herauszufinden, welche Pakete ich aus einem Repository installiert habe.

Ich habe irgendwo einen Beitrag gefunden, der besagt, dass ich ihn verwenden könnte aptitude search "?origin (<repository>) ?installed", aber ich konnte ihn nicht zum Laufen bringen. Ich habe versucht, nach Paketen zu suchen, die von ppa: ubuntu-wine / ppa stammen, und habe nichts damit zu tun:

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"

Es wäre schön, wenn ich etwas bekommen könnte, das mit PPAs funktioniert.

Enkouyami
quelle

Antworten:

12

In Klammern sollten Sie nur den Namen des Repositorys verwenden, nicht den URI oder etwas anderes. Zum Beispiel in Ihrem Fall:

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

Führen apt-cache policySie die Repositorys und deren Namen (auch bekannt als origin o) aus:

$ 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

Da es sich bei der Suchzeichenfolge um ein Regex-Muster handelt, das an einer beliebigen Stelle in der Zeichenfolge übereinstimmt, können Sie eine praktische Teilzeichenfolge wie ubuntu-wineoder sogar nur verwenden wine.

Siehe auch: Wie kann ich eine Liste aller Repositorys und PPAs über die Befehlszeile in ein Installationsskript übertragen?

Radu Rădeanu
quelle
1
Danke, das hat den Befehl zum Laufen gebracht und mir das gebracht, wonach ich gesucht habe.
Enkouyami
Dies listete keine Pakete für mich auf: aptitude search "?origin (multiverse) ?installed"- sollte es nicht? ("Multiversum" ist aktiviert)
Volker Siegel
@VolkerSiegel nein, aber aptitude search "?section (multiverse) ?installed"stattdessen verwenden.
jarno
5

Hier ist ein Bash-Skript, das ich geschrieben habe, um Pakete anzuzeigen, die von verschiedenen Ursprüngen außer Ubuntu installiert wurden. Es wird ein allgemeines dpkg -lAusgabeformat verwendet. Es funktioniert schneller als aptitudeLösungen.

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

Beachten Sie, dass möglicherweise auch Pakete installiert sind, für die kein solcher Ursprung verfügbar ist. Weitere Informationen finden Sie hier.

jarno
quelle
1

Über die Kommandozeile Wenn Sie Mittel tun möchten

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

Zum Beispiel: Alle es gibt Pakete von 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:~$ 

Kredit geht hier

rɑːdʒɑ
quelle
Ich habe diesen Fehler erhalten: bash: awk: Keine solche Datei oder Verzeichnis
Enkouyami
@ Enkouyami, was ist das ls von / var / lib / apt / lists /
rɑːdʒɑ
Hier ist ein Link zu dem, was ich habe pastebin.com/AmiH9E9n
Enkouyami
@ Enkouyami oops sorry, ich meine den Befehl, den Sie eingegeben haben
rɑːdʒɑ
1
@ Enkouyami Ok, hier geht es nicht um Befehl, Platzierung. tun wie awk '$1 == "Package:" { if (a[$2]++ == 0) print $2; }' /var/lib/apt/lists/*haguichi*webupd8team*Packages
rɑːdʒɑ
1

Dann können Sie den Y-PPA-Manager verwenden. Öffnen Sie Ihr Terminal und geben Sie Folgendes ein:

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

Öffnen Sie dann Ihren Unity-Bindestrich, suchen Sie mit Y -PPA und öffnen Sie das Symbol.

Geben Sie hier die Bildbeschreibung ein

Klicken Sie auf PPAs verwalten (siehe Abbildung) und wählen Sie dann eine PPA aus. Daraufhin werden die Details der PPA und ihrer Pakete angezeigt.

rɑːdʒɑ
quelle
Können Sie einige Anweisungen zur Verwendung des Y-PPA-Managers geben?
Seth
@ Seth mein Freund. erledigt.
rɑːdʒɑ
Ich suchte nach einer Befehlszeilenlösung.
Enkouyami
Diese Lösung ist weder eine Befehlszeile noch beantwortet sie die Hauptfrage: Wie werden Pakete aufgelistet, die von einem bestimmten Repo installiert wurden? Es werden nur ALLE Pakete angezeigt, die von einem PPA verfügbar sind.
Viacheslav Rodionov
1

Origin ist keine URL des Repositorys. Um den Ursprung des Repositorys zu finden, suchen Sie nach einer Datei, /var/lib/apt/lists/die mit Release endet.

Beispielsweise

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

Wird zeigen:

Origin: Dropbox.com

Also aptitude search "?origin(dropbox.com) ?installed"zeige mir das installierte Paket aus dem Dropbox-Repository.

Sorgel
quelle
Das habe ich nicht gesucht.
Enkouyami
Möglicherweise müssen Sie einige Zeichen im Ursprungsnamen maskieren, wenn sie im regulären Ausdruck etwas Besonderes sind.
jarno