「Pkgfile」の版間の差分

提供: ArchWiki
ナビゲーションに移動 検索に移動
(文字列「[[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 は特定のファイルを所有しているパッケージはどれか、または特定のパッケージに入っているファイルはどれかを表示するツールです。

インストール

公式リポジトリpkgfileAURpkgfile-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日毎にアップデートされます。頻度を変えるにはユニットファイルを編集してください。