Câu hỏi Tìm gói phần mềm nào thuộc về Ubuntu / Debian?


Tôi thường thấy mình thiếu một chương trình, trang người đàn ông, hoặc tập tin khác khi làm việc trên hệ thống Ubuntu 8.04 của tôi. Có cách nào đơn giản để tìm kiếm những gì gói chứa một tập tin nhất định (cho dù nó được cài đặt đã hay không)? Có thể một số tùy chọn tối nghĩa cho apt hoặc dpkg?


258
2017-07-22 19:06


gốc


Tương tự trên Ubuntu: askubuntu.com/questions/481/… - Ciro Santilli 新疆改造中心 六四事件 法轮功
dpkg -S /path/to/filenếu bạn đã cài đặt gói. - Zaz


Các câu trả lời:


apt-file search filename

hoặc là

apt-file search /path/to/file


Để cài đặt apt-file, sử dụng:

sudo apt-get install apt-file

Bạn sẽ cần phải cập nhật cơ sở dữ liệu của nó trước khi bạn có thể sử dụng nó:

sudo apt-file update

210
2017-07-22 19:08



FYI: apt-file dường như phụ thuộc vào Contents-amd64.gz được cung cấp bởi kho lưu trữ. Và không phải tất cả các bên thứ ba repos cung cấp tập tin này. - Jokester
Nó không làm việc cho tôi. Tôi cập nhật cơ sở dữ liệu nhưng nó không trả lại bất cứ điều gì. dpkg -S hoạt động như được mô tả bên dưới. - Northys


(Debian / Ubuntu) Khám phá gói phần mềm nào thuộc về:

dpkg -S /usr/bin/ls

'dpkg -S' vừa khớp với chuỗi bạn   cung cấp nó, vì vậy chỉ sử dụng 'ls' làm   đối số khớp với bất kỳ tệp nào từ bất kỳ   gói có 'ls' ở bất kỳ đâu trong   tên tệp. Vì vậy, thường thì đó là một ý tưởng hay   để sử dụng đường dẫn tuyệt đối. Bạn có thể thấy   trong ví dụ thứ hai là 12 nghìn   các tệp được biết là dpkg khớp với   chuỗi trần 'ls'.


350
2017-07-22 19:13



Đó là chỉ khi các tập tin đã được cài đặt - John T
Trái ngược với apt-file, điều này cũng tìm thấy các gói để một tập tin nếu nó đã được cài đặt bằng tay thông qua dpkg -i! - tanius
Nếu bạn nhận được dpkg-query: không tìm thấy mẫu phù hợp với đường dẫn  thử cái này: dpkg -S "$(readlink -fn "$(which rename)")". - Pablo Bianchi
Lạ lùng, điều này không hiệu quả với tôi: dpkg-query: no path found matching pattern /usr/bin/java, mặc dù có một tệp tại /usr/bin/java - nnyby


packages.debian.org là những gì tôi luôn sử dụng để hoàn thành nhiệm vụ này. Nó vượt trội so với apt-file vì nó cũng có thể tìm thấy các phần của tên tập tin. Nó cũng được liên kết đến danh sách các gói chính sẽ liệt kê các mô tả, lỗi, vv Tất cả trong tất cả các trang web tốt. Không phải là hữu ích từ dòng lệnh, nhưng vẫn còn khá hữu ích.

Đối với tốc độ, tôi đánh dấu url:

http://packages.debian.org/search?searchon=contents&keywords=%s&mode=filename&suite=unstable&arch=any

trong Firefox, và thêm "debfind" làm từ khóa (bấm vào "more" trong trình quản lý bookmark với nó hilighted), vì vậy tôi có thể chỉ cần gõ "debfind" và nó sẽ hoạt động. Bạn có thể thay đổi 'suite' từ không ổn định thành ổn định hoặc kiểm tra nếu bạn thích, đối với các phiên bản phân phối khác.


16
2017-07-22 20:07



Nó không hoạt động với repos tùy chỉnh mặc dù. - Ctrl-C
Lựa chọn kém liên quan đến tự động hóa. - Alexander Shcheblikin


Bạn cũng có thể sử dụng dlocate. Từ trang người đàn ông;

