Saya terus mendapat jawaban seperti:
yum list installed | grep bind
atau
rpm -qa | grep bind
Tapi itu tidak akurat karena saya mendapatkan daftar beberapa paket bind lainnya seperti ini:
bind-utils-9.8.2-0.17.rc1.el6_4.5.x86_64
rpcbind-0.2.0-11.el6.x86_64
bind-libs-9.8.2-0.17.rc1.el6_4.5.x86_64
samba-winbind-3.6.9-151.el6.x86_64
samba-winbind-clients-3.6.9-151.el6.x86_64
ypbind-1.20.4-30.el6.x86_64
Bukan itu yang saya inginkan. Sebagai gantinya saya ingin memeriksa secara akurat apakah paket bind core telah diinstal. Misalnya.bind.x86_64 32:9.8.2-0.17.rc1.el6_4.6
Saya berharap untuk sesuatu seperti:
yum check installed bind
Tapi semoga seseorang bisa menjelaskan.
yum
rpm
package-management
checksum
sumber
sumber
Error: No matching Packages to list
dan$?
mengembalikan 1, dan ketika saya mencobayum list installed bind-libs
,$?
mengembalikan 0. Yang seharusnya sejauh ini benar. Bisakah saya menyimpulkan dengan aman perintah Anda secara akurat menentukan paket diinstal? Saya memang mencari tahurpm -q bind
sekarang. Apakah itu sesuai dengan perintah Anda juga?yum list installed bind*
yum -C list installed bind
menghindari jaringan. Ini membuat semua plugin tetap aktif (untuk berjaga-jaga jika Anda memiliki sesuatu yang eksotis yang memengaruhi pencarian di yumdb) dan juga memberi tahu Anda repo tempat paket itu diinstalAda cara yang lebih mudah untuk mengeluarkan kueri ini:
rpm -qa | grep bind
ataurpm -q bind
. Yang pertama adalah yang terbaik jika Anda tidak sepenuhnya yakin dengan nama paket.sumber
rpm -q $package
Saya percaya ini adalah yang tercepat dan solusi, karena melakukan apa pun denganyum
mungkin memaksa pembaruan cache (biasanya lambat).rpm
) harus menjadi jawaban yang diterima karena mengembalikan status keluar yang bersih dan tidak perlu memanggil ke sekelompok URL jauh sepertiyum
solusi.yum
danrpm
mengikuti perilaku yang sama dalam semua contoh yang dapat saya pikirkan (0 = diinstal, 1 = tidak diinstal / kesalahan) sehingga akan berguna untuk mengetahui apakah Anda melihat kode keluar yang berbeda. Silakan lihat respons saya di atas mengenai penggunaan cache untuk menghindari akses jaringanyum -C
untuk mencegah yum menghabiskan semua waktu ekstra menghubungi host jaringan. Terima kasih, saya sekarang melihat bagaimana yum dan rpm dapat digunakan secara bergantian di sini !!Parsing hasil dari perintah ini adalah jawaban yang paling lengkap. Anda harus mengetahui nama paket yang tepat.
sumber
bind
itu tersedia / paket yum yang valid alih-alih memberi tahu saya jika sudah diinstal?Liner terbaik yang saya buat untuk melakukan ini (yang bagus untuk digunakan dengan cepat dalam skrip) adalah:
Misalnya: jika saat ini saya telah
git
menginstal:Ini akan kembali
installed
Jika saya saat ini tidak telah
git
diinstal bahwa perintah sebelumnya yang sama akan kembali:base/7/x86_64
yang merupakan instalasi saat ini tersedia untukgit
sumber
yum list installed
. Dari sana Anda dapat menggunakangrep
perintah untuk mendapatkan jawaban yang lebih tepat untuk apa yang Anda cari. Juga jika Anda ingin memeriksa paket tertentu Anda dapat menambahkan bahwa untuk perintah Anda - Ex:php70w
.yum list installed php70w
akan mencantumkan info pada paket yang diinstal atau kembaliNo matching Packages to list
Gunakan kode Python untuk memeriksa apakah suatu paket diinstal dalam python menggunakan yum:
sumber
not in
?Jika hasilnya 0 (nol) paket diinstal
sumber
rpm -q bind
solusi yang ditunjukkan dalam jawaban John.yum -C ...
akan lebih cepat.