インターネット上では、この問題を抱えている他の人も見かけましたが、解決策が決定的なものではなかったので、もう一度注意喚起したいと思いました。
Ubuntu wiki のこのページによると: https://help.ubuntu.com/community/環境変数 セッション全体の環境変数を設定するための推奨方法は、~/.pam_environment を変更することです。
私の目標は次のとおりです。
- ホーム フォルダー内の特定の場所へのパスを値として持つ環境変数 ANDROID_HOME を作成したいと思います。
- PATH に 2 つのフォルダーを追加したいと思います。
私がやったことは次のとおりです。~/.pam_environment ファイルが存在しなかったので、作成して次の行を追加しました。
ANDROID_HOME=${HOME}/Android/Sdk
PATH DEFAULT=${PATH}:${ANDROID_HOME}/tools:${ANDROID_HOME}/platform-tools
ログアウトして再度ログインしました。
結果は予想外です。ターミナルを開いて $ANDROID_HOME をエコーすると、次のようになりました:
${HOME}/Android/Sdk
${HOME}
がホーム フォルダーのパスに置き換えられていないようです。なぜでしょうか。
$ANDROID_HOME への - を確認しますcd
(Android/Sdk は実際にはホーム フォルダーに存在します)。
anvar@crazymachine:~$ cd $ANDROID_HOME
bash: cd: ${HOME}/Android/Sdk: No such file or directory
また、$PATH をエコーすると次のようになりました:
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:${HOME}/Android/Sdk/tools:${HOME}/Android/Sdk/platform-tools
特に前述のサイトの例では、値の中で変数を使用できるという印象を与えているのに、なぜ変数が論理的に想定されるように値に置き換えられないのでしょうか?
GUI プログラムもアクセスできるセッション全体の環境変数を設定する正しい方法は何ですか?
答え1
の例ではウィキ、 を介してセッション変数を設定する方法については~/.pam_environment
、注記に次のように記載されています。
変数の拡張が機能するには、スクリプト ファイルとは異なる、PATH を変更するために使用される構文が必要です。
したがって、最初の行は次のようになります。
ANDROID_HOME DEFAULT=${HOME}/Android/Sdk
答え2
2つの提案:
1つ目 - 環境ステートメントの形式は次のようになります。
ANDROID_HOME=$HOME/Android/Sdk
PATH=$PATH:$ANDROID_HOME/tools:$ANDROID_HOME/platform-tools
次に、新しい環境ステートメントを~/.profile
答え3
export HOME
パス変数を設定した後(~/.bashrcで設定します)