Di Arch Linux, bagaimana saya bisa mengetahui paket mana yang akan diinstal yang berisi file X?

92

Saya mencari paket yang menyediakan biner tertentu, jadi saya bisa menginstalnya. bagaimana saya bisa mencari tahu paket apa yang menyediakan biner ini? (catatan: Saya tahu setidaknya ada satu alat yang melakukan ini, tetapi saya lupa namanya.)

xenoterracide
sumber
Juga biner yang saya cari adalah /usr/sbin/ipsetjika seseorang ingin memberi tahu saya tentang paket apa yang menyediakannya meskipun mereka tidak tahu jawaban atas pertanyaan itu.
xenoterracide
Jawaban Gilles adalah yang benar. Mengenai ipset, saya hanya dapat menemukannya di AUR aur.archlinux.org/packages.php?ID=16553
jasonwryan

Jawaban:

118

Sejak pacman 5.0, ada fungsi bawaan untuk mencari basis data dengan -Fopsi. Pertama perbarui database:

sudo pacman -Fy

Kemudian Anda dapat melihat paket berisi $filenamedengan

pacman -Fs $filename

atau

pacman -Fos $path

untuk mencari jalur lengkap.

Karena Anda tahu Anda mencari yang setara apt-file, Anda bisa mencarinya di Pacman Rosetta .

Atau, Anda dapat menggunakan pkgfile . Instal dengan pacman -S pkgfile, lalu jalankan

sudo pkgfile -u

untuk memperbarui basis data. Untuk melihat paket apa yang berisi $filename, jalankan

pkgfile $filename
Gilles
sumber
1
Terima kasih untuk batu Rosetta! Saya akan menggunakannya untuk distro rpm dan juga untuk pacman.
jpaugh
3
Perlu dicatat bahwa pacman -Fspencarian menggunakan nama samaran, jika Anda ingin mencari path lengkap gunakan pacman -Fos. Contoh: pacman -Fs /usr/bin/mount.cifstidak mengembalikan apa pun, di mana dengan pacman -Fs mount.cifsbenar mengembalikan cifs-utils seperti halnyapacman -Fos /usr/bin/mount.cifs
Dev
27

cara google:

site:www.archlinux.org/packages/ bin/filename

dan seandainya itu dalam AUR dan bukan paket resmi:

site:aur.archlinux.org/packages/ bin/filename
eshizhan
sumber
Tidak buruk sama sekali.
ychaouche
Tip yang bagus, ini sepertinya memberikan hasil yang baik. Saya membuat sebuah "mesin pencari" di Chrome dengan URL ini: https://www.google.com/search?q=site%3Awww.archlinux.org%2Fpackages%2F+%s.
Borek Bernard
22

Dari ArchWiki :

$ pacman -Qo df

Ini akan menghasilkan paket kepemilikan program df(pada saat penulisan, ini coreutils).

-Qo hanya beroperasi pada paket yang diinstal dan programnya.

Anda bisa melihat lebih banyak argumen dalam query database paket .

amiad
sumber
4
Itu hanya memberi tahu Anda paket apa yang memiliki file, itu tidak akan memberi tahu Anda apa yang perlu Anda instal untuk mendapatkannya.
David C. Bishop
@ DavidC.Bishop Apakah itu bukan hal yang sama?
Victor
6
@ Viktor Tidak, paket harus diinstal pada sistem untuk dapat menanyakannya.
David C. Bishop
@ DavidC.Bishop Ah saya mengerti, maksud Anda " paket yang terinstal memiliki fle". Terima kasih!
Victor
1
Harap edit posting Anda untuk mencerminkan apa yang dibahas dalam komentar.
Pompei2