XDG_DATA_DIRSにディレクトリを追加する正しい方法は何ですか?

XDG_DATA_DIRSにディレクトリを追加する正しい方法は何ですか?

以下にいくつかのアプリケーションがインストールされており、/opt/myappディレクトリがあります/opt/myapp/share。インストールが完了したら、次のように通知します。

Note that '/opt/myapp/share' is not in the search path
set by the XDG_DATA_HOME and XDG_DATA_DIRS
environment variables, so applications may not
be able to find it until you set them. The
directories currently searched are:

- /usr/share/gnome
- /home/joeuser/.local/share/flatpak/exports/share
- /var/lib/flatpak/exports/share
- /usr/local/share
- /usr/share

システム全体と個々のユーザーとして、このリストにディレクトリを追加する正しい方法は何ですか?

ベストアンサー1

これドイツのubuntuusers Wikiには良いリストがあります。この目的で使用できるファイルとディレクトリです。

グローバル設定

私の研究では、この環境変数にグローバルにリンクするのは簡単ではありませんが、以下はいくつかのヒントです。

  • 既存の値を上書きするには、これ/etc/environmentが最も簡単な方法です。
  • システム構成によっては/etc/profileシェルで実行するので、良い方法かもしれません。
  • /etc/X11/Xsession.d/*試す他のファイルは次のとおりです。/etc/security/pam_env.conf

ユーザー設定

  • $HOME/.profile(または$HOME/.zprofilezshユーザーの場合)複数の場所に提案がありますが、そこにその行を追加すると、XDG_DATA_DIRS="$HOME/.local/xdg:$XDG_DATA_DIRS"ログイン後に自分のデスクトップが完全に機能しなくなります。
  • 私にとって効果的なのは、線を作ってそこに$HOME/.xsessionrc置くことですexport XDG_DATA_DIRS="$HOME/.local/xdg:$XDG_DATA_DIRS"。もちろん、$HOME/.local/xdg追加したいディレクトリに置き換える必要があります。また、これはシェルではなくグラフィカルアプリケーションの変数のみを設定するため(値はここでは言及されていませんecho $XDG_DATA_DIRS)、問題はありません。

おすすめ

次の行を実行して再度ログインすると機能します。

echo export 'XDG_DATA_DIRS="/opt/myapp/share:$XDG_DATA_DIRS"' >> ~/.xsessionrc

その後、何らかの理由でシステムが正常に動作しない場合は、次のように入力してください。回復モード、ルートシェルに入り、と入力してシス​​テムにrm /home/<username>/.xsessionrc戻りrebootます。

おすすめ記事