it-swarm-ja.com

環境変数が設定されないのはなぜですか?

修正するには、GDK_NATIVE_WINDOWSという環境変数を設定する必要があります buntuのEclipseボタンの問題 。環境変数を設定するために、~/.pam_environmentに次の行を追加しました。

GDK_NATIVE_WINDOWS DEFAULT = true

驚いたことに、端末でecho $GDK_NATIVE_WINDOWSすると、環境変数が設定されません。ただし、~/.pam_environmentにリストした他のすべての環境変数は正しく設定されています。その上、私がttyに切り替えると、例えばAlt+Ctrl+F1、環境変数が正しく設定されます。この環境変数を~/.pam_environmentに設定することの何が問題になっているのか誰かにわかりますか?

4
reprogrammer

〜/ .pam_environmentファイルの単純な「key = value」構文に固執します。 DEFAULT、OVERRIDE、$ {HOME}、何もありません。 key = valueだけです。リンクしたmanページはpam_env.conf専用です。他に何も約束しない「man8pam_env」を参照してください。「このモジュールは、別々の行にある単純なKEY = VALペアを持つファイルを解析することもできます。」.

ちなみに、PATH = $ {PATH}:more/pathsのようなものを./pam_environmentに置くことは、PATHが$ {PATH}:more/pathに設定されるため、ほとんどすべてのログイン試行を中断するための優れた方法です文字通り(そこにはあまりありません)。救助するには、「/ bin/mv .pam_environmentout_of_the_way」と再ログインします。

3

ご確認のとおり、環境変数は https://help.ubuntu.com/community/EnvironmentVariables で推奨されているように~/.pam_environmentに設定する必要があります。言うのは簡単です;)

あなたが私のために存在したのと同じ構成のギャップに遭遇した可能性があります。以下の暗号化されたホームの回避策を参照してください。

私の~/.pam_environment

PATH            DEFAULT=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:${HOME}/bin
IDEA_JDK        DEFAULT=${HOME}/Applications/jdk

なぜ醜い静的パス? ${PATH}は私にはうまくいきません。私はそれを回避しようとしてログインを数回ブリックしたので、デフォルトの醜い静的コピーに固執しています:)

暗号化されたホームフォルダの回避策

Precise 12.04 Beta 2までのUbuntuリリースでは、暗号化されたホームディレクトリを使用している場合は、/etc/pam.d/common-sessionを変更して~/.pam_environmentをロードする必要があります。このソリューションは以前のリリースでも機能するようですが、私はテストしていません。

Guenther Montag(g-montag)は2010-08-19に書き込みました:

これは、暗号化されたホームディレクトリの問題のようです。追加した

セッションが必要ですpam_env.so

/etc/pam.d/common-sessionの終わりに、〜/ .pam_environmentが読み取られます。暗号化されたホームディレクトリがない別のシステム(これも10.04)では、回避策は必要ありません。おそらく私の場合、システムは復号化される前に〜/ .pam_environmentを読み取ろうとします。

3
Alain O'Dea

GDK_NATIVE_WINDOWSとDEFAULT = trueの間にスペースがあります。これは、リンクした例とは異なります。

試してみてください:

GDK_NATIVE_WINDOWS = true

1
kmarsh

これは、ターミナルを起動したときにログインセッションを開始していないためだと思います。これはターミナルセッションであり、さまざまなルールで機能します。私は実際に違いと区別する必要性を得たことはありませんが、特定の理由でpamを使用するように提案されていない限り、いずれにせよ、同じ結果を達成するために〜/ .bash_profileおよび/または〜/ .bashrcを使用することをお勧めします。

0
Stefano Borini