回答:
apt-file search filename
または
apt-file search /path/to/file
をインストールするにはapt-file
、次を使用します。
sudo apt-get install apt-file
データベースを使用する前に、データベースを更新する必要があります。
sudo apt-file update
dpkg -S
以下に説明するように動作します。
(Debian / Ubuntu)ファイルがどのパッケージに属しているかを発見します:
dpkg -S /usr/bin/ls
「dpkg -S」は指定した文字列と一致するだけなので、引数として「ls」を使用するだけで、ファイル名に「ls」があるパッケージのファイルと一致します。そのため、通常は絶対パスを使用することをお勧めします。2番目の例では、dpkgが認識している12,000個のファイルが、むき出しの文字列「ls」に一致することがわかります。
apt-file
、これはパッケージを手動でインストールした場合、dpkg -i
!
dpkg -S "$(readlink -fn "$(which rename)")"
。
dpkg-query: no path found matching pattern /usr/bin/java
、でファイルがあるのに/usr/bin/java
packages.debian.orgは、私がこのタスクを達成するためにいつも使用しているものです。ファイル名の一部も検索できるため、apt-fileよりも優れています。また、説明、バグなどを一覧表示するメインパッケージリストにリンクされています。すべてが優れたWebサイトにあります。コマンドラインからはそれほど便利ではありませんが、それでもかなり便利です。
速度を上げるために、URLをブックマークしました。
http://packages.debian.org/search?searchon=contents&keywords=%s&mode=filename&suite=unstable&arch=any
Firefoxで「debfind」をキーワードとして追加し(ブックマークマネージャで「more」をクリックしてハイライト表示)、「debfind」と入力するだけで機能します。ディストリビューションの他のバージョンでは、「スイート」を不安定版から安定版または必要に応じてテスト版に変更できます。
dlocateを使用することもできます。manページから。
$ dlocate [ PATTERN ]
List all records where either the package name or the filename matches PATTERN.
dlocate
また、私のお気に入りの方法であり、非常に信頼できます。
dlocate
は、sudo update-dlocatedb
最初に実行しない限り、最近インストールされたパッケージを見つけません。このコマンドは、
ワジグを見つけました...
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/にもアクセスできます。ファイルのパスを入力できる「パッケージの内容を検索」検索ボックスを見つけるには、少し下にスクロールする必要があります。
http://www.kodkast.com/applications/find-which-package-file-belongs-toを使用してファイルを検索してみてください
これは、異なるrpms / linuxパッケージに含まれるファイルを検索するためのアプリケーションであり、マシンにrpmがインストールされていなくても非常に便利です。
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
-h
または--help
最後に追加すると少し役立ちます。-h
最後に追加することでこれが十分に安全になる場合はお勧めしますが、それでもOPが求めることを達成するのは良い方法ではありません。