Temukan paket apa yang diinstal dari repositori


15

Saya mencoba mencari paket apa yang telah saya instal dari repositori menggunakan perintah terminal.

Saya menemukan posting di suatu tempat yang mengatakan saya bisa menggunakan aptitude search "?origin (<repository>) ?installed", tetapi saya tidak bisa membuatnya berfungsi. Saya mencoba mencari paket yang berasal dari ppa: ubuntu-wine / ppa dan tidak mendapatkan apa-apa dengan ini:

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"

Akan lebih baik jika saya bisa mendapatkan sesuatu yang berfungsi dengan PPA.

Jawaban:


12

Dalam tanda kurung, Anda harus menggunakan hanya nama repositori, bukan URI atau yang lainnya. Misalnya dalam kasus Anda:

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

Jalankan apt-cache policyuntuk melihat repositori dan nama-nama (alias asal, o) dari mereka:

$ 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

Karena string pencarian adalah pola regex yang cocok dengan string mana pun, Anda dapat menggunakan substring yang nyaman ubuntu-wine, atau bahkan adil wine.

Lihat juga: Bagaimana saya bisa mendapatkan daftar semua repositori dan PPA dari baris perintah ke dalam skrip instalasi?


1
Terima kasih, itu membuat perintah berfungsi dan saya mendapatkan apa yang saya cari.
Enkouyami

Ini tidak mencantumkan paket untuk saya: aptitude search "?origin (multiverse) ?installed"- bukan? ("multiverse" diaktifkan)
Volker Siegel

@ VolkerSiegel tidak, tetapi gunakan aptitude search "?section (multiverse) ?installed", sebagai gantinya.
jarno

5

Berikut ini adalah skrip Bash yang saya tulis untuk menampilkan paket yang diinstal dari asal yang berbeda tidak termasuk Ubuntu. Ini menggunakan dpkg -lformat output umum . Ini bekerja lebih cepat daripada aptitudesolusi.

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

Perhatikan bahwa mungkin juga ada paket yang diinstal yang tidak memiliki asal seperti itu, lihat ini untuk menemukannya.


1

Dari baris perintah Jika Anda ingin melakukan berarti

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

misalnya: Semua ada paket dari 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 di sini


Saya mendapat kesalahan ini: bash: awk: Tidak ada file atau direktori seperti itu
Enkouyami

@Enkouyami whats ls dari / var / lib / apt / daftar /
rɑːdʒɑ

Berikut tautan ke apa yang saya dapatkan dari pastebin.com/AmiH9E9n
Enkouyami

@Enkouyami oops maaf, maksudku perintah apa yang telah Anda masukkan
rɑːdʒɑ

1
@ Enkouyami Ok ini bukan tentang perintah, penempatan. do as awk '$1 == "Package:" { if (a[$2]++ == 0) print $2; }' /var/lib/apt/lists/*haguichi*webupd8team*Packages
rɑːdʒɑ

1

Kemudian Anda dapat menggunakan manajer Y-PPA. Buka terminal Anda dan ketik:

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

Kemudian buka dash Unity Anda dan cari dengan Y -PPA dan kemudian buka Ikon.

masukkan deskripsi gambar di sini

Klik pada kelola PPA seperti yang ditunjukkan pada gambar dan kemudian pilih satu PPA dan itu akan memberi Anda rincian PPA dan paket-paketnya.


Bisakah Anda memberikan beberapa instruksi untuk menggunakan manajer Y-PPA?
Seth

@Mengatakan teman saya. selesai
rɑːdʒɑ

Saya sedang mencari solusi baris perintah.
Enkouyami

Solusi ini bukan baris perintah atau menjawab pertanyaan utama - bagaimana mendaftar paket yang diinstal dari repo yang diberikan? Ini hanya menunjukkan SEMUA paket yang tersedia dari PPA.
Viacheslav Rodionov

1

Asal bukan URL repositori. Untuk menemukan Origin of repository, cari file yang /var/lib/apt/lists/diakhiri dengan Release.

Sebagai contoh

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

Akan menunjukkan:

Origin: Dropbox.com

Jadi aptitude search "?origin(dropbox.com) ?installed"akan menunjukkan kepada saya paket yang diinstal dari repositori dropbox.


Ini bukan yang saya cari.
Enkouyami

Anda mungkin perlu melarikan diri beberapa karakter dalam nama asal, jika mereka spesial dalam ekspresi reguler.
jarno

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.