「Pkgfile」の版間の差分
細 (文字列「[[zh-CN:」を「[[zh-hans:」に置換) |
(同期) |
||
4行目: | 4行目: | ||
[[en:Pkgfile]] |
[[en:Pkgfile]] |
||
[[es:Pkgfile]] |
[[es:Pkgfile]] |
||
+ | [[fa:Pkgfile]] |
||
[[ko:Pkgfile]] |
[[ko:Pkgfile]] |
||
[[ru:Pkgfile]] |
[[ru:Pkgfile]] |
||
[[zh-hans:Pkgfile]] |
[[zh-hans:Pkgfile]] |
||
+ | {{Related articles start}} |
||
+ | {{Related|pacman}} |
||
+ | {{Related articles end}} |
||
'''pkgfile''' は特定のファイルを所有しているパッケージはどれか、または特定のパッケージに入っているファイルはどれかを表示するツールです。 |
'''pkgfile''' は特定のファイルを所有しているパッケージはどれか、または特定のパッケージに入っているファイルはどれかを表示するツールです。 |
||
35行目: | 39行目: | ||
core/archlinux-keyring usr/share/pacman/keyrings/archlinux-trusted |
core/archlinux-keyring usr/share/pacman/keyrings/archlinux-trusted |
||
core/archlinux-keyring usr/share/pacman/keyrings/archlinux.gpg}} |
core/archlinux-keyring usr/share/pacman/keyrings/archlinux.gpg}} |
||
+ | |||
+ | {{ic|pacman -Ql}} と同じような機能ですが ([[pacman#パッケージ・データベースに問い合わせる]]を参照)、インストールしていないパッケージでも使うことができます。 |
||
== "Command not found" フック == |
== "Command not found" フック == |
||
74行目: | 80行目: | ||
''command-not-found'' パッケージは [[wikipedia:ja:C++|C++]] で書かれているため、''pkgfile'' の Bash スクリプトよりもずっと高速に動作します。 |
''command-not-found'' パッケージは [[wikipedia:ja:C++|C++]] で書かれているため、''pkgfile'' の Bash スクリプトよりもずっと高速に動作します。 |
||
+ | |||
+ | == 自動アップデート == |
||
+ | |||
+ | '''pkgfile''' には pkgfile データベースを自動的に同期するための [[systemd]] サービスと[[systemd/タイマー|タイマー]]が同梱されています。自動アップデートを有効にするには {{ic|pkgfile-update.timer}} を[[有効化]]してください。 |
||
+ | |||
+ | デフォルトでは、pkgfile は1日毎にアップデートされます。頻度を変えるには[[systemd#ユニットファイルの編集|ユニットファイルを編集]]してください。 |
2017年4月13日 (木) 00:38時点における版
関連記事
pkgfile は特定のファイルを所有しているパッケージはどれか、または特定のパッケージに入っているファイルはどれかを表示するツールです。
インストール
公式リポジトリの pkgfile か AUR の pkgfile-gitAUR でインストールできます。
インストールしたらファイルデータベースを更新してください:
# pkgfile -u
使用方法
"makepkg" という名前のファイルを含んでいるパッケージを検索する例:
$ pkgfile makepkg
core/pacman
検索したファイルは [core] リポジトリの pacman パッケージに含まれていることがわかりました。
また、archlinux-keyring パッケージに入っている全てのファイルを表示する例:
$ pkgfile -l archlinux-keyring
core/archlinux-keyring usr/ core/archlinux-keyring usr/share/ core/archlinux-keyring usr/share/pacman/ core/archlinux-keyring usr/share/pacman/keyrings/ core/archlinux-keyring usr/share/pacman/keyrings/archlinux-revoked core/archlinux-keyring usr/share/pacman/keyrings/archlinux-trusted core/archlinux-keyring usr/share/pacman/keyrings/archlinux.gpg
pacman -Ql
と同じような機能ですが (pacman#パッケージ・データベースに問い合わせるを参照)、インストールしていないパッケージでも使うことができます。
"Command not found" フック
pkgfile には、不明なコマンドを入力したときに自動で公式リポジトリを検索する "command not found" フックが含まれています。例えば以下のように表示されます:
$ abiword
abiword may be found in the following packages: extra/abiword 2.8.6-7 usr/bin/abiword
シェルでこのフックを有効にするには、シェルの初期化ファイルにフックを読み込ませる必要があります。
- Bash の例:
~/.bashrc
source /usr/share/doc/pkgfile/command-not-found.bash
- Zsh の例:
~/.zshrc
source /usr/share/doc/pkgfile/command-not-found.zsh
他にも AUR のパッケージ command-not-foundAUR によって提供されている "command not found" フックもあり、以下のように出力を生成します:
$ abiword
The command 'abiword' is been provided by the following packages: abiword (2.8.6-7) from extra [ abiword ] abiword (2.8.6-7) from staging [ abiword ] abiword (2.8.6-7) from testing [ abiword ]
これを使うには、以下を zshrc に追加して下さい:
[ -r /etc/profile.d/cnf.sh ] && . /etc/profile.d/cnf.sh
command-not-found パッケージは C++ で書かれているため、pkgfile の Bash スクリプトよりもずっと高速に動作します。
自動アップデート
pkgfile には pkgfile データベースを自動的に同期するための systemd サービスとタイマーが同梱されています。自動アップデートを有効にするには pkgfile-update.timer
を有効化してください。
デフォルトでは、pkgfile は1日毎にアップデートされます。頻度を変えるにはユニットファイルを編集してください。