web-dev-qa-db-ja.com

Ubuntu / Debianでファイルがどこのパッケージに属しているか探しますか?

Ubuntu 8.04システムで作業していると、プログラム、マニュアルページ、その他のファイルが見つからないことがよくあります。どのパッケージに特定のファイルが含まれているかを調べる簡単な方法はありますか(既にインストールされているかどうかにかかわらず)。たぶんaptやdpkgのあいまいなオプションはありますか?

292
Jay Conrod
apt-file search filename

または

apt-file search /path/to/file


apt-file をインストールするには、次のようにします。

Sudo apt-get install apt-file

使用する前にデータベースを更新する必要があります。

Sudo apt-file update
239
John T

(Debian/Ubuntu)ファイルがどのパッケージに属しているかを調べます

dpkg -S /usr/bin/ls

'dpkg -S'は指定した文字列と一致するだけなので、引数として 'ls'を使用すると、ファイル名のどこかに 'ls'があるパッケージからのファイルと一致します。そのため、通常は絶対パスを使用することをお勧めします。 2番目の例では、dpkgで知られている1万2000個のファイルが裸の文字列 'ls'に一致することがわかります。

391
splattne

packages.debian.org が私がこの仕事を達成するためにいつも使っているものです。ファイル名の一部も見つけることができるので、apt-fileより優れています。それはまた、説明、バグなどをリストアップするメインパッケージリストにリンクされています。コマンドラインからはそれほど便利ではありませんが、それでもかなり便利です。

スピードを上げるために、URLをブックマークしました。

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

firefoxでは、「debfind」をキーワードとして追加し(ブックマークマネージャで「詳細」をクリックしてハイライト表示)、「debfind」と入力するだけで動作します。他のバージョンのディストリビューションでは、必要に応じて「スイート」を「不安定」から「安定」または「テスト」に変更できます。

18
jamuraa

Dlocateも使えます。 manページから。

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

私はWajigを見つけました...

wajig whichpackage /path/to/file 

例えば。

wajig whichpackage /etc/apt/sources.list

Wajigは、習得したくなかったapt-get、dpkgの長所をすべて網羅した便利なコマンドラインまたはコンソールツールです。 。

Wajigをインストールするには

apt-get install wajig

そのコマンド「whichpackage」自体はapt-fileに依存します

使用する前にデータベースを更新する必要があります。 - wajig update whixhがapt-get updateを実行してもファイルキャッシュが更新されるかどうかはまだわかりませんが、可能性はあります。

Sudo wajig update

Sudo apt-file update

(そして、スーパーカウ、イースターエッグ?!)

4
pete_m

JamuraaのDebianに対する答えと同じように、Ubuntuについては http://packages.ubuntu.com/ に行くこともできます。ファイルのパスを入力できる「パッケージの内容を検索する」検索ボックスを見つけるには、少しスクロールダウンする必要があります。

2
kiri

http://www.kodkast.com/applications/find-which-package-file-belongs-to を使用してファイルを検索してみてください

これは、異なるrpms/linuxパッケージに含まれているファイルを検索するためのアプリケーションです。あなたのマシンにrpmがインストールされていなくても非常に役に立ちます。

0
Ravi Agarwal

Command-not-foundパッケージは、潜在的なコマンドとdebianパッケージの名前についてのヒントを与えてくれます。 bashシェルにコマンドを入力してその出力を見ることで動作します。

たとえば、コマンド名がわかっているとします。

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

コマンドがわからない場合は、いくつかの推測が適用されます。

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
erwing