以下にいくつかのアプリケーションがインストールされており、/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/.zprofile
zshユーザーの場合)複数の場所に提案がありますが、そこにその行を追加すると、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
ます。