$ dlocate [ PATTERN ]
List all records where either the package name or the filename matches PATTERN.

11
2017-08-08 19:30



dlocate cũng là phương pháp yêu thích của tôi, rất đáng tin cậy. - Avio
@Avio dlocate không tìm thấy gói được cài đặt gần đây trừ khi bạn chạy sudo update-dlocatedb Đầu tiên. Lệnh này sẽ tự động chạy hàng ngày trong /etc/cron.daily/dlocate - jarno


Tôi tìm thấy Wajig ...

wajig whichpackage /path/to/file 

ví dụ.

wajig whichpackage /etc/apt/sources.list

Wajig là một dòng lệnh hoặc giao diện điều khiển tiện dụng, kết thúc tốt đẹp tất cả các apt-get, dpkg goodness mà bạn không bao giờ muốn học. .

Để cài đặt sử dụng wajig:

apt-get install wajig

Lệnh đó 'whichpackage' tự nó phụ thuộc vào apt-file

bạn vẫn sẽ cần phải cập nhật cơ sở dữ liệu của nó trước khi bạn có thể sử dụng nó: - Tôi chưa biết liệu wajig update có cập nhật apt-get hay không cũng cập nhật bộ nhớ cache của tập tin, nhưng tôi mong đợi nó có thể.

sudo wajig update

sudo apt-file update

(và Super Cow, Easter egss!!)


4
2018-01-14 02:40





Câu trả lời của Simmilar cho jamuraa cho Debian, bạn cũng có thể truy cập http://packages.ubuntu.com/ cho Ubuntu. Bạn sẽ phải cuộn xuống một chút để tìm "Tìm kiếm nội dung của gói" hộp tìm kiếm nơi bạn có thể nhập đường dẫn của tệp.


2
2017-10-28 10:40



Bây giờ nếu chỉ Raspbian cũng đã có một :) - XTL


Thử tìm kiếm tệp bằng http://www.kodkast.com/applications/find-which-package-file-belongs-to

Đây là một ứng dụng để tìm kiếm các tệp được chứa trong các gói rpms / linux khác nhau và rất hữu ích khi bạn thậm chí không cài đặt rpm trên máy của mình.


0
2017-12-20 00:33



Downvote: Liên kết bị hỏng và liên kết dường như dành cho gói RPM ngay từ đầu. - tripleee


Gói lệnh không tìm thấy cung cấp cho bạn các gợi ý về các lệnh tiềm năng và tên của gói debian. Nó hoạt động bằng cách gõ lệnh trong bash shell và nhìn vào đầu ra của nó.

Ví dụ: nếu tên lệnh được biết:

zer@ivy:~ 10:45 $ zsh5
The program 'zsh5' is currently not installed.  To run 'zsh5' please ask
your administrator to install the package 'zsh'
zsh5: command not found

và nếu lệnh không được biết, một số dự đoán được áp dụng:

zer@ivy:~ 09:46 $ zsh
No command 'zsh' found, did you mean:
 Command 'lsh' from package 'lsh-client' (main)
 Command 'osh' from package 'omake' (main)
 Command 'ysh' from package 'libyaml-shell-perl' (main)
 Command 'ssh' from package 'openssh-client' (main)
 Command 'vsh' from package 'crystalspace' (main)
 Command 'dsh' from package 'dsh' (main)
 Command 'ash' from package 'ash' (main)
 Command 'msh' from package 'nmh' (main)
 Command 'zssh' from package 'zssh' (main)
 Command 'qsh' from package 'gridengine-client' (main)
 Command 'sh' from package 'dash' (main)
 Command 'bsh' from package 'bsh' (main)
zsh: command not found

0
2017-11-24 09:59



Tuy nhiên, điều này không hoạt động đối với các tệp tùy ý, như OP được yêu cầu. - Michael Kjörling
Đây là một mẹo có vấn đề nếu chương trình thực hiện những điều có hại và cài đặt IS. Đang thêm -h hoặc là --help cuối cùng sẽ giúp một chút. Nếu thêm -h vào cuối sẽ làm cho điều này đủ an toàn tôi muốn giới thiệu, nhưng ngay cả như vậy nó không phải là một cách tốt để đạt được những gì OP yêu cầu. - Dr Beco