🎄teratailクリスマスプレゼントキャンペーン2024🎄』開催中!

\teratail特別グッズやAmazonギフトカード最大2,000円分が当たる!/

詳細はこちら
Go

Go(golang)は、Googleで開発されたオープンソースのプログラミング言語です。

Q&A

解決済

2回答

472閲覧

go言語のGOPATH

rrh

総合スコア15

Go

Go(golang)は、Googleで開発されたオープンソースのプログラミング言語です。

0グッド

0クリップ

投稿2019/11/15 03:22

Go言語の環境変数GOPATHについての質問です。

GoをインストールしてGoファイルを実行する時、
自分でGOPATHをexportしなくてもgo envコマンドで見るとGOPATHが設定されています。

しかしecho $GOPATHで環境変数の値を見ようとすると何も表示されません。

これはなぜでしょうか?
自分の認識ではGOPATHは環境変数で、自分で設定する必要があり、go envも設定されている環境変数を表示するコマンドだと思っていたのですが、
go envで表示されるGOPATHとechoやexportで見たり設定する環境変数のGOPATHは別物なのでしょうか?

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

Go 言語の環境変数管理 — プログラミング言語 Go | text.Baldanders.info

プログラミング言語Go (ADDISON-WESLEY PROFESSIONAL COMPUTING SERIES)

Alan A.A. Donovan (著), Brian W. Kernighan (著), 柴田 芳樹 (翻訳)
丸善出版 2016-06-20
単行本(ソフトカバー)
4621300253 (ASIN), 9784621300251 (EAN), 4621300253 (ISBN), 9784621300251 (ISBN)

参考図書として上記書籍が挙げられていますが、このサイトには次のように書いてあります。

環境変数設定の置き場所

go env -w コマンドで設定した環境変数の値は GOENV で指示されるファイルに格納される。 GOENV の既定値は以下の通り(Linux/Ubuntu の場合)。

$ go env GOENV

/home/username/.config/go/env

要するに /home/username/.config/go/env というテキストファイルに環境設定が書かれていて、それを環境変数で上書きできるということのようです。

shell 側の設定のほうが優先されるようだ。 一時的な変更の場合は shell 側の環境変数を使えということやね。

つまり質問の

go envで表示されるGOPATHとechoやexportで見たり設定する環境変数のGOPATHは別物なのでしょうか?

は、環境変数が無ければ別物で、テキストファイルに書かれており、あれば同じものということになります。

投稿2019/11/17 14:26

Zuishin

総合スコア28669

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

ベストアンサー

最終的にはgo envの値がGo処理系で使われる値です。
環境変数で上書きができるだけです。

投稿2019/11/15 03:30

nobonobo

総合スコア3367

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

rrh

2019/11/15 03:53

ご回答ありがとうございます。 環境変数を使って上書きができるということは、GOPATHは厳密に言えば環境変数ではないということでしょうか?
nobonobo

2019/11/15 04:28

go envのそれぞれの値は初期値を持っています。それを同名の環境変数があれば上書きするだけです。
退会済みユーザー

退会済みユーザー

2019/11/15 05:39 編集

ちょっとだけ横から失礼します。 ↓の提案が採用されるまでは、質問者さんのおっしゃるとおり環境変数に設定してね!という決まりでした。 https://github.com/golang/go/issues/17262 今はこれが通って、デフォルト値は$HOME/goになった。 でもって、nobonoboさんのおっしゃることも昔からそうと言えばそうです。
rrh

2019/11/17 16:03

なるほど、理解できました! 皆さんご回答ありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.36%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問