「Pkgfile」の版間の差分

提供: ArchWiki
ナビゲーションに移動 検索に移動
(同期)
(英語版と同期. command-not-found の件は残した)
2行目: 2行目:
 
[[Category:パッケージ開発]]
 
[[Category:パッケージ開発]]
 
[[Category:パッケージ管理]]
 
[[Category:パッケージ管理]]
  +
[[cs:Pkgfile]]
 
[[en:Pkgfile]]
 
[[en:Pkgfile]]
 
[[es:Pkgfile]]
 
[[es:Pkgfile]]
 
[[fa:Pkgfile]]
 
[[fa:Pkgfile]]
 
[[ko:Pkgfile]]
 
[[ko:Pkgfile]]
  +
[[pt:Pkgfile]]
 
[[ru:Pkgfile]]
 
[[ru:Pkgfile]]
 
[[zh-hans:Pkgfile]]
 
[[zh-hans:Pkgfile]]
12行目: 14行目:
 
{{Related articles end}}
 
{{Related articles end}}
 
'''pkgfile''' は特定のファイルを所有しているパッケージはどれか、または特定のパッケージに入っているファイルはどれかを表示するツールです。
 
'''pkgfile''' は特定のファイルを所有しているパッケージはどれか、または特定のパッケージに入っているファイルはどれかを表示するツールです。
  +
  +
{{Tip|{{Pkg|pacman}} には [[Pacman#特定のファイルが含まれているパッケージを検索|類似の機能]]が内蔵されています。}}
   
 
== インストール ==
 
== インストール ==
   
[[公式リポジトリ]]の {{Pkg|pkgfile}} [[Arch User Repository|AUR]] の {{AUR|pkgfile-git}} で[[pacman|インストール]]できます
+
[[公式リポジトリ]]の {{Pkg|pkgfile}} パッケージを[[インストール]]してください。あるいは、開発版を [[Arch User Repository|AUR]] の {{AUR|pkgfile-git}} パッケージでインストールしてください
   
 
インストールしたらファイルデータベースを更新してください:
 
インストールしたらファイルデータベースを更新してください:

2019年3月22日 (金) 23:41時点における版

関連記事

pkgfile は特定のファイルを所有しているパッケージはどれか、または特定のパッケージに入っているファイルはどれかを表示するツールです。

ヒント: pacman には 類似の機能が内蔵されています。

インストール

公式リポジトリpkgfile パッケージをインストールしてください。あるいは、開発版を AURpkgfile-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

シェルでこのフックを有効にするには、シェルの初期化ファイルにフックを読み込ませる必要があります。

~/.bashrc
source /usr/share/doc/pkgfile/command-not-found.bash
~/.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日毎にアップデートされます。頻度を変えるにはユニットファイルを編集してください。