UNIX系OSでのユーザー設定ファイルの標準格納先の$XDG_環境変数

UNIX系OSでのソフトウェアの設定ファイルの格納場所として,マニュアル等に$XDG_CONFIG_HOMEなどの環境変数が登場することがある。これらの環境変数について毎回調べるのが面倒に感じたので,整理する。

$XDG_から始まる環境変数はfreedesktop.orgが管理する「XDG Base Directory Specification」(2020-11-07時点の最新版は2010-11-24のv0.7) で定義されている。

freedesktop.orgはUNIX系OSの主にX Window Systemを利用するデスクトップ環境の標準化のための団体となっている。2000年3月の設立当初はX Desktop Group (cross desktop group) と名乗っており (参考: d/freedesktop),当初のホームページにもその記載がある。その名残で略称のXDGが環境変数のプレフィクス・接頭辞としても登場している。

肝心の「XDG Base Directory Specification」はデスクトップ環境でユーザーに使われる様々なファイルの格納先ディレクトリーを定義した仕様となっている。格納先ディレクトリーを表す環境変数6個を定義したものとなっており,非常に短い仕様となっている。

短いものの,いざ登場した際に変数名が似ているため,どれがどこを指すのかぱっと思い出せない。そこで,環境変数の一覧を以下に記す。

XDG Base Directory Specificationの$XDG_*変数の一覧
変数 デフォルト 説明
$XDG_DATA_HOME $HOME/.local/share ユーザーデータファイルの格納先。
$XDG_CONFIG_HOME $HOME/.config ユーザー設定ファイルの格納先。
$XDG_DATA_DIRS /usr/local/share/:/usr/share/ $XDG_DATA_HOMEの追加の検索先リスト。コロン:区切り。
$XDG_CONFIG_DIRS /etc/xdg $XDG_CONFIG_HOMEの追加の検索先リスト。コロン:区切り。
$XDG_CACHE_HOME $HOME/.cache ユーザーキャッシュデータの格納先。
$XDG_RUNTIME_DIR ユーザーランタイムファイル (ソケット,名前付きパイプなど) の格納先。

最初の2個の$XDG_DATA_HOME$XDG_CONFIG_HOMEが特に頻繁に参照される。例えば,systemdのユーザーユニット検索パスに登場する。その他にもPythonなどのプログラミング言語など非常に多くのソフトウェアが参照している。

変数名を見て,$XDG_CONFIG_HOMEから~/.configは連想しやすいが,$XDG_DATA_HOMEから~/.local/shareは連想しにくい。これだけ覚えておけば,変数が登場してもどこを指すのか戸惑わずに済むだろう。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です