「Pkgfile」の版間の差分
ナビゲーションに移動
検索に移動
細 (1版 をインポートしました) |
(リンクを追加) |
||
(5人の利用者による、間の11版が非表示) | |||
1行目: | 1行目: | ||
{{Lowercase title}} |
{{Lowercase title}} |
||
− | [[Category:パッケージ開発] |
||
[[Category:パッケージ管理]] |
[[Category:パッケージ管理]] |
||
+ | [[Category:コマンド]] |
||
− | [[en:Pkgfile]] |
||
− | [[ |
+ | [[cs:Pkgfile]] |
+ | [[de:Pkgfile]] |
||
+ | [[en:pkgfile]] |
||
+ | [[es:Pkgfile]] |
||
+ | [[fa:Pkgfile]] |
||
+ | [[pl:Pkgfile]] |
||
+ | [[pt:Pkgfile]] |
||
[[ru:Pkgfile]] |
[[ru:Pkgfile]] |
||
− | [[zh- |
+ | [[zh-hans:Pkgfile]] |
+ | {{Related articles start}} |
||
+ | {{Related|pacman}} |
||
+ | {{Related articles end}} |
||
'''pkgfile''' は特定のファイルを所有しているパッケージはどれか、または特定のパッケージに入っているファイルはどれかを表示するツールです。 |
'''pkgfile''' は特定のファイルを所有しているパッケージはどれか、または特定のパッケージに入っているファイルはどれかを表示するツールです。 |
||
+ | |||
+ | {{Tip|{{Pkg|pacman}} には[[Pacman#特定のファイルが含まれているパッケージを検索|類似の機能]]が内蔵されています。}} |
||
== インストール == |
== インストール == |
||
− | [[公式リポジトリ]]の {{Pkg|pkgfile}} |
+ | [[公式リポジトリ]] の {{Pkg|pkgfile}} パッケージを [[インストール]] してください。あるいは、[[Arch User Repository|AUR]] の {{AUR|pkgfile-git}} パッケージで開発版をインストールしてください。 |
インストールしたらファイルデータベースを更新してください: |
インストールしたらファイルデータベースを更新してください: |
||
18行目: | 28行目: | ||
== 使用方法 == |
== 使用方法 == |
||
− | + | ファイル {{ic|makepkg}} を所有するパッケージを検索するには: |
|
{{hc|$ pkgfile makepkg| |
{{hc|$ pkgfile makepkg| |
||
core/pacman}} |
core/pacman}} |
||
− | 検索したファイルは ''[core]'' リポジトリの {{Pkg|pacman}} パッケージに含まれていることがわかりました。 |
||
− | + | {{Pkg|archlinux-keyring}} パッケージに入っている全てのファイルを表示する例: |
|
{{hc|$ pkgfile -l archlinux-keyring| |
{{hc|$ pkgfile -l archlinux-keyring| |
||
34行目: | 43行目: | ||
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" フック == |
||
+ | [[Bash#Command not found]]、[[Zsh# pkgfile の "command not found" ハンドラー]]、および [[Fish#"command not found" フック]] を参照してください。 |
||
− | pkgfile には、不明なコマンドを入力したときに自動で[[公式リポジトリ]]を検索する "command not found" フックが含まれています。例えば以下のように表示されます: |
||
− | |||
− | {{hc|$ abiword| |
||
− | abiword may be found in the following packages: |
||
− | extra/abiword 2.8.6-7 usr/bin/abiword |
||
− | }} |
||
− | |||
− | シェルでこのフックを有効にするには、シェルの初期化ファイルにフックを読み込ませる必要があります。 |
||
− | |||
− | * [[Bash|Bash]] の例: |
||
− | |||
− | {{hc|~/.bashrc| |
||
− | source /usr/share/doc/pkgfile/command-not-found.bash}} |
||
− | |||
− | * [[Zsh|Zsh]] の例: |
||
− | |||
− | {{hc|~/.zshrc| |
||
− | source /usr/share/doc/pkgfile/command-not-found.zsh}} |
||
− | |||
− | 他にも AUR のパッケージ {{AUR|command-not-found}} によって提供されている "command not found" フックもあり、以下のように出力を生成します: |
||
− | |||
− | {{hc|$ 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 に追加して下さい: |
||
+ | '''pkgfile''' には pkgfile データベースを自動的に同期するための [[systemd]] サービスと[[systemd/タイマー|タイマー]]が同梱されています。自動アップデートを有効にするには {{ic|pkgfile-update.timer}} を[[有効化]]してください。 |
||
− | [ -r /etc/profile.d/cnf.sh ] && . /etc/profile.d/cnf.sh |
||
+ | デフォルトでは、pkgfile は1日毎にアップデートされます。頻度を変えるには[[systemd#ユニットファイルの編集|ユニットファイルを編集]]してください。 |
||
− | ''command-not-found'' パッケージは [[wikipedia:ja:C++|C++]] で書かれているため、''pkgfile'' の Bash スクリプトよりもずっと高速に動作します。 |
2023年11月9日 (木) 23:01時点における最新版
関連記事
pkgfile は特定のファイルを所有しているパッケージはどれか、または特定のパッケージに入っているファイルはどれかを表示するツールです。
インストール
公式リポジトリ の pkgfile パッケージを インストール してください。あるいは、AUR の pkgfile-gitAUR パッケージで開発版をインストールしてください。
インストールしたらファイルデータベースを更新してください:
# pkgfile -u
使用方法
ファイル makepkg
を所有するパッケージを検索するには:
$ pkgfile makepkg
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" フック
Bash#Command not found、Zsh# pkgfile の "command not found" ハンドラー、および Fish#"command not found" フック を参照してください。
自動アップデート
pkgfile には pkgfile データベースを自動的に同期するための systemd サービスとタイマーが同梱されています。自動アップデートを有効にするには pkgfile-update.timer
を有効化してください。
デフォルトでは、pkgfile は1日毎にアップデートされます。頻度を変えるにはユニットファイルを編集してください。