Setelah saya menginstal paket dengan yum (dengan beberapa repositori yang dikonfigurasi), bagaimana saya bisa menemukan dari repositori mana ia telah diinstal?
Jika saya menjalankan yum info package-name
(atau yum list package-name
), saya hanya dapat melihat bahwa paket tersebut "diinstal".
rpm -qa|grep NAME
maka Anda dapat melakukanyum list installed|grep NAME
untuk menemukan apa repo dari rpm .Jawaban:
Dengan yum-utils terinstal, repoquery akan memberikan informasi yang Anda cari (di sini 'epel' menjadi repositori).
sumber
yum info package_name
, sepertinya tidak menanyakan repositori dengan urutan yang sama dengan yum.yum info package_name
mengembalikan lebih banyak hasil daripada repoquery. Inilah mengapa pertukaran stack tidak harus mengunci suara.repoquery -i $pkg
memberikan repo dari mana a$pkg
tersedia, bukan repo dari mana$pkg
diinstal. Saya melakukan perintah itu danrpm -qi $pkg
dan mendapat nomor versi yang berbeda.rpm
menghasilkan nomor versi lebih awal dari padarepoquery
.--use-mirror
.). Saya pikir tidak mungkin untuk selalu mendapatkan jawaban yang benar.Apa versi yum?
Pada versi saat ini jika paket yang diinstal adalah versi yang sama dengan yang terbaru tersedia maka repo itu diinstal dari ditampilkan.
Jika ada paket yang lebih baru tersedia, maka itu akan ditampilkan secara terpisah, dengan versi baru menunjukkan dari repo itu tersedia.
sumber
Datang terlambat, tetapi (setidaknya pada Fedora 15) orang dapat menggunakan yumdb untuk pertanyaan serupa:
Dan apa yang sebenarnya saya butuhkan untuk mendaftar paket dari repo yang diberikan:
sumber
Jika semuanya gagal, Anda dapat memeriksa yumdb secara manual. Itu terletak di
/var/lib/yum/yumdb
dan berisi informasi terperinci tentang setiap paket yang diinstal. Anda akan sangat tertarikfrom_repo
. Misalnya, untukbind-utils
paket:Untuk mendapatkan informasi yang Anda inginkan:
Versi yang lebih baru akan memberikan lebih banyak data; misalnya dalam EL 7 mirror dan URL yang tepat dari mana paket itu diunduh disimpan di sini.
sumber
for i in /var/lib/yum/yumdb/b/*bind-utils*/*; do echo $i: `cat $i` | grep -oP 'from_repo:\ \K.*'; done
yang dalam contoh di atas mengembalikan:updates
- jauh lebih mudah dibaca!grep
apa - apa di sini, dan Anda bahkan dapat membatalkannya. Yang sangat sederhanacat /var/lib/yum/yumdb/b/*bind-utils*/from_repo
adalah semua yang Anda butuhkan.Akan memberi tahu Anda vendor dan pembuat paket
sumber
Untuk melihat apa yang diinstal dari repo epel: (Harus bekerja di bawah Centos 5.5) perhatikan, jika Anda tidak memiliki repo bernama epel, itu akan memuntahkan semua hal yang diinstal.
repoquery --repoid = epel -a | xargs daftar yum diinstal
sumber
Jika paket diinstal baru-baru ini, Anda dapat melihat di / var / cache / yum.
Di dalam direktori itu, ada direktori untuk setiap repo, dan dalam direktori paket. Jadi, Anda akan melakukan sesuatu seperti:
Namun, cache harus diaktifkan di file /etc/yum.conf Anda:
Perhatikan bahwa a
yum clean [packages|all]
akan menghapus direktori cache.Jika direktori cache kosong, ada cara alternatif. Informasi yang dibaca oleh
yum info [package]
berasal dari /var/cache/yum/[repo[/primary.xml.gzAnda dapat melihat melalui file dengan memasukkan:
Namun, pada mesin di mana
yum info [package]
tidak menampilkan "Dari repo:", seperti yang ditunjukkan oleh 'theotherreceive', itu karena tidak ada di file primary.xml, jadi tidak akan ada cara untuk mengambil informasi itu. Oleh karena itu, jika paket tersebut dalam dua atau lebih file primary.xml, Anda harus menentukan prioritas repo pada sistem Anda.sumber
Berdasarkan dan dijawab oleh Swoogan
Pada RedHat dan CentOS, seseorang dapat melakukannya
Hasilnya akan terlihat seperti
Di mana repository_name adalah repositori tempat paket Anda dapat ditemukan, dan itu mungkin diinstal dari yang pertama dalam daftar (lihat yum repolist)
sumber
Apakah informasi itu ditangkap di mana saja? Paket tidak memiliki informasi itu, dan yum tidak peduli setelah menemukan paket. Anda mungkin bisa menyatukannya dengan mencari tahu repo apa yang memiliki paket dan kemudian menentukan mana yang memiliki prioritas.
sumber
Bukan solusi yang hebat, tetapi saya menemukan bahwa daftar yum yang tersedia akan menunjukkan kepada Anda di mana versi terbaru dari setiap paket tersedia, misalnya:
daftar yum tersedia | grep gstreamer
bluez-gstreamer.i386 4.30-2.fc10 memperbarui
gstreamer.i386 0.10.21-2.fc10 fedora
gstreamer-devel.i386 0.10.21-2.fc10 fedora
gstreamer-devel.x86_64 0.10.21-2.fc10 fedora
gstreamer- plugins-bad-devel.i386 0.10.9-1.fc10 rpm
gstreamer bebas -plugins-bad-devel.x86_64 0.10.9-1.fc10 rpmfusion-free
Jadi Anda bisa melakukan daftar yum yang tersedia di paket Anda, lalu membandingkan versi yang diinstal menggunakan daftar yum yang diinstal, dan memiliki ide yang bagus tentang repo mana yang berasal dari jika versi cocok.
sumber
Anda dapat menambahkan bendera verbose ke "info yum":
Repositori instalasi akan berada di bawah output "Dari repo".
sumber
Jadi saya tahu ini adalah pertanyaan yang agak lama - tetapi muncul di pencarian google untuk apa yang saya cari.
Ada juga metode untuk mendapatkan daftar unik dari repo yang digunakan:
Ini akan mencantumkan repositori yang memiliki paket yang diinstal.
sumber
Pendekatan paling sederhana dan paling mudah tanpa menginstal alat tambahan, menangkap atau mengeluarkan informasi asing adalah hanya:
Kolom ketiga akan memberikan ID dari repositori tempat paket itu diinstal.
Ini disebutkan dalam komentar pada pertanyaan asli menggunakan grep, tapi itu tidak perlu. Anda bisa langsung memberikan nama paket langsung
yum
ke filter.sumber
Tidak satu pun dari perintah di atas bekerja untuk saya. Inilah yang harus saya lakukan.
Referensi yang bagus ada di sini.
https://access.redhat.com/sites/default/files/attachments/rh_yum_cheatsheet_1214_jcs_print-1.pdf
sumber
Cara termudah adalah ini:
Lebih banyak tips dan trik tersedia di sini: http://wiki.centos.org/TipsAndTricks/YumAndRPM
sumber