この簡単なチュートリアルでは、Linuxで特定のファイルを提供するパッケージを見つけるためのいくつかの異なる方法について説明します。これは、パッケージを手動でコンパイルしてインストールするときに役立つ場合があります。ソースからパッケージをコンパイルしているときに、「ターゲット'
Linuxで特定のファイルを提供するパッケージを探す
Arch Linux、Antergos、Manjaro Linux:
Archベースには、 pkgfileと呼ばれる小さなコマンドラインツールがあります。 、パッケージからファイルを検索するために使用されます。
PkgfileにはArchLinuxがプリインストールされています。そうでない場合は、次のコマンドを使用してインストールできます。
$ sudo pacman -S pkgfile
次に、次のコマンドを実行してpkgfileデータベースと同期します。
$ sudo pkgfile -u
これで、特定のファイルを提供するパッケージを見つけることができます。たとえば、 alisp.h 、コマンドを使用:
$ pkgfile alisp.h extra/alsa-lib
上記の出力にあるように、 alsa-lib パッケージはalisp.hを提供します ファイル。また、パッケージは追加から入手できます。 リポジトリ。これで、以下に示すようにこのパッケージをインストールできます。
$ sudo pacman -S alsa-lib
alsa-libパッケージによって提供されるすべてのファイルを一覧表示するには、次のコマンドを実行します。
$ pkgfile -l alsa-lib
RHEL、CentOS、Fedora:
RHELなどのYUMベースのシステム、およびCentOS、Scientific Linuxなどのそのクローンでは、次のコマンドを使用して、特定のファイルを所有するパッケージを見つけることができます。
$ yum whatprovides '*filename'
Fedoraでは、代わりに次のコマンドを使用してください:
$ dnf provides '*filename'を提供します
ファイルがシステムですでに利用可能である場合は、たとえば / bin / lsと言います。 、コマンドを使用してファイルを所有するパッケージを見つけることができます:
# rpm -qf /bin/ls coreutils-8.22-18.el7.x86_64
repoqueryを使用することもできます 次のようにコマンドを実行します:
$ repoquery -f /bin/ls
システムでrepoqueryコマンドを使用できない場合は、 yum-utilsをインストールしてください パッケージ。
$ sudo yum install yum-utils
または、
$ sudo dnf install yum-utils
Debian、Ubuntu、Linux Mint:
DEBベースのシステムでは、 apt-fileを使用して特定のファイルを提供するパッケージを見つけることができます。 ツール。
まだインストールされていない場合は、以下に示すようにapt-fileをインストールします。
$ sudo apt-get install apt-file
apt-fileをインストールしたばかりの場合は、システム全体のキャッシュが空になっている可能性があります。キャッシュを更新するには、rootとして「apt-fileupdate」を実行する必要があります。通常のユーザーとして「apt-fileupdate」を実行して、ユーザーのホームディレクトリのキャッシュを使用することもできます。
コマンドを使用してデータベースキャッシュを更新しましょう:
$ sudo apt-file update
次に、特定のファイル( alisp.h など)を含むパッケージを検索します 、コマンド付き:
$ apt-file find alisp.h
または、
$ apt-file search alisp.h
サンプルは次のようになります:
libasound2-dev: /usr/include/alsa/alisp.h
ええと、 libasound2-dev です!このパッケージは、次のコマンドを使用してインストールできます:
$ sudo apt-get install libasound2-dev
すでにファイルがあり、それがどのパッケージに属しているかを知りたい場合は、 dpkgを使用できます。 以下に示すコマンド。
$ dpkg -S $(which alisp.h)
または、
$ dpkg -S `which alisp.h`
ファイルのフルパスがわかっている場合は、たとえば / bin / lsと言います。 、次のコマンドを使用して、所属するパッケージを検索できます。
$ dpkg -S /bin/ls coreutils: /bin/ls
SUSE / openSUSE:
SUSEおよびopenSUSEで、次のコマンドを実行して、特定のファイルが属するパッケージを確認します。
$ zypper wp alisp.h
または、
$ zypper se --provides --match-exact alisp.h
推奨される読み物:
- Linuxで特定のリポジトリからインストールされたパッケージを一覧表示する方法
- CentOSで特定のパッケージの依存関係を見つける方法
そして、それがすべてです。お役に立てれば。特定のファイルを含むパッケージを見つけるための他の方法を知っている場合は、以下のコメントセクションでお気軽にお知らせください。それに応じてガイドを確認して更新します。