Ubuntu/Debianでファイルがどのパッケージに属しているかを見つけるには?
私はUbuntu 8.04のシステムで作業をしているときに、プログラム、マンページ、または他のファイルが見つからないことがよくあります。与えられたファイルが含まれているパッケージを検索する簡単な方法はありますか(それがすでにインストールされているかどうか)?多分、aptやdpkgのためのいくつかの不明瞭なオプション?
私はUbuntu 8.04のシステムで作業をしているときに、プログラム、マンページ、または他のファイルが見つからないことがよくあります。与えられたファイルが含まれているパッケージを検索する簡単な方法はありますか(それがすでにインストールされているかどうか)?多分、aptやdpkgのためのいくつかの不明瞭なオプション?
(Debian/Ubuntu) ファイルがどのパッケージに属しているかを調べる .
dpkg -S /usr/bin/ls
‘dpkg -S’ は与えられた文字列にマッチするだけなので、引数に ‘ls’ を使うだけで、ファイル名のどこかに ‘ls’ があるパッケージのファイルにマッチします。ですから、通常は絶対パスを使うのが良いでしょう。2 番目の例では、dpkg が知っている 12,000 個のファイルがむき出しの文字列 ‘ls’ にマッチしていることがわかります。
packages.debian.org は、このタスクを達成するためにいつも使っているものです。apt-file よりも優れているのは、ファイル名の一部を見つけることができるからです。また、メインのパッケージリストにリンクされていて、説明やバグなどが一覧表示されます。全体としては良いサイトです。コマンドラインからはそれほど便利ではありませんが、それでもかなり便利です。
速さのためにURLをブックマークしました。
http://packages.debian.org/search?searchon=contents&keywords=%s&mode=filename&suite=unstable&arch=any
をFirefoxでブックマークして、キーワードとしてdebfindを追加した(ブックマークマネージャーで “more "をクリックしてhilightした状態で)ので、"debfind "と入力するだけで動くようになった。他のバージョンのディストリビューションでは、不安定版から安定版、テスト版に変更することができます。
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アップデートを行う際にファイルキャッシュも更新するかどうかはまだわかりませんが、そうなるかもしれないと期待しています。
sudo wajig update
sudo apt-file update
( そしてスーパーカウ、イースターのegss ? ! )
Debian の jamuraa さんの回答と同様に、Ubuntu の場合は http://packages.ubuntu.com/ に行くこともできます。ファイルのパスを入力できる “Search the contents of packages” 検索ボックスを見つけるには、少し下にスクロールする必要があります。
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
となり、コマンドがわからない場合は、いくつかの推測が適用されます。
0x1&
http://www.kodkast.com/applications/find-which-package-file-belongs-to ](http://www.kodkast.com/applications/find-which-package-file-belongs-to)
これは、異なる rpms/linux パッケージに含まれているファイルを検索するアプリケーションで、 マシンに rpm がインストールされていない場合に非常に便利です。