2017-02-05 15 views
0

私のGoプログラムでは、Linux(Debian)上でos.Getenv( "PATH")を呼び出し、その中からプログラムを実行すると、シェルまたはファイルブラウザまたはデスクトップ上の実行可能アイコンをダブルクリックしたとき。シェルとダブルクリック実行可能ファイルの異なるos.Getenv( "PATH")結果

私はそうのようなPATHにバイナリ行く含めるために私の〜/ .profileを編集している:Getting Started囲碁instrutionsが提案されているよう

export PATH=$PATH:/usr/local/go/bin

私はそれが出力シェルから私のos.Getenv(「PATH」)プログラムを実行します。

:私はそれが出力をダブルクリックして実行可能ファイルでそれを実行したときに

/usr/local/bin:/usr/bin:/bin:/usr/local/go/bin

が、

/usr/local/bin:/usr/bin:/bin

これは、アイコンをダブルクリックすると、profileコマンドで変数が初期化されないことを示しています。 Goプログラムから、追加のディレクトリを含むPATHをどのように取得できますか?

+0

'.profile'を変更してから完全にログアウトしましたか? – JimB

+0

はい、私はログアウトして戻ってきました。私が言ったように、それはターミナルから走っているとき働いています。 – gonutz

答えて

0

あなたが必要とするPATHによって異なります。

プログラムは、実行されたコンテキストから環境変数を取得します。 Goリリースで提供されている実行可能ファイルについて "認識"するように、システムのPATH変数を変更する必要があります。そして、コンパイルされたバイナリファイルをすでに持っている場合は、通常は `usr/local/go/bin 'PATHは必要ありません。

+0

しかし、それは私の質問です。アプリケーションをダブルクリックしたときのコンテキストは何ですか?そして、〜/ .profileにない場合、PATH変数をグローバルに変更するにはどうすればよいですか?私も〜/ .bashrcと/etc/bash.baschrcで既に変更しようとしましたが、うまくいきませんでした。 – gonutz

+0

ダブルクリックしたときに実行するコンテキストについてはわかりません。しかし、/ etc/environmentファイルを変更して、グローバルに変更することができます。 –

+0

私は/ etc/environmentを編集しようとしましたが、動作は変わりません。 – gonutz

関連する問題