Sebagai contoh, saya mencari mod_files.sh
file yang mungkin akan datang dengan php-devel
paket. Saya kira itu yum
akan menginstalmod_files.sh
file dengan php-devel x86_64 5.1.6-23.2.el5_3
paket, tetapi file tersebut tampaknya tidak diinstal pada sistem file saya.
Bagaimana cara mengetahui paket mana yang menginstal file tertentu? Saya mencari di mana saya belum tentu mengunduh paket secara lokal yang mungkin menyertakan file yang saya cari.
Saya menggunakan CentOS 5.
rpm
, Anda harus menggunakannyayum
.Jawaban:
Ini adalah pertanyaan lama, tetapi jawaban saat ini salah :)
Gunakan yum whatprovides , dengan jalur absolut ke file yang Anda inginkan (yang mungkin wildcarded). Sebagai contoh:
Kembali
Anda dapat memilih output dan kecepatan
repoquery
alat, tersedia dalamyum-utils
paket.repoquery
dapat melakukan pertanyaan lain seperti daftar isi paket, dependensi, dependensi terbalik, dll.sumber
Untuk mengetahui paket yang memiliki (atau menyediakan) file yang sudah diinstal:
sumber
rpm -qf <filename>
paling cocok untuk menentukan paket mana yang menyediakan aplikasi yang terinstal (karena mungkin berbeda dari apa yang ada dalam cache repositori yum saat ini), danyum whatprovides <filename>
paling cocok untuk menentukan paket mana yang menyediakan paket yang belum diinstal aplikasi. Masing-masing memiliki tujuan masing-masing.yum whatprovides ...
hanya membutuhkan root jika aplikasi tersebut adalah paket root (yaitu ia berada di/sbin
) Namun,rpm -qf ...
juga membutuhkan root untuk membaca rpms dari/sbin
. Oleh karena itu, saya mengusulkan bahwa persyaratan root secara fungsional setara untuk kedua metode.Jawaban paling populer adalah tidak lengkap:
Karena pencarian ini umumnya hanya dilakukan untuk file dari paket yang diinstal, yum apa yang disediakan dibuat sangat cepat dengan menonaktifkan semua repo eksternal (repo "terpasang" implisit tidak dapat dinonaktifkan).
sumber
--disablerepo=*
Anda pergi ke http://www.rpmfind.net dan mencari file tersebut.
Anda akan mendapatkan hasil untuk banyak distro dan versi yang berbeda, tetapi kemungkinan besar Fedora dan / atau CentOS akan muncul juga dan Anda akan tahu nama paket yang akan diinstal dengan yum
sumber
Yah menemukan paket ketika Anda terhubung ke internet (repositori) mudah namun ketika Anda hanya memiliki akses ke paket RPM di dalam Redhat atau Centos DVD (ini sering terjadi pada saya ketika saya harus memulihkan server dan saya membutuhkan aplikasi) Saya sarankan menggunakan perintah di bawah ini yang sepenuhnya independen dari internet dan repositori. (Andai Anda memiliki banyak paket yang tidak diinstal dalam DVD). Katakanlah Anda telah menginstal folder Paket di ~ / cent_os_dvd dan Anda mencari paket yang menyediakan "semanage" maka Anda dapat menjalankan:
sumber
Hanya menggunakan utilitas rpm, ini harus bekerja di OS yang memiliki rpm:
Ref. https://www.thegeekdiary.com/how-to-find-which-rpm-package-provides-a-specific-file-or-library-in-rhel-centos/
sumber
Anda dapat melakukan ini sama di sini tetapi dengan paket Anda. Dalam kasus saya, itu
lsb_release
Lari:
yum whatprovides lsb_release
Tanggapan:
Jalankan untuk menginstal:
yum install redhat-lsb-core
Nama paket HARUS tanpa nomor dan tipe sistem sehingga pembuat paket yum dapat memilih yang terbaik untuknya.
sumber