Bagaimana saya bisa mendapatkan daftar semua paket RPM yang telah diinstal pada sistem saya dari repo tertentu (misalnya, "epel")?
44
yum list installed | grep @epel
dnf list installed | grep @epel
Pada RHEL6, seperti yang disarankan dalam jawaban stackoverflow ini , ada metode yang lebih menyeluruh untuk melakukan ini dengan
yumdb
:Repoid mengambil kartu liar.
Cetak cantik
Jika kita akan menipu dan menyalurkan output, maka kita dapat mencapai efek cetak-cantik juga. Ini salah satu yang digunakan
awk
Menggunakan
egrep
ataugrep -e
list_ALL_AVAILABLE_from_repo
Untuk mendaftar semua paket yang tersedia di repositori tertentu, lakukan:
sumber
repoquery -qa --repoid=REPONAME
repoquery -a --repoid=REPONAME
karena menurut-q
opsi halaman manual adalah untuk kompatibilitas rpmquery, tidak melakukan apa-apa.-qa
sebenarnya gagal. Saya tidak dapat meningkatkan komentar karena sebelumnya menghapus upvote :( Saya memperbarui jawaban untuk mencerminkan itu.Catatan
Perintah di atas menggunakan DNF untuk mendaftar paket yang diinstal dari
<repoid>
. Noterepo-pkgs
hanyalah alias darirepository-packages
.Dari
man
halaman:Bacaan lebih lanjut:
sumber
Output grepping yum adalah cara yang paling jelas:
Namun, Anda tidak dapat menampilkan properti paket tambahan dan sulit untuk menguraikan skrip. Alat
repoquery
dari paketyum-utils
adalah alat, tetapi tidak diinstal secara default.dan contoh yang lebih kompleks:
sumber
RHEL Server 7.5 (Maipo)
yum repo-pkgs <repoid> list installed
dapat digunakan untuk mengambil info yang sama denganyumdb search from_repo <repoid>
, tetapi dalam format yang berbeda.epel
Output sampel :sumber
Anda dapat memeriksa
Vendor
tajuk dari rpms yang diinstal.Contoh ini mencantumkan semua paket dari repositori VideoLAN :
Jelas, Anda perlu menentukan apakah
Vendor
header repositori Anda unik di antara repositori yang berbeda.sumber
Untuk orang-orang yang hanya ingin menemukan repositori yang hilang:
Ini akan mengembalikan semua repositori tempat Anda menginstal paket.
sumber