Trong Arch Linux, làm cách nào tôi có thể tìm ra gói nào sẽ cài đặt sẽ chứa tệp X?


92

Tôi đang tìm kiếm một gói cung cấp một nhị phân cụ thể, vì vậy tôi có thể cài đặt nó. Làm thế nào tôi có thể tìm kiếm để tìm ra những gói cung cấp nhị phân này? (lưu ý: Tôi biết có ít nhất một công cụ thực hiện việc này, nhưng tôi đã quên tên của nó.)


Ngoài ra, nhị phân mà tôi đang tìm kiếm là /usr/sbin/ipsetnếu ai đó muốn cho tôi biết gói nào cung cấp gói đó mặc dù họ không biết câu trả lời cho câu hỏi.
xenoterracide

Câu trả lời của Gilles là đúng. Về ipset, tôi chỉ có thể tìm thấy nó trong AUR aur.archlinux.org/packages.php?ID=16553
jasonwryan

Câu trả lời:


118

Kể từ pacman 5.0, có tùy chọn tích hợp để tìm kiếm cơ sở dữ liệu với -Ftùy chọn. Đầu tiên cập nhật cơ sở dữ liệu:

sudo pacman -Fy

Sau đó, bạn có thể xem những gói chứa $filenamevới

pacman -Fs $filename

hoặc là

pacman -Fos $path

để tìm kiếm một con đường hoàn chỉnh.

Vì bạn biết rằng bạn đang tìm kiếm một thứ tương đương apt-file, bạn có thể đã tìm kiếm nó trong Pacman Rosetta .

Ngoài ra, bạn có thể sử dụng pkgfile . Cài đặt nó với pacman -S pkgfile, sau đó chạy

sudo pkgfile -u

để cập nhật cơ sở dữ liệu. Để xem gói nào chứa $filename, hãy chạy

pkgfile $filename

1
Cảm ơn đá Rosetta! Tôi sẽ sử dụng nó cho các bản phát hành vòng / phút cũng như cho pacman.
jpaugh

3
Điều đáng chú ý là pacman -Fstìm kiếm theo tên cơ sở, nếu bạn muốn tìm kiếm toàn bộ đường dẫn sử dụng pacman -Fos. Ví dụ: pacman -Fs /usr/bin/mount.cifskhông trả về gì cả, trong đó pacman -Fs mount.cifstrả về chính xác cifs-utils như vậypacman -Fos /usr/bin/mount.cifs
Dev

27

cách google:

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

và trong trường hợp là trong AUR thay vì gói chính thức:

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

Không xấu cả.
ychaouche

Mẹo tuyệt vời, điều này dường như mang lại kết quả tốt. Tôi đã tạo một "công cụ tìm kiếm" trong Chrome bằng URL này : https://www.google.com/search?q=site%3Awww.archlinux.org%2Fpackages%2F+%s.
Borek Bernard

22

Từ ArchWiki :

$ pacman -Qo df

Điều này sẽ mang lại gói sở hữu của chương trình df(tại thời điểm viết, đây là coreutils).

-Qo chỉ hoạt động trên các gói cài đặt và chương trình của họ.

Bạn có thể thấy nhiều đối số hơn trong truy vấn cơ sở dữ liệu gói .


4
Điều đó chỉ cho bạn biết gói nào sở hữu một tệp, nó sẽ không cho bạn biết những gì bạn cần cài đặt để có được nó.
David C. Giám mục

@ DavidC.Bishop Đó không phải là điều tương tự?
Victor

6
@Victor Không, gói phải được cài đặt trên hệ thống để truy vấn nó.
David C. Giám mục

@ DavidC.Bishop Ah tôi hiểu, bạn có nghĩa là " gói cài đặt sở hữu một con ruồi". Cảm ơn!
Victor

1
Vui lòng chỉnh sửa bài viết của bạn để phản ánh những gì đã được thảo luận trong các ý kiến.
Pompei2
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.