Ubuntu/Debian系なら「dlocate」や「apt-file」、Fedoraなら「dnf provides」、RHEL/CentOSなら「yum provides」を使います。
dlocate – Ubuntu/Debian系でインストール済みのファイル名から調べる
Ubuntuなどにインストール済みのファイルがどのパッケージに含まれているかを調べるなら、「dlocate」コマンドを用いるのが高速です。以下のコマンドでインストールしておきます。
sudo apt install -y dlocate
「/usr/bin/gcc」が含まれるパッケージを検索するには、以下のように実行します。
$ dlocate /usr/bin/gcc
gcc-4.9: /usr/bin/gcc-4.9
gcc-4.9: /usr/bin/gcc-ar-4.9
gcc-4.9: /usr/bin/gcc-nm-4.9
gcc-4.9: /usr/bin/gcc-ranlib-4.9
gcc-5: /usr/bin/gcc-5
gcc-5: /usr/bin/gcc-ar-5
gcc-5: /usr/bin/gcc-nm-5
gcc-5: /usr/bin/gcc-ranlib-5
gcc: /usr/bin/gcc
gcc: /usr/bin/gcc-ar
gcc: /usr/bin/gcc-nm
gcc: /usr/bin/gcc-ranlib
gcc-6: /usr/bin/gcc-6
gcc-6: /usr/bin/gcc-ar-6
gcc-6: /usr/bin/gcc-nm-6
gcc-6: /usr/bin/gcc-ranlib-6
gcc-7: /usr/bin/gcc-7
gcc-7: /usr/bin/gcc-ar-7
gcc-7: /usr/bin/gcc-nm-7
gcc-7: /usr/bin/gcc-ranlib-7
apt-file search – Ubuntu/Debian系で未インストールのファイル名から調べる
Ubuntuなどで未インストールのファイルを含むパッケージを調べるには、「apt-file」コマンドを使います。以下のコマンドでインストールし、データベースをアップデートします。
sudo apt install -y apt-file
sudo apt-file update
たとえば「avcodec.h」を含むファイルを調べるには、以下のように実行します。部分一致なので、「libavcodec.html」なども検索結果に含まれます。
$ apt-file search avcodec.h
ffmpeg-doc: /usr/share/doc/ffmpeg/manual/libavcodec.html
libaubio-dev: /usr/include/aubio/io/source_avcodec.h
libavcodec-dev: /usr/include/x86_64-linux-gnu/libavcodec/avcodec.h
libmyth-dev: /usr/include/mythtv/libavcodec/avcodec.h
libvlccore-dev: /usr/include/vlc/plugins/vlc_avcodec.h
mplayer-doc: /usr/share/doc/mplayer-doc/HTML/cs/menc-feat-enc-libavcodec.html
mplayer-doc: /usr/share/doc/mplayer-doc/HTML/de/menc-feat-enc-libavcodec.html
mplayer-doc: /usr/share/doc/mplayer-doc/HTML/en/menc-feat-enc-libavcodec.html
mplayer-doc: /usr/share/doc/mplayer-doc/HTML/fr/menc-feat-enc-libavcodec.html
mplayer-doc: /usr/share/doc/mplayer-doc/HTML/hu/menc-feat-enc-libavcodec.html
mplayer-doc: /usr/share/doc/mplayer-doc/HTML/it/menc-feat-enc-libavcodec.html
mplayer-doc: /usr/share/doc/mplayer-doc/HTML/pl/menc-feat-enc-libavcodec.html
mplayer-doc: /usr/share/doc/mplayer-doc/HTML/ru/menc-feat-enc-libavcodec.html
mplayer-doc: /usr/share/doc/mplayer-doc/HTML/zh_CN/menc-feat-enc-libavcodec.html
dnf provides – Fedoraでファイル名から調べる
Fedoraでファイル名からパッケージを検索するには、「dnf provides」を用います。apt-fileと異なり、完全に一致したものを検索します。以下の例のようにワイルドカード(*)を使ってパターンマッチさせることができます。
$ dnf provides '*/bin/gcc'
メタデータの期限切れの確認は、2:33:55 時間前の 2017年10月08日 12時49分53秒 に実施しました。
gcc-7.1.1-3.fc26.x86_64 : Various compilers (C, C++, Objective-C, Java, ...)
リポジトリ : @System
gcc-7.2.1-2.fc26.i686 : Various compilers (C, C++, Objective-C, Java, ...)
リポジトリ : updates
(以下略)
yum provides – RHEL/CentOSでファイル名から調べる
RHELやCentOSでは「yum provides」を使います。使い方は「dnf provides」と同じです。
$ yum provides '*/bin/gcc'
読み込んだプラグイン:fastestmirror, langpacks
Repodata is over 2 weeks old. Install yum-cron? Or run: yum makecache fast
Loading mirror speeds from cached hostfile
* base: ftp.tsukuba.wide.ad.jp
* epel: ftp.jaist.ac.jp
* extras: ftp.tsukuba.wide.ad.jp
* updates: ftp.tsukuba.wide.ad.jp
gcc-4.8.5-16.el7.x86_64 : Various compilers (C, C++, Objective-C, Java, ...)
リポジトリー : base
一致 :
ファイル名 : /usr/bin/gcc
(以下略)
更新履歴
2017-10-08 Ubuntu 17.10、Ubuntu 16.04、Fedora 26、CentOS 7で動作を確認
コメント