djonasson.xdg_bds

Ansibleロール: XDG BDS

CI Ansible Galaxy Quality Score Ansible Galaxy MIT Licence

XDG Base Directory Specificationのシェル変数とディレクトリを設定するためのAnsibleロールです。

要件

特になし。

ロール変数

ロール変数はdefaults/main.ymlに定義されており、デフォルトは以下の通りです:

xdg_configure_state: present

設定がblockinfileモジュールを介して書き込まれる状態。値は: [present, absent]。

xdg_marker: "# {mark} ANSIBLE MANAGED BLOCK (djonasson.xdg_bds)"

マーカー行のテンプレート。

xdg_data_home: "{{ ansible_user_dir }}/.local/share"

$XDG_DATA_HOMEは、ユーザー固有のデータファイルが保存される基準ディレクトリを定義します。 $XDG_DATA_HOMEが設定されていないか空の場合は、$HOME/.local/shareがデフォルトとして使用されます。

xdg_config_home: "{{ ansible_user_dir }}/.config"

$XDG_CONFIG_HOMEは、ユーザー固有の設定ファイルが保存される基準ディレクトリを定義します。 $XDG_CONFIG_HOMEが設定されていないか空の場合は、$HOME/.configがデフォルトとして使用されます。

xdg_state_home: "{{ ansible_user_dir }}/.local/state"

$XDG_STATE_HOMEは、ユーザー固有の状態ファイルが保存される基準ディレクトリを定義します。 $XDG_STATE_HOMEが設定されていないか空の場合は、$HOME/.local/stateがデフォルトとして使用されます。

$XDG_STATE_HOMEには、アプリケーションの再起動間で永続化すべき状態データが含まれますが、ユーザーにとって重要すぎず、または持ち運びに適していないため、$XDG_DATA_HOMEに保存するべきではありません。内容としては:

  • 操作履歴(ログ、履歴、最近使用したファイルなど)
  • 再起動時に再利用可能なアプリケーションの現在の状態(ビュー、レイアウト、開いているファイル、元に戻す履歴など)

ユーザー固有の実行可能ファイルは$HOME/.local/binに保存できます。ディストリビューションは、このディレクトリがUNIXの$PATH環境変数に適切に表示されるようにすべきです。

$HOMEは異なるアーキテクチャのシステムで共有される可能性があるため、$HOME/.local/binにコンパイル済みのバイナリをインストールすると、異なるアーキテクチャのシステムで使用する際に問題が発生する可能性があります。これは通常問題ではありませんが、コンパイルされたバイナリが配置されると$HOMEが部分的にアーキテクチャ依存になることを考慮する必要があります。

xdg_data_dirs: "/usr/local/share/:/usr/share"

$XDG_DATA_DIRSは、データファイルを$XDG_DATA_HOMEの基準ディレクトリに加えて検索するための優先順序付きディレクトリセットを定義します。 $XDG_DATA_DIRS内のディレクトリは、コロン ':' で区切る必要があります。

$XDG_DATA_DIRSが設定されていないか空の場合は、/usr/local/share/:/usr/share/ がデフォルトとして使用されます。

xdg_config_dirs: "/etc/xdg"

$XDG_CONFIG_DIRSは、$XDG_CONFIG_HOMEの基準ディレクトリに加えて設定ファイルを検索するための優先順序付きディレクトリセットを定義します。 $XDG_CONFIG_DIRS内のディレクトリは、コロン ':' で区切る必要があります。

$XDG_CONFIG_DIRSが設定されていないか空の場合は、/etc/xdg がデフォルトとして使用されます。

基準ディレクトリの順序は、その重要性を示します。最初にリストされているディレクトリが最も重要です。同じ情報が複数の場所で定義されている場合、より重要な基準ディレクトリに関連付けられた情報が優先されます。$XDG_DATA_HOMEで定義された基準ディレクトリは、$XDG_DATA_DIRSで定義されたどの基準ディレクトリよりも重要と見なされます。$XDG_CONFIG_HOMEで定義された基準ディレクトリは、$XDG_CONFIG_DIRSで定義されたどの基準ディレクトリよりも重要と見なされます。

xdg_cache_home: "{{ ansible_user_dir }}/.cache"

$XDG_CACHE_HOMEは、ユーザー固有の非必須データファイルが保存される基準ディレクトリを定義します。 $XDG_CACHE_HOMEが設定されていないか空の場合、$HOME/.cacheがデフォルトとして使用されます。

$XDG_RUNTIME_DIRは、ユーザー固有の非必須ランタイムファイルやその他のファイルオブジェクト(ソケット、名前付きパイプなど)が保存される基準ディレクトリを定義します。このディレクトリはユーザーが所有し、他の誰も読み書きできない必要があります。Unixのアクセスモードは0700でなければなりません。

このディレクトリの寿命はユーザーのログインに結びつけられなければなりません。ユーザーが初めてログインした時に作成され、ユーザーが完全にログアウトした時に削除される必要があります。ユーザーが複数回ログインした場合は、同じディレクトリを指す必要があり、最初のログインから最後のログアウトまでの間、ディレクトリが存在し続けることが求められます。ファイルは再起動や完全なログアウト/ログインサイクルを超えて残ってはいけません。

このディレクトリはローカルファイルシステム上にあり、他のシステムと共有されていなければなりません。ディレクトリはオペレーティングシステムの基準によって完全な機能を持っている必要があります。具体的には、Unix系オペレーティングシステムではAF_UNIXソケット、シンボリックリンク、ハードリンク、適切な権限、ファイルロック、スパースファイル、メモリマッピング、ファイル変更通知、信頼できるハードリンクカウントがサポートされ、ファイル名の文字セットに制限を設けてはならないことが求められます。このディレクトリ内のファイルには定期的なクリーンアップが行われる可能性があります。ファイルが削除されないようにするには、少なくとも6時間ごとにアクセス時間のタイムスタンプを変更するか、「スティッキービット」を設定する必要があります。

$XDG_RUNTIME_DIRが設定されていない場合、アプリケーションは類似の機能を持つ代替ディレクトリにフォールバックし、警告メッセージを表示する必要があります。アプリケーションはこのディレクトリを通信および同期の目的で使用し、より大きなファイルを置くべきではありません。なぜなら、このディレクトリはランタイムメモリに存在する可能性があり、必ずしもディスクにスワップアウトされるわけではないからです。

依存関係

特になし。

サンプルプレイブック

- hosts: localhost
  roles:
    - role: djonasson.xdg_bds

ライセンス

MIT

作者

このAnsibleロールはダニエル・ヨナッソンによって作成されました。

プロジェクトについて

Ansible role to configure XDG Base Directory Specification shell variables and directories.

インストール
ansible-galaxy install djonasson.xdg_bds
ライセンス
mit
ダウンロード
134
所有者