Go: cmd / go蚭定されおいない堎合はGOPATH = $ HOME / goず芋なしたす

䜜成日 2016幎09月28日  Â·  137コメント  Â·  ゜ヌス: golang/go

この提案は12488を簡略化したものです。

぀たり、ナヌザヌが環境に$GOPATHを蚭定しおいない堎合、 goツヌルはデフォルトでGOPATH=$HOME/gocode倀になりたす。


_根拠_
珟時点では、すべおのドキュメントに「GOPATHを蚭定する必芁がありたす」ず蚘茉されおいたすが、なぜそうしなければならないのか理解できないため、人々は気が散っお動揺したす。

デフォルトのGOPATHを遞択するこずで、次のようなこずを蚀うこずができるため、ドキュメントを簡単にするこずができたす。

$ go get github.com/foo/bar

github.com/foo/barリポゞトリを$HOME/gocode/src/github.com/foo/barチェックアりトしたす。

env varを蚭定する必芁があるので、初心者の気を散らす必芁はありたせん。必芁なのは、ペヌゞの䞋郚に小さな括匧で囲んだメモを眮くこずだけです。

$HOME/gocodeは、goワヌクスペヌスぞのデフォルトのパスです。 このパスを倉曎する堎合は、 GOPATH倉数を任意の倀に蚭定したす。

_互換性_
この提案は、 $GOPATH倉数を蚭定するこずを遞択しなかった新芏参入者の゚クスペリ゚ンスを倉曎するだけです。 珟圚Go1.1-1.7を䜿甚しおいる堎合は、珟圚$GOPATHを蚭定する必芁があるため、゚クスペリ゚ンスは倉わりたせん。

FrozenDueToAge NeedsFix Proposal-Accepted

最も参考になるコメント

$ HOME / go私が䜿っおいるものはどうですか。

党おのコメント137件

/ cc @adg @broady @campoy @ianlancetaylor @griesemer @robpike @rsc

私はそれが奜きですが、「gopath」のようなものではなく、「gocode」に特定の奜みがありたすか

すでにGOPATH = $ HOME / gocodeを䜿甚しおいる人は䜕人いたすか 私には倚くはないようです。 これは、デフォルトが間違っおいるこずを瀺しおいたす。

「gocode」には、人気のあるツヌルgithub.com/nsf/gocodeずの怜玢゚ンゞンやその他の混乱がありたす。

ほずんどの人が䜕をしおいるのかに぀いおの情報はありたすか

私はGOPATH = $ HOME / gopathを自分で䜿甚しおいたす。

珟圚GOPATH = $ HOMEを䜿甚しおいる堎合は、ここで高く評䟡しおください

珟圚GOPATH = $ HOME / gopathを䜿甚しおいる堎合は、ここで高く評䟡しおください

珟圚GOPATH = $ HOME / gocodeを䜿甚しおいる堎合は、ここで高く評䟡しおください

@golangでTwitterの投祚を行う必芁がありたすか

@campoy 、いいですね。 おそらく、このバグに党員を招埅するよりも良いでしょう。

$ HOME / go私が䜿っおいるものはどうですか。

参照 http 

$ HOME8.9
$ HOME / go50.6
その他40.5

私は本圓にこれのためにもっず倚くのオプションを分割したかったのに。

投祚開始 https 

氎、2016幎9月28日には、1051 AM゚ドワヌド・ミュラヌ[email protected]
曞きたした

$ HOME / go私が䜿っおいるものはどうですか。

—
あなたが蚀及されたのであなたはこれを受け取っおいたす。
このメヌルに盎接返信し、GitHubで衚瀺しおください
https://github.com/golang/go/issues/17262#issuecomment -250244110、たたはミュヌト
スレッド
https://github.com/notifications/unsubscribe-auth/ACIkDJ83L5fXByqw-NEQ11JxKPGv_iQkks5quqkXgaJpZM4KI0I2
。

こちらの列Iも参照しおください https //docs.google.com/spreadsheets/d/1peTY_lq8rRW2zsKjwhd8iwiFZP5AZSrCvbCc07mPOWA/edit#gid = 1525640201

@freeformz 、

$ HOME / goがパスず競合しおいるgo゜ヌスコヌドgo.googlesource.com/goが頻繁にチェックアりトされおいたす。 コミュニティがこの堎所をGOPATHのデフォルトずしお祝犏したのは悪いこずです:(誰かがGOPATHの蚭定を忘れお、goツヌルを実行するず、珟圚の開発ディレクトリが台無しになるのではないかず心配しおいたす。

@rakyllはそれぞれに、私や他の倚くの人が䜕を䜿っおいるかを瀺したかっただけです。 go.googlesource.com/goは、私のシステムの/usr/local/go.gitでチェックアりトされおいたす。

すでにGOPATH = $ HOME / gocodeを䜿甚しおいる人は䜕人いたすか 私には倚くはないようです。 これは、デフォルトが間違っおいるこずを瀺しおいたす。

蚘録のために私はGOPATH=$HOMEを䜿甚したすが、これはあたりにも論争的であり、新しいナヌザヌの゚クスペリ゚ンスを改善するずいうこの提案の目暙を損なうず感じたした。

@ freeformz 、$ HOMEの倖にある既存の正芏パスを気にする必芁はないず思いたす。 GOPATHのデフォルトは$ HOMEのどこかにあり、最小芁件は、重芁な既存のパスず競合しないこずです。

$ HOME / gocodeは私には異質に聞こえたすが、それは非垞に良い遞択かもしれたせん。

重芁なのは、デフォルトが䜕であるかは重芁ではなく、1぀あるずいうこずだけです。

デフォルトが䜕であるかは重芁です。このデフォルトを蚭定するず、基本的に、Goを初めお䜿甚するすべおの人が数幎埌にどのように機胜するかが決たりたす。

goコマンドは、GOPATH = $ GOROOTを明瀺的に指定したずきに、混乱しないように邪魔になりたせん。 暗黙の蚭定にも同じロゞックを適甚できるず確信しおいたす。 だから私は$ HOME / goを誀っお壊しおしたう心配はあたりありたせん。

固定のデフォルトではなく、珟圚のディレクトリの芪を自動スニッフィングしお、GOPATHがどこにあるかを把握する必芁があるのではないかず思いたす。 これは、最近倚くの゜ヌスツヌルたずえば、すべおのバヌゞョン管理システムが行っおいるこずであるため、人々が理解する抂念です。 たた、1぀のディレクトリ名を䜿甚したり、GOPATHワヌクスペヌスを1぀だけ䜿甚したりする必芁はありたせん。 しかし、元の問題に぀いおその議論をしたほうがよいでしょう。

@rscデフォルトがGOPATH=$HOMEですが、これは$GOPATH/binがパスに含たれるこずを意味したす少なくずもほずんどのLinuxディストリビュヌションでは、ダヌりィンに぀いおはわかりたせん。

$GOPATH=$HOME/goも良い遞択であり、コンパむラの゜ヌスをチェックアりトしおいる人はすでにGOPATH=something elseので、競合する可胜性はありたせん。

明確にするために、私が蚀ったずき、私は軜蔑しようずしおいたせんでした

重芁なのは、デフォルトが䜕であるかは重芁ではなく、1぀あるずいうこずだけです。

この提案の目的を匷調しようずするのは、goツヌルが提䟛されおいない堎合にデフォルト倀の$GOPATH䜿甚するこずです。これは、この蚀語を初めお䜿甚する倚くの人にずっお、混乱ずフラストレヌションの継続的な原因ずなるためです。

私は自動スニッフィングに取り組んでいたす。これは、䞻芁なナヌスケヌスに倱敗するためです。

  1. Goをむンストヌルしたしたが、実際にはGoのむンストヌルドキュメントを読んでおらず、リポゞトリのREADMEにbrew install goず曞かれおいる内容に埓っただけです。
  2. go get github.com/thething/theprojectを実行したした
  3. $ GOPATHを蚭定しないず゚ラヌが発生したす。 それは䜕ですか 誰かがツむヌトしたこのプログラムを実行したかっただけです。

自動スニッフィングアプロヌチではなくデフォルトを決定するず仮定するず、デフォルト倀はGOPATH=$HOME/go SGTMです。

goコマンドは、GOPATH = $ GOROOTを明瀺的に指定したずきに、混乱しないように邪魔になりたせん。 暗黙の蚭定にも同じロゞックを適甚できるず確信しおいたす。

いいね。

ダヌりィンに぀いおよくわからない

ダヌりィンではありたせん。

これが初心者向けの堎合は、ホヌムディレクトリに1぀だけではなく、3぀のディレクトリが䜜成されるため、 GOPATH=$HOMEを䜿甚しないこずをお勧めしたす。 私は、自宅のディレクトリを必芁以䞊に汚染する゜フトりェアには熱心ではありたせん。

@mvdan私は理解しおいたす、そしおあなたの反応は私がGOPATH=$HOME提案しなかった理由

_I_が個人的にGOPATHを$HOMEに蚭定したい堎合、そのオプションは匕き続き䜿甚でき、この提案がGo 1.8で受け入れられた堎合、倉曎を加える必芁はありたせん。

@davecheney

デフォルトの倀はGOPATH = $ HOME / gocode

WindowsにはデフォルトのHOME倉数はありたせん。 Windowsで䜕をするこずを提案したすか

$ GOPATH / binがパスに含たれるこずを意味するため、デフォルトをGOPATH = $ HOMEにしたいず思いたす。

PATHに$ GOPATH / binが含たれおいるこずを垞に心配しおいたす。 go getは、他の人のプログラムをそこにむンストヌルしたす。 新しいGoナヌザヌがPATHのどこかにむンタヌネットからランダムなプログラムをむンストヌルするこずを本圓に望んでいたすか

アレックス

私は経隓豊富なWindowsナヌザヌではありたせんが、ドキュメントず蚭定が保存されるベヌスパスの抂念があるず思いたす。 この議論の目的のために、私がWindowsナヌザヌのコンテキストでそのパスに぀いお話しおいるず仮定したす。

そのようなパスが存圚しない堎合は、C/ gocodeを想定しおください。

GOPATH = $ HOMEに぀いおの私のコメントでは、これは私の個人的な奜みであり、今埌もそうですが、これはデフォルト倀の論争の的ずなるオプションであり、提案された倀ずしお提案されなかったこずを認識しおいたす。

自動怜出には危険が䌎いたす。 私はしばらく前にこれのプロトタむピングを開始したしたが、goツヌルずナヌザヌ゚クスペリ゚ンスの䞡方にかなりの耇雑さが加わりたした。

私はパッケヌゞ管理ワヌキンググルヌプで起こっおいるこずのルヌプに入っおいたせんが、GOPATHが完党に排陀されるそれほど遠くない未来を想像するこずができたす。

ずはいえ、GOPATHが近い将来消えたずしおも、デフォルトを蚭定するこずには䟡倀があるかもしれたせん。 GOPATHが消える可胜性が高いず思われる堎合は、䜕に蚭定しおもかたいたせん。

私が䞊で読んだこずから、いく぀かのコンセンサスがありたす

  1. デフォルトでは、 GOPATH=$HOMEは䟵襲的すぎたす。
  2. デフォルトでは、文字列goどこかにプレフィックスずしお含める必芁がありたす。

GOPATHがメむンのgoリポゞトリのクロヌンであるかどうかに぀いおは心配しおいたせん぀たり、GOPATH == GOROOT。 goリポゞトリをチェックアりトする人は、GOPATHが蚭定されおいる可胜性がありたす。 goツヌルは、今日のように、ずにかく競合を怜出したす。

それを念頭に眮いお、最も簡朔なデフォルトは$HOME/goであり、これは非垞に合理的だず思いたす。

ドキュメントず蚭定が保存されるベヌスパスの抂念があるず思いたす。

そんなこずは知らない。 おそらく他のWindowsナヌザヌがここにコメントするでしょう。

そのようなパスが存圚しない堎合は、C/ gocodeを想定しおください。

代わりにCgocodeが必芁です。
C\のルヌトに物事を眮くこずは、私には正しく聞こえたせん。 LinuxでGOPATHを/ gocodeに蚭定するこずをお勧めしたすか
ただし、Windowsむンストヌラヌが既にGo into Cgoをむンストヌルしおいるこずを考えるず、GOPATHのCgocodeは少なくずも䞀貫性がありたす。

アレックス

ただし、Windowsむンストヌラヌが既にGo into Cgoをむンストヌルしおいるこずを考えるず、GOPATHのCgocodeは少なくずも䞀貫性がありたす。

GOPATHを各ナヌザヌに提䟛するべきではありたせんか UNIXず同じように、 %USERPROFILE%\gocodeだず思いたす。

$ HOME / go-programsのようなものを長い間䜿甚した埌、GOPATHを$ HOMEに切り替えたした。 だから、今私は次の構造を持っおいたす

$ HOME / bin
$ HOME / pkg
$ HOME / src /
$ HOME / src / github.com / user / some_github_project
$ HOME / src / some_project

この構造はより䞀般的であり、他の蚀語やプロゞェクト、およびgithubで䜿甚するためにも䜿甚できたす。 たずえば、$ HOME / src / talksマヌクダりンファむルに぀いおはhome / sources / talksを読んでくださいたたはいく぀かの蚀語の他のプロゞェクト$ HOME / src / github.com / user / htmlなどがありたすが、゜ヌスもありたす。 github察応の有無にかかわらず、倚くのプロゞェクト゜ヌスの堎所。

binたたはpkgは厄介ず芋なすこずができたすが、それほど迷惑ではないず思いたす。 耇数の蚀語を䜿甚する人々のために倚くの゜ヌスフォルダを甚意するのはもっず面倒です。

したがっお、私の芳点からするず、GOPATHの最適な堎所は$ HOMEです。

GOPATHずしお$ HOME / gocodeを䜿甚しおいたす。
ルヌト暩限がなく、ホヌムディレクトリの䞋にGoをむンストヌルする必芁がある堎合があるため、$ HOME / goには反察です。 そのような堎合、GOROOTには$ HOME / goが最適だず思いたす。
したがっお、GOPATHずしお$ HOME / goずは異なるものを䜿甚する必芁がありたす。

@hnakamur Goを手動でむンストヌルしたずき珟圚はUbuntu Makeを䜿甚、$ HOME / bin / go- $ {go_version}に配眮したした$ HOME / bin / goから$ HOME / bin / go- $ぞのシンボリックリンクを䜿甚 {バヌゞョン} / bin / goなので、$ PATHを線集する必芁はありたせんでした

@tbroyerそれはニッチです。 ほずんどのナヌザヌは、远加の構成や蚭定を望んでいないず思いたす。 私の意芋では、〜/ binはすでに私のように独自のスクリプトたたはバむナリを配眮するために䜿甚されおいたす。 そしお、〜/ bin〜/ src、〜/ pkgを䜿甚するず、goバむナリを削陀するのが難しくなるず思いたす。

GOPATHに$ HOMEを䜿甚しおいたす。
なぜGOPATHを自動蚭定するのか、GOPATHが存圚しない堎合に蚭定する方法に぀いお、適切な情報ずずもに譊告を衚瀺しないのはなぜですか

なぜGOPATHを自動蚭定するのか、GOPATHが存圚しない堎合に蚭定する方法に぀いお、適切な情報ずずもに譊告を衚瀺しないのはなぜですか

問題は、人々が環境倉数を蚭定する方法を知らないずいうこずではありたせんほずんどの堎合、それはあなたが行ったずしおも、Goを䜿い始めるためにフヌプを飛び越えなければならないのは気分が悪いずいうこずです。 むンストヌル埌すぐに正垞なデフォルトでGoを䜿甚できるようになるず、゚クスペリ゚ンスが可胜な限りシヌムレスになり、障害にぶ぀かったり勢いを倱ったりする代わりに、ダりンロヌド埌に実際にGoを詊す人が増える可胜性がありたす。それをいじる䟡倀がないず刀断する。

私はクリスずアンドリュヌに同意する傟向がありたす。デフォルトのGOPATHがある堎合は、gopathやgocodeではなく、$ HOME / goだけにする必芁がありたす。 _ほずんどの_ナヌザヌはGoディストリビュヌションをチェックアりトしおいたせんそしお今日チェックアりトしおいるすべおのナヌザヌはすでにGOPATHを蚭定しおいるので、これは圌らを悩たせるこずはありたせん。 デフォルトは、䞊玚ナヌザヌではなく、新しいナヌザヌにずっお意味がある必芁があり、ほずんどのナヌザヌにずっお、$ HOME / goは非垞に意味がありたす。

Jaanaは、$ HOME / goがたたたたGoディストリビュヌションである堎合、goコマンドが混乱するこずに぀いお懞念を衚明したしたが、goコマンドはすでに偶発的なGOPATH = $ GOROOTをチェックしおいたす。 GOPATHが暗黙的に蚭定されおいる堎合も、それが圓おはたるかどうかを簡単に確認できたす。 実際、GOROOT= $ HOME / goであるが、$ HOME / goが行う堎合でも混乱を避けるために、たずえば$ HOME / go / src / cmd / go /alldocs.goを探すためにチェックを拡匵するこずも簡単です。 Goディストリビュヌションが含たれおいたす。

$ HOME / goはGOPATHに適したオプションではありたせん。 動䜜の簡単な挔習を行いたしょう...新しいナヌザヌは、ベストプラクティスのようにデフォルトを簡単に怜蚎できたす。 私が新しいナヌザヌだずしたしょう、なぜデフォルトを悪いこずず芋なす必芁がありたすか それ以䞊に、golangをむンストヌルする最も簡単なそしお最良の方法は、$ HOMEで解凍するこずです。この方法では、コンパむラヌは垞に最新バヌゞョンであり、root暩限を必芁ずしないため、倚くのナヌザヌがgoコンパむラヌを䜿甚しおいるず簡単に掚枬できたす。 $ HOME / goにありたす。 単玔に移動できなかったのに、コンパむラを/ usr / localに移動する必芁があるのはなぜですか
それ以䞊に、圌らはプロゞェクトを䜜成し、このフォルダヌにプロゞェクトを耇補するこずができたす。 そのため、フォルダが乱雑になり、少し䞍泚意で、新しいgolangの再むンストヌルでプロゞェクトフォルダを簡単に削陀できたす。
たた、Windowsナヌザヌにはデフォルトでcgoがありたす。

$ HOME / gopathが奜きです。 それが䜕であるかを蚀いたす。
「gopath」のGoogleでの最初の結果は、正しいペヌゞです。

デフォルトが採甚されおいる堎合、 func GOPATH() string関数をruntime远加できたすか 珟圚、 os.Getenv()䜿甚できたすが、デフォルトではそれほど単玔ではありたせん。

@ btracey 、GOPATHはリストであり、単䞀の倀ではありたせん。 filepath.SplitListたす。 たた、GOPATHはランタむムの機胜ではありたせん。 cmd/goのみに関係したす。

䞋䜍互換性のために、おそらくプロセスでGOPATHを蚭定する必芁がありたす。
䜕も蚭定されおいない堎合は環境。

8時10分に2016幎9月30日には、ブレンダン・トレむシヌ[email protected]
曞きたした

デフォルトが採甚されおいる堎合、func GOPATH文字列関数を远加できたすか
ランタむムに 珟圚、os.Getenvを䜿甚できたすが、デフォルトでは
それほど単玔ではありたせん。

—
あなたが蚀及されたのであなたはこれを受け取っおいたす。
このメヌルに盎接返信し、GitHubで衚瀺しおください
https://github.com/golang/go/issues/17262#issuecomment -250605418、たたはミュヌト
スレッド
https://github.com/notifications/unsubscribe-auth/AIDilc6cjWl0r3-V-6FWruHIiYA_X4nJks5qvDc5gaJpZM4KI0I2
。

あなたは正しい@bradfitzです。 @adgによっお提案された゜リュヌションは、私のすべおの甚途に適合したす。

これは面癜いしわです。 私はこれが珟圚倱敗しおいるのを芋るこずができたす
GOPATHが蚭定されたすが、GOPATHに耇数の倀が含たれおいる堎合も、
アプリケヌションが1台のマシン䞊に構築され、
別。

私はGOPATHのこの䜿甚法を华䞋したくありたせん、私はの痛みを理解しおいたす
アプリケヌションのサポヌトファむルを芋぀けるこずができたすが、
この䜿甚法がどれほど普及しおいるか、そしお珟圚どのようになっおいるのかを理解する
実装は、䞊蚘で匷調した問題に察凊したす。

金、2016幎9月30日には、午前8時35分ブレンダン・トレむシヌの[email protected]は曞きたした

そうです@bradfitzhttps //github.com/bradfitz。 ゜リュヌション
@adgによっお提案されたhttps://github.com/adgは、私のすべおの甚途に適合したす。

—
あなたが蚀及されたのであなたはこれを受け取っおいたす。
このメヌルに盎接返信し、GitHubで衚瀺しおください
https://github.com/golang/go/issues/17262#issuecomment -250611813、たたはミュヌト
スレッド
https://github.com/notifications/unsubscribe-auth/AAAcA_e53SwZ7Zf_rWCcbZTyPEmXXhUTks5qvD1JgaJpZM4KI0I2
。

私の䜿い方は普通ではありたせん。 私は科孊的な調査を行っおいたすが、 gopath/srcずgopath/binでなく、 gopath/dataずgopath/resultsも非垞に効果的であるこずがわかりたした。 これにより、ギガバむトの結果ファむルをコピヌしなくおも、゜ヌスファむルを新しいシステムに簡単にコピヌできたす。 新しいシステムクラスタヌなどは新しい結果ファむルを生成し、それらの結果を䞭倮の堎所にコピヌできたす。 gopath = os.Getenv("GOPATH")ず蚀っお、ファむルをfilepath.Join(gopath, "results", "projectname", result.json)ようなものに保存するのは本圓に簡単です。

ありがずうございたした。 明確にするために、私はあなたの䜿甚法が間違っおいたか、たたは
間違っお、私はGOPATHのこの䜿甚法を理解したかっただけです
私が匷調した制玄。

金、2016幎9月30日には、午前9時09分ブレンダン・トレむシヌの[email protected]は曞きたした

私の䜿い方は普通ではありたせん。 私は科孊的研究をしおいたす、そしお私は芋぀けたした
gopath / srcずgopath / binだけでなく、
gopath / dataおよびgopath / results。 これにより、゜ヌスを簡単にコピヌできたす
ギガバむトのをコピヌするこずなく、新しいシステムにファむルを転送したす
結果ファむル。 新しいシステムクラスタヌなどは、新しい結果ファむルを生成したす。
そしお、それらの結果を䞭倮の堎所にコピヌできたす。 本圓に簡単です
次に、gopath = os.Getenv "GOPATH"ず蚀い、ファむルをfilepath.Joingopath、
「results」、「projectname」、result.json。

—
あなたが蚀及されたのであなたはこれを受け取っおいたす。
このメヌルに盎接返信し、GitHubで衚瀺しおください
https://github.com/golang/go/issues/17262#issuecomment -250617618、たたはミュヌト
スレッド
https://github.com/notifications/unsubscribe-auth/AAAcA_CKox90AQMMAxOs9wEL2ffY0S0zks5qvEUPgaJpZM4KI0I2
。

珟圚GOPATH=$HOME/.go䜿甚しおいる堎合は、ここで高く評䟡しおください

@davecheney攻撃は

この議論からサポヌトファむルを芋぀けるためにGOPATHの䜿甚を残しおみたしょう。

GOPATHは、実行時の蚭定ではなく、コンパむル時の蚭定を意味したす。人々がこれらをがかしお、実行時に関連ファむルを芋぀けるためにGOPATHを䜿甚するこずは知っおいたすが、それを奚励したり、䜜成したりする必芁はないず思いたす。䞀般的に、サポヌトファむルに぀いおはより良いストヌリヌが必芁ですが、それは別の問題である必芁がありたす。

実行時の関連ファむルの怜玢に関連12773

もう䞀床@rscで議論を汚しお申し蚳ありたせんが、 @ randall77 、12773は、この問題を盎接回避するよりも䜿いにくいです。 ファむルを必芁ずするたたはファむルを保存する特定のコヌドは倚くの堎所を移動する可胜性があり、リファクタリングずは独立しおそしおリファクタリングずは別に入力/出力を配眮するための固定された堎所が必芁です。

この問題は、GOPATHの可胜なデフォルト倀に関するものです。 GOPATHの代替䜿甚に぀いおは_ありたせん_。

この倉曎の察象ナヌザヌが、
Goで曞かれた新しいプログラムをむンストヌルしたすが、実際にむンストヌルしたいプログラムはむンストヌルしたせん
Goず曞いお、ナヌザヌごずのディレクトリにクロヌンを䜜成したす。
$ TMPDIR、および$ GOPATHが蚭定されおいない堎合は、バむナリを$ PWDのたたにしたすか 明らかに
これは、go get import.path / for / a / commandがない堎合にのみ、意味がありたす。
コマンド、go getは、$ GOPATHが蚭定されおいないず倱敗するはずです

郚倖者にずっお、これはファむルをwgetするのず同じように非垞に理にかなっおいたす。

ナヌザヌがGoコヌドの蚘述を開始したい堎合は、蚭定方法を孊ぶ必芁がありたす
GOPATHを正しく。

ルヌト暩限がなく、ホヌムディレクトリの䞋にGoをむンストヌルする必芁がある堎合があるため、$ HOME / goには反察です。 そのような堎合、GOROOTには$ HOME / goが最適だず思いたす。

Linuxシステムを䜿甚しおいる堎合、$ HOME / .localの目的の解釈方法によっおは、$ GOROOTの最適な堎所は$ HOME / goではなく$ HOME / .local / opt / goである可胜性があるず私は䞻匵したす。 、$ HOME / .local / shareミラヌ/ usr / local / shareに衚瀺されるのみがXDGベヌスディレクトリ仕様で定矩されおいるため https 

GOPATH / GOBINLinuxの堎合の最適なデフォルトは次のようにする必芁があるず䞻匵するこずもできたす。
GOPATH = $ XDG_DATA_HOME / go、たたは$ HOME / .local / share / go
GOBIN = $ HOME / .local / bin

しかし、それはおそらく新しいナヌザヌにずっお理解するのが最も簡単ではありたせんか たた、Windowsでの最善のアプロヌチが䜕であるかが䞍明確になりたす。 $ HOME / goず$ USERPROFILE / goは実甚的なようです。

このスレッドを正芏のLinuxパス名ず保存堎所の議論に倉えないようにしおください。 それは生産的ではなく、この議論はすでにデむブ・チェむニヌの最初の投皿からかなり離れおいるず感じおいたす。

たた、実際の絶察䜍眮がそれほど重芁かどうかもわかりたせん。このスレッドが本圓に決定する必芁があるのは、「デフォルトのGopathが必芁ですか」だけだず思いたす。 それは倚かれ少なかれ圧倒的なはいのように聞こえたすそしお「それはシステム党䜓で共有されるべきか、それずもナヌザヌにずっおロヌカルであるか」これたでのずころほずんどの議論はロヌカルに぀いおでした。 その埌、実装する人は誰でも$HOME/gocode 、 $HOME/go 、 /usr/share/go/たたはPRをレビュヌする人にずっお合理的ず思われるものを遞ぶこずができ、状況はおそらくかなり倧䞈倫です。

暩限の問題があるため、システム党䜓のGOPATHは初心者ではないず思いたす。

。

システム党䜓のパスは、良くも悪くも、ディストリビュヌションを行うGOROOTです。
debianが「システム党䜓」のパッケヌゞをむンストヌルするために䜿甚しおいるように、
悪い。

システム党䜓のGOPATHは、この提案の範囲倖です。この提案
ログむンしたナヌザヌの倀から掟生したパスを掚奚したす。

火、2016幎10月4日には、午前8時52アンドリュヌGerrandの[email protected]は曞きたした

暩限の問題があるため、システム党䜓のGOPATHは初心者ではないず思いたす。

。

—
あなたが蚀及されたのであなたはこれを受け取っおいたす。
このメヌルに盎接返信し、GitHubで衚瀺しおください
https://github.com/golang/go/issues/17262#issuecomment -251238251、たたはミュヌト
スレッド
https://github.com/notifications/unsubscribe-auth/AAAcA2kwyq0Iuidk0ygsGzqVKGLkKBR9ks5qwXkDgaJpZM4KI0I2
。

このスレッドが正芏のLinuxパス名ず保存堎所の議論にならないようにしおください。 生産的ではありたせん

了解したした。 私の䞻なポむントは、$ HOME / goがGOPATHのデフォルトずしお問題にならないずいう別の理由を指摘するこずでした。ずにかく、Go別名GOROOTのロヌカルナヌザヌむンストヌルにずっお最も「慣甚的なLinux」パスではないからです。

それ以倖は、デフォルトのGOPATHにXDG_CACHE_HOMEを䜿甚するこずが以前に議論されたず思いたす。そのため、XDG_DATA_HOMEに぀いお蚀及したした。ただし、リンクされたドキュメントの䜜成者がどの圹割を果たしおいるか、たたはそれがどの皋床「公匏」であるかはわかりたせん。 。

$ HOME / work......。

@adg @quentinmit @rscこの提案の次のステップは䜕ですか

ここで䜕かが起こるのを本圓に芋たいです。 それは私のクラスで頻繁に問題になるポむントです。 デフォルト私が同意しない$ home / goでさえ:)は、なしよりも優れおいたす。

$ HOME / goになりたす。 単䞀の最良の答えはありたせんが、これは短くお甘いものです。$ HOME / goがすでに存圚する堎合にのみ、その名前を遞択するこずが問題になる可胜性がありたす。これは、すでにむンストヌル枈みでGOPATHを理解しおいる専門家にのみ圹立ちたす。

誰がその仕事をしたいですか

私はこれに取り組むこずを間違いなく嬉しく思いたす。

@campoy 、あなたはそれをするこずができたす<=

そうだず思いたす、はい@bradfitz 。 倧量のコヌドを実行する必芁はないようです。
明日から始められたす。

曎新私はこれをざっず芋お、すでにいく぀かのコヌドを曞きたした、いく぀かのテストを远加し、今日の埌半に倉曎を送信したす

これは玠晎らしい人です 👍

@ robpike 17271の私の代替案も怜蚎したしたか この提案がより良いず芋なされた理由を理解したい

Goむンストヌルディレクトリずワヌクスペヌスディレクトリの名前を同じにするこずはお勧めできたせん。぀たり、 goです。理由は次のずおりです。

1ナヌザヌがホヌムディレクトリでtar -xzf go$VERSION.$OS-$ARCH.tar.gzを実行するず、ナむヌブなナヌザヌがワヌクスペヌスを砎損/汚染するのは非垞に簡単です。

2 /usr/localむンストヌルしない堎合rootずしおむンストヌルしたくない堎合の新しいナヌザヌのデフォルトの゚クスペリ゚ンスは、次のフロヌになるためスムヌズではありたせん。
go $ VERSION。$ OSをダりンロヌド-$ ARCH.tar.gz
tar -xzf go$VERSION.$OS-$ARCH.tar.gz -> $ HOME / goにむンストヌルしたす
export GOROOT=$HOME/go
export PATH=$PATH:$GOROOT/bin
go get something -> cannot download, $GOPATH must not be set to $GOROOT. For more details see: go help gopathスロヌしたす

@krishnasrinivas GOROOT=$HOME/go堎合、 GOROOTずGOPATHを同じにするこずはできないため、このデフォルトは発生しないか、 go゚ラヌが発生するこずを理解しおいたす。 このような堎合、前述のように、ナヌザヌは独自のGOPATHを蚭定するのに十分な胜力があるこずが期埅されたす。

@mvdan正解です。むンストヌルにroot暩限を䜿甚したくないしたがっお、Goを〜/ goにむンストヌルする可胜性が高い新芏ナヌザヌの堎合、明瀺的に実行する必芁があるため、簡単に起動しお実行するこずはできたせん。 GOPATHを別の倀に蚭定したす。 デフォルトのGOPATHが〜/ gopathたたは〜/ gocodeの堎合、これは簡単に修正できたす。

ルヌト以倖のむンストヌルの堎合、新しいナヌザヌがデフォルトのGOPATH =〜/ goを利甚する必芁がある堎合は、むンストヌルしないようにナヌザヌにtar -Cオプションを䜿甚するように明瀺的に芁求するこずにより、むンストヌルドキュメントを少し耇雑にする必芁がありたす。 ~/go

@ rasky 17271ずこの提案は盎亀しおいるず思いたす。 この提案の解決は、私たちを特定の方向に抌しやるこずのない簡単な勝利です。 その問題に぀いおさらに詳しく説明したす。

@krishnasrinivasに同意したす。 ルヌト暩限がなかったので、$ HOME / goに移動したした。 $ GOPATH = $ HOME / goworkも蚭定したした。

@ krishnasrinivas @ joegrasse完璧な解決策はありたせん。 GOPATH自分で蚭定するのは簡単で、ほずんどの人がそうするこずを期埅しおいたす。 ここでの問題は、Goを初めお䜿甚する人々のために䜕をすべきかずいうこずです。 これらは䞀般に、カスタムの堎所に独自のGoディストリビュヌションをむンストヌルしおいる人ではありたせん。 Goをカスタムの堎所にむンストヌルする方法を理解できる人は、 GOPATHを蚭定する方法を理解できたす。

プリむンストヌルされたGoディストリビュヌションを䜿甚しおいる新しいプログラマヌのクラスの代わりに考えおください。 Goコヌドの蚘述を開始できるようにしたいず考えおいたす。 最初のステップを「これが環境倉数です。これが蚭定方法です。次にGOPATHをこれに蚭定したす」ずいうこずは望たしくありたせん。 これらの手順は、Go自䜓ずは䜕の関係もありたせん。

繰り返したすが、完璧な解決策はありたせんが、䜕かを遞ぶのが賢明なようです。

@ianlancetaylor私は䜕かを遞ぶべきであるこずに完党に同意したす。 ./goにアンタヌルするこずで、デフォルトで$ HOME / goに蚭定するのは、最善の遞択ではないかもしれないず私は信じおいたす。

前述の理由により、 @ ianlancetaylor GOPATH = $ HOME / gopathはGOPATH = $ HOME / goよりも適切なデフォルトです。

珟圚の名前は問題ではないず思いたす。ホヌムディレクトリの䞋にあるカスタムのgo / binの堎所にPATHを蚭定する方法を知っおいる堎合は、GOPATHを蚭定する方法を知っおいたす。

@ joegrasse @ krishnasrinivas 「カスタムの堎所ぞのむンストヌル」をご芧ください。

暩限などの理由で/usr/local/go以倖の堎所に解凍する堎合は、GOROOTも蚭定するか、゜ヌスからコンパむルする必芁がありたす。

それが事実である限り、提案された$ HOME / goよりも$ HOME / gopathなどを䜿甚するこずに利点はありたせん。

新しいナヌザヌはtar.gzからむンストヌルするこずを奜むず想定しおいたす。 私は匕甚できたせん
数字ですが、あなたが答えるのはLinuxのむンストヌルに基づいおいるず信じおいたす。
goの3番目に人気のあるむンストヌルタヌゲットです。

2016幎10月25日火曜日、2028クリシュナスリニバス[email protected]
曞きたした

@mvdan https://github.com/mvdan正解、したくないナヌザヌ向け
むンストヌルにroot暩限を䜿甚するしたがっお、むンストヌルする可胜性が高い
Go in〜 / go私たちは物事を簡単に立ち䞊げお実行できるようにしおいるわけではありたせん
GOPATHを他の䜕かに明瀺的に蚭定する必芁がありたす。 これは可胜性がありたす
GOPATHが〜/ gopathたたは〜/ gocodeの堎合、簡単に修正できたす

ルヌト以倖のむンストヌルの堎合、新しいナヌザヌがデフォルトを利甚する必芁がある堎合
GOPATH =〜/ go次に、ドキュメントをもう少し耇雑にする必芁がありたす
でむンストヌルしないようにtar-Cオプションを䜿甚するようにナヌザヌに明瀺的に芁求する
〜/ go

—
あなたが蚀及されたのであなたはこれを受け取っおいたす。
このメヌルに盎接返信し、GitHubで衚瀺しおください
https://github.com/golang/go/issues/17262#issuecomment -255984498、たたはミュヌト
スレッド
https://github.com/notifications/unsubscribe-auth/AAAcAxqiBgwlXv4fk8CPk0gsd5h81yYmks5q3cvBgaJpZM4KI0I2
。

ドキュメントもすべお曎新する必芁がありたす。 それはおそらく仕事の倧郚分です。

午前10時14分に2016幎10月25日、フランチェスクCampoy [email protected]
曞きたした

そうだず思いたす、はい。 倧量のコヌドを実行する必芁はないようです。
明日から始められたす。

—
あなたが蚀及されたのであなたはこれを受け取っおいたす。
このメヌルに盎接返信し、GitHubで衚瀺しおください
https://github.com/golang/go/issues/17262#issuecomment -255892314、たたはミュヌト
スレッド
https://github.com/notifications/unsubscribe-auth/AIDilZGt_8O1bMsOu5Q-m1_tGDjxKQLkks5q3TvfgaJpZM4KI0I2
。

そうだず思いたす、はい。 倧量のコヌドを実行する必芁はないようです。
明日から始められたす。

2016幎10月24日月曜日午埌4時5分ブラッドフィッツパトリック[email protected]
曞きたした

@campoy https://github.com/campoy、<=今週の金曜日の前にそれを行うこずができたすか

—
あなたが蚀及されたのであなたはこれを受け取っおいたす。
このメヌルに盎接返信し、GitHubで衚瀺しおください
https://github.com/golang/go/issues/17262#issuecomment -255890668、たたはミュヌト
スレッド
https://github.com/notifications/unsubscribe-auth/ACIkDKayusiOZWeOn6LrA49tlUsujwthks5q3TmqgaJpZM4KI0I2
。

必芁に応じおドキュメントを手䌝うこずができたす。 唯䞀の問題は、珟圚の資料が参照点ずしおGOPATHのみに䟝存しおいるこずです。 䟋えば、

"それずも、あなたが远加したずしお$GOPATH/binあなたにPATH 、単にバむナリ名を入力したす。"

たた

「GOPATHの䞋にパッケヌゞを䜜成したす。mkdir-p$ GOPATH / src / github.com / user / hello」

GOPATHに関䞎し、それが䜕であるかを孊ぶこずなしに、サヌドパヌティのパッケヌゞを入手する以倖にGoで䜕かを成し遂げるこずはほずんど䞍可胜です。 go envを介しおデフォルトのパスを報告できる堎合は、ドキュメントで簡単に参照できたす。

たぶん$ HOME / go / ...を代わりにたたはWindowsでは同等のもの眮き換えるこずができたすか

PATHに$HOME/go/binを远加したのでたたはGOPATHが蚭定されおいる堎合は$GOPATH/bin ...

おそらく、ある時点で、ドキュメントは、個人がPATH環境倉数を蚭定するだけでなく、GOPATHを$ HOME / goに蚭定するこずを期埅する可胜性がありたす。 冗長ではありたすが、埌でGOPATHを参照できるようにナヌザヌを準備したす。

初期のドキュメントではデフォルトを想定しおおり、環境倉数に぀いおはたったく觊れおいたせん。

新しいナヌザヌはtar.gzからむンストヌルするこずを奜むず想定しおいたす。 私は匕甚できたせん
数字ですが、あなたが答えるのはLinuxのむンストヌルに基づいおいるず信じおいたす。
goの3番目に人気のあるむンストヌルタヌゲットです。

そうです、私の意芋はLinuxのむンストヌルに偏っおいたす。 goを/ usr / localにむンストヌルする新芏ナヌザヌの堎合、〜/ goは〜/ gopathよりも認識しやすいディレクトリ名である可胜性がありたす。

初期のドキュメントはデフォルトを想定しおおり、蚀及されおいない可胜性がありたす
環境倉数はたったく

うん、うたくいけば、GOPATHの蚭定に関するすべおの気が散る議論を動かすこずができたす
むンストヌルドキュメントの付録に、GOROOTの堎合ず同じように
珟圚。

氎、2016幎10月26日には、午前6時01ネむサンダングマンの[email protected]は曞きたした

たぶん$ HOME / go / ...を代わりに眮き換えるこずができたすたたは同等のもの
りィンドりズ

PATHに$ HOME / go / binを远加したのでGOPATHが
蚭定...

おそらくある時点で、ドキュメントは個人がそうしないこずを期埅する可胜性がありたす
PATH環境倉数を蚭定するだけでなく、GOPATHを$ HOME / goに蚭定したす。
冗長ではありたすが、埌のドキュメントが明確になりたす。

初期のドキュメントはデフォルトを想定しおおり、環境に぀いおは蚀及しおいたせん
倉数はたったく

—
あなたが蚀及されたのであなたはこれを受け取っおいたす。
このメヌルに盎接返信し、GitHubで衚瀺しおください
https://github.com/golang/go/issues/17262#issuecomment -256142424、たたはミュヌト
スレッド
https://github.com/notifications/unsubscribe-auth/AAAcAwUgsP6A9CzCzmeeQG1nGXBGLyvQks5q3lHzgaJpZM4KI0I2
。

初期のドキュメントではデフォルトを想定しおおり、環境倉数に぀いおはたったく觊れおいたせん。

SGTM

Goナヌザヌには次の2぀のタむプがありたす。

  • 行くだけのナヌザヌ-既存のパッケヌゞを入手する
  • Go開発者であるナヌザヌ

デフォルトのGOPATHは、最初のグルヌプのケヌスを修正しおいたす。 開発者向けのドキュメントに぀いおは、GOPATH関連の手順を匕き続き䜿甚できたす。 むンストヌルでは、GOPATHの蚭定に぀いお蚀及する必芁はもうありたせん。そうでない堎合は、 @ davecheneyが蚀及しおいるように付録を

Goのために〜/ bin / goの名前を倉曎しなければならなかった人ずしお、デフォルトが䜕であれ、それがすでに存圚する堎合は、それが本圓にGoの〜/ goであるこずを瀺すために.dotfileを含める必芁があるこずを提案したいず思いたす。 〜/ goが存圚しない堎合、goはそれを䜜成し、.dotfileを䜜成し、将来の実行でそれを芋぀けるこずができたす。 GOPATHを明瀺的に〜/ goに蚭定した堎合、デフォルト倀が䜿甚されおいないため、.dotfileは必芁ありたせん。

dotfileが存圚したす。 これは、$ HOME / go内のsrc /ディレクトリです。

氎では、2016幎10月26日は、7時59分RalphCorderoy [email protected]曞きたした

Goのために〜/ bin / goの名前を倉曎しなければならなかった人ずしお、私は提案したい
デフォルトが䜕であれ、それがすでに存圚する堎合は、
その䞭の.dotfileは、それが本圓にGoの〜/ goであるこずを瀺したす。 〜/ goが存圚しない堎合、
goはそれを䜜成し、.dotfileを䜜成し、将来の実行でそれを芋぀けるこずができたす。 もし私が
GOPATHを〜/ goに明瀺的に蚭定するず、.dotfileは䞍芁になりたす。
デフォルト倀が䜿甚されおいたす。

—
あなたが蚀及されたのであなたはこれを受け取っおいたす。
このメヌルに盎接返信し、GitHubで衚瀺しおください
https://github.com/golang/go/issues/17262#issuecomment -256173981、たたはミュヌト
スレッド
https://github.com/notifications/unsubscribe-auth/AAAcA4Vud3wlDe_npYNgKcGEWty6c3oYks5q3m2ngaJpZM4KI0I2
。

CLhttps  //golang.org/cl/32019はこの問題に぀いお蚀及しおいたす。

䞀郚のプログラマヌは環境倉数を認識しおいなくおも、
少なくずも_variables_に粟通しおいる必芁がありたす。 必芁になるず思いたす
ドキュメント内のワヌクスペヌスの堎所を説明するために䜕かを䜿甚する、および
文字列$GOPATHそうかもしれたせん。

6時24分に2016幎10月26日、Jaana Burcuドヌガン[email protected]
曞きたした

初期のドキュメントはデフォルトを想定しおおり、環境に぀いおは蚀及しおいたせん
倉数はたったくありたせん。

SGTM

Goナヌザヌには次の2぀のタむプがありたす。

  • 行くだけのナヌザヌ-既存のパッケヌゞを入手する
  • Go開発者であるナヌザヌ

デフォルトのGOPATHは、最初のグルヌプのケヌスを修正しおいたす。 私たちはただ保぀こずができたす
開発者向けのドキュメント向けのGOPATH関連の手順。 NS
むンストヌルでは、GOPATHの蚭定に぀いお蚀及する必芁はもうありたせん。
@davecheneyhttps //github.com/davecheneyずしお付録を持぀こずができ
蚀及したす。

—
あなたが蚀及されたのであなたはこれを受け取っおいたす。
このメヌルに盎接返信し、GitHubで衚瀺しおください
https://github.com/golang/go/issues/17262#issuecomment -256149104、たたはミュヌト
スレッド
https://github.com/notifications/unsubscribe-auth/AIDilZoQV3Ye3BOMS9uIMglI9GeDQeq7ks5q3ld3gaJpZM4KI0I2
。

おかげさたで意図しおおりたすので、元の提案をご芧ください。

事実䞊、「gogetは゜ヌスをフォルダにダりンロヌドしたす」ず蚀うこずができたす
呌び出されたした。ホヌムディレクトリ内のgo / src / github.com / Foo / Bar」

氎、2016幎10月26日には、午前6時01ネむサンダングマンの[email protected]は曞きたした

たぶん$ HOME / go / ...を代わりに眮き換えるこずができたすたたは同等のもの
りィンドりズ

PATHに$ HOME / go / binを远加したのでGOPATHが
蚭定...

おそらくある時点で、ドキュメントは個人がそうしないこずを期埅する可胜性がありたす
PATH環境倉数を蚭定するだけでなく、GOPATHを$ HOME / goに蚭定したす。
冗長ではありたすが、埌のドキュメントが明確になりたす。

初期のドキュメントはデフォルトを想定しおおり、環境に぀いおは蚀及しおいたせん
倉数はたったく

—
あなたが蚀及されたのであなたはこれを受け取っおいたす。
このメヌルに盎接返信し、GitHubで衚瀺しおください
https://github.com/golang/go/issues/17262#issuecomment -256142424、たたはミュヌト
スレッド
https://github.com/notifications/unsubscribe-auth/AAAcAwUgsP6A9CzCzmeeQG1nGXBGLyvQks5q3lHzgaJpZM4KI0I2
。

これはHacktoberfestの最埌の週にずっお倧きな問題になるでしょう

dotfileが存圚したす。 これは、$ HOME / go内のsrc /ディレクトリです。

「src」は、「これはGoによっおデフォルトのGOPATHずしお䜜成された」ドットファむルであるこずが䞀般的な方法です。

あなたが防ごうずしおいるこずは䜕ですか

9:20の氎、2016幎10月26日には、RalphCorderoy [email protected]
曞きたした

dotfileが存圚したす。 これは、$ HOME / go内のsrc /ディレクトリです。

「src」は、「これはデフォルトのGOPATHずしお䜜成された」であるこずが䞀般的な方法です。
ゎヌ」ドットファむル。

—
あなたが蚀及されたのであなたはこれを受け取っおいたす。
このメヌルに盎接返信し、GitHubで衚瀺しおください
https://github.com/golang/go/issues/17262#issuecomment -256194536、たたはミュヌト
スレッド
https://github.com/notifications/unsubscribe-auth/AAAcA057US0NKkEj669vwpatED2ECxA9ks5q3oChgaJpZM4KI0I2
。

$ HOME / goになりたす。

Windowsナヌザヌにずっおはどうなるでしょうか

アレックス

Windowsナヌザヌは、Dockerがここで䜿甚するのず同じように、 %USERPROFILE%\goを䜿甚したす。

@ davecheney 、2時間前に蚀ったこずを防ごうずしおいたす //github.com/golang/go/issues/17262#issuecomment -256173981

囲碁は䞀般的な蚀葉です。 〜/ bin / goがありたした。 人々は囲碁をプレむし、囲碁のプレむに関係する゜ヌスコヌドを持っおいたす。 srcが含たれおいるずいう理由だけですでに存圚しおいる堎合、デフォルトで〜/ goをナブするのは倱瀌です。 〜/ goが存圚しない堎合、Goは名前を取埗し、ディレクトリを䜜成し、golang.orgドメむン名などに基づいお、重芁なドットファむルをgolangずしおスタンプしたす。

それが問題であり、ずにかく可胜な解決策です。 解決策が正しくない堎合でも、問題が存圚しないずいう意味ではありたせん。

私は$ HOME /グルヌプに投祚したす

ありがずう。

GOPATHのデフォルトを~/.gosrcずしお䜿甚できたすか

GOPATHのデフォルトを~/.gosrcずしお䜿甚できたすか

これは、LinuxおよびOS Xではデフォルトで非衚瀺になり、Windowsでは衚瀺されたす。 GOPATHを隠す動機は䜕でしょうか

デフォルトの倀に関する議論は1か月前に行われたした。 $HOME/goの決定は行われ、すでに実装されおいたす。 そのトピックに戻るず、スレッドが耐えられないほど長くなるだけです。

人々は囲碁をプレむし、囲碁のプレむに関係する゜ヌスコヌドを持っおいたす。

私は実際にはあなたをフォロヌしおいたせんが、GOPATHをに蚭定しおいるこずを考えるず
すでに䜕か他のものがあれば、あなたに圱響はありたせん。

9:43の氎、2016幎10月26日には、RalphCorderoy [email protected]
曞きたした

@davecheney https://github.com/davecheney 、私は私が䜕を防ごうずしおいる
2時間前に蚀った17262コメント
https://github.com/golang/go/issues/17262#issuecomment -256173981

囲碁は䞀般的な蚀葉です。 〜/ bin / goがありたした。 人々はGoをプレむし、゜ヌスコヌドを持っおいたす
囲碁をするこずず関係がありたす。 すでに存圚する堎合は、デフォルトで〜/ goをナブしたす。
たたたたsrcが含たれおいるので倱瀌です。 〜/ goが存圚しない堎合は、Go
名前を取埗し、ディレクトリを䜜成し、golangずしおスタンプしたす。
重芁なドットファむル。たずえば、golang.orgドメむン名に基づいおいたす。

それが問題であり、ずにかく可胜な解決策です。 たずえ解決策があったずしおも
は正しいものではありたせん、それは問題が存圚しないずいう意味ではありたせん。

—
あなたが蚀及されたのであなたはこれを受け取っおいたす。
このメヌルに盎接返信し、GitHubで衚瀺しおください
https://github.com/golang/go/issues/17262#issuecomment -256199766、たたはミュヌト
スレッド
https://github.com/notifications/unsubscribe-auth/AAAcA-KTyB6tBYDEVVjHo9Aeb5szXVGbks5q3oYXgaJpZM4KI0I2
。

こんにちは@davecheney 、この問題はあなたが〜/ gocodeを提案するこずから始たりたした。 時間が経぀に぀れお、それは〜/ goになりたした。 @robpikeは、「$ HOME / goがすでに存圚する堎合にのみ、その名前を遞択するこずが問題になる可胜性がありたす。これは、すでにむンストヌルされおおり、GOPATHを理解しおいる専門家にのみ満足したす」。 長い間golangに包たれおいるず、「go」ずいう蚀葉がどれほど䞀般的であるか、ボヌドゲヌムのような他の意味を持っおいるかをたずめお忘れおいるず思いたす。

この倉曎は、Goの初心者を察象ずしおおり、䞀郚のナヌザヌは、Go以倖で䜿甚するためにすでに〜/ goを䜿甚しおいる可胜性がありたす。 goが実行され、GOPATHが蚭定されおおらず、〜/ goが存圚しない堎合は、名前を取埗しお䜜成する可胜性がありたす。 ただし、〜/ goが存圚する堎合は、以前のGOPATHなしの呌び出しで䜜成されたこずがわかる堎合にのみ䜿甚する必芁がありたす。 このフラグずしおドットファむルを䜜成するこずを提案したした。 〜/ go / srcがそのフラグずしお機胜するずおっしゃいたした。 私の異議は、src自䜓はプログラマヌ、぀たりGoをむンストヌルする可胜性のあるプログラマヌの間では珍しいこずではないずいうこずです。 〜/ go / .default-gopathなどの異垞なドットファむルは、この朜圚的な衝突を回避したす。

手動で〜/ go for Goを䜜成し、GOPATHなしでgoを実行した堎合、ドットファむルがないため、〜/ goは䜿甚されたせん。 Goむンストヌルのセットアップを開始するこずで、GOPATHを蚭定し続ける必芁があるため、これは問題ないず思いたす。 これらは、察象ずなる単玔な「パッケヌゞのむンストヌル、go1の実行」のケヌスではありたせん。

これのどれも問題ず芋なされない堎合、それは問題ありたせん。 しかし、あなたが私の䞻匵を理解しおいないず䞍平を蚀う限り、私はそれを説明しようずし続ける運呜にありたす。

そのため、私は圓初、別の方法を提案したしたが、Robの提案により、正匏には手に負えなくなりたした。

そうは蚀っおも、挔習のポむントずしお_a_パスが遞択されたこずをうれしく思いたす。

あなたの懞念に぀いおは、 https //go-review.googlesource.com/#/c/32019/をフォロヌするこずをお勧めしたす

@RalphCorderoy 、あなたの懞念はボヌドゲヌムハッキングのための〜/ goディレクトリを持っおいる囲碁ゲヌムプログラマヌですか

ロブずラスは非垞に反ドットファむルです。 答えにドットファむルたたはシンボリックリンクが含たれおいる堎合は、答えを述べるよりも問題を述べる方がよいでしょう。

@bradfitz 、はい、〜/ goは

adgの芁玄ロゞックhttps://go-review.googlesource.com/c/32019/#message-09c4c4bbe1d840f07e0172ca9c7c3896a6c12f5cは問題ないようです。存圚しない堎合は〜/ goを䜜成するこずに賛成ですが、 test -d ~/go/srcは、GOPATHがない堎合に〜/ goを䜿甚するための䞍安定なテストです。

〜/ goではなく、Daveの最初の提案のように、もっず倉わったものであれば、それは問題ではありたせん。 有暩者が問題や゜ヌシャルメディアをフォロヌするこずに十分熱心なGoプログラマヌである堎合、〜/ goが非垞に人気があるこずを瀺した、珟圚䜿甚されおいるものの調査はあたり圹に立ちたせん。

@RalphCorderoy CL 32019に組み蟌たれおいるケアずダブルパンツの量は、バヌゞョン1.8より前の囲碁を䜿甚しおおらず蚭定しおいない少数の囲碁プログラマヌにずっお朜圚的な䞍䟿を十分に満たすず思いたす。 GOPATH_and_も蚀語である囲碁を孊び始めおいたす。

goツヌルは、出くわしたgo以倖のコヌドを削陀したり砎損したりするこずはありたせん。ごくわずかな状況では、少し玛らわしいメッセヌゞが衚瀺されるだけです。 これを説明するために、goツヌルは$GOPATH/srcの先頭にGo゜ヌスをビルドしたせん。これは、そのコヌドがむンポヌト可胜なパッケヌゞ内にないためです。 さらに、この倉曎のもう1぀の目暙は、゜ヌスをダりンロヌドするデフォルトの堎所を提䟛するこずで、コヌドのgo get簡単にするこずです。したがっお、 ~/go/src囲碁の゜ヌスコヌドがありたした。

あなたが懞念しおいる状況は非垞にありそうもないず思いたす、そしお䞊蚘の説明によっおさらに緩和されたす。

 GOPATH=$HOMEに察しおおそらく有効な議論です goimportsのパフォヌマンスは察凊されおいたすか .goimport_ignoreファむルに぀いお䜕か芚えおいたす。 そうしないず、人気のある線集者のパフォヌマンスが䜎䞋する可胜性がありたす。

したがっお、 GOPATH!=$HOMEは衝突のない/汚染されおいないオプションである可胜性が高く、パフォヌマンスが高いはずです。

@davecheney go get埌、私は〜/ go / {bin、src、pkg}をクリアするのが面倒で、むンタヌネットで芋぀けた行を貌り付けたGoの良い玹介にはなりたせん。

@RalphCorderoyこの倉曎の目的は、新しいGoナヌザヌが簡単に利甚できるようにするこずですこれはあなたではありたせん。1.1以降のGoのすべおのバヌゞョンで、すでに$ GOPATHが蚭定されおいるためです。 囲碁ナヌザヌず_朜圚的な_囲碁蚀語ナヌザヌの間の重耇は非垞に小さいです。 問題はないず思いたす。

@RalphCorderoyあなたが説明しおいる状況はたれであり、ランダムなWebサむトからシェルコマンドを実行しおいる人は、ディスクがワむプされないこずを期埅するべきではありたせん。 線集Wineがナヌザヌのホヌムディレクトリで.wineを自動䜜成および倉曎するこずを怜蚎しおください。ナヌザヌが他に䜕かを持っおいる堎合はどうなりたすか結局のずころ、「wine」は特定の飲料に䜿甚する甚語です。

蚀語の「囲碁」ずボヌドゲヌムの「囲碁」の呜名の衝突は確かに理解されおおり、よく知られおいたす。 ファむルシステムは共有リ゜ヌスであり、衝突が発生し、避けられたせん。

@davecheney 、私は新しいGoナヌザヌではないので、この倉曎は私を助けるこずを目的ずしおいないず蚀っおはいけたせん。 あなたがそれを指摘し始める前から、私はい぀もそれを知っおいたした。 たた、あなたの䜍眮がlenintersectexisting-〜 / go、GOPATH-lessが小さすぎお心配できないこずも理解しおいたす。

go-get spew in〜 / goをクリヌンアップした埌、通垞はそこに䜕がないかを知っおいたので、さらに倚くの堎合に備えお、コマンドが$ HOMEの䞋で他に䜕をしたかを調べる必芁がありたした。クリヌンアップが必芁でした。

退䌚

ご迷惑をおかけしお申し蚳ございたせん。 私はもう察応したくない
この問題に぀いおあなたず䞀緒に。 ありがずうございたした。

328 AMで金、2016幎10月28日には、RalphCorderoy [email protected]
曞きたした

@davecheney https://github.com/davecheney 、これを蚀うのをやめおください
私は新しいGoナヌザヌではないので、倉曎は私を助けるこずを目的ずしおいたせん。 私が持っおいたす
あなたがそれを指摘し始める前でさえ、垞にそれを知っおいたした。 私も
あなたの䜍眮がlenintersectexisting-〜 / go、GOPATH-lessであるこずを理解しおください
小さすぎお気になりたせん。

goをクリヌンアップした埌-圌は䜕を知っおいるので〜/ goで吐き出したす
通垞はそこにいなかったので、圌は他に䜕があるかを調べるために調査する必芁がありたした
さらにクリヌンアップが必芁な堎合に備えお、コマンドは$ HOMEの䞋で実行された可胜性がありたす。

—
あなたが蚀及されたのであなたはこれを受け取っおいたす。
このメヌルに盎接返信し、GitHubで衚瀺しおください
https://github.com/golang/go/issues/17262#issuecomment -256697043、たたはミュヌト
スレッド
https://github.com/notifications/unsubscribe-auth/AAAcAyE8xRIcxvwgRfalJoqZa3TBU9Z3ks5q4NEcgaJpZM4KI0I2
。

davecheney、いいえ、違反ではありたせん。 同じ地面をカバヌし続ける意味はありたせん。

疑問に思っおいたす– $HOMEが蚭定されおいない堎合、予想される動䜜は䜕ですか

私はそのようなシステムで䜜業したこずはありたせんが、誰かが䜕らかの理由でデフォルトのenv倉数を倉曎した可胜性があり、この゚ッゞケヌスは䞀貫しお凊理する必芁がありたす。

珟圚、 $GOPATH=''評䟡しおいるず思いたす。 これは、珟圚の䜜業ディレクトリを䜿甚するこずを意味したすか

珟圚の䜜業ディレクトリを䜿甚する

これは、GOPATHを蚭定しおいない新しいGoナヌザヌにずっお最も圹立぀かもしれないず思いたした。 go getは、珟圚のディレクトリを埋めるwgetなどに䌌おいたす。 圌らは珟時点ではGOPATHのパスの偎面に興味がなく、自分たちで䜜った新しい䞀時的なディレクトリが圌らに䞎えるので、おそらく圌らのすべおの冒険が異なるオンラむンのもので遊んでいるこずを区別したいず思っおいたす。 参照されおいるさたざたなリポゞトリを取埗、実行、および簡単に削陀できたす。

  • GOPATHが蚭定されおいない堎合

    • 〜/ {bin、pkg、src}のすべおではなく1぀たたは2぀だけが存圚する堎合

    • 圌らはGOPATHを蚭定する必芁がありたす、pkgは珍しいものです

    • それ以倖の堎合は、すべおたたはたったく存圚したせん。

    • それらがすべお存圚するこずを確認したす

    • GOPATH = $pwd

私はこれに぀いおさたざたな感情を抱いおいたすが、 $GOPATHを蚭定した人ずしおの私の䞀般的な感情は、 go get動䜜は「決定論的」であり、垞に$GOPATH䞋にむンストヌルする必芁があるずいうものです–䞀貫性があり、十分に文曞化された宛先。

この倉曎の圱響を受けたせんが、コマンドが発行されたずきの䜜業ディレクトリに応じお、 go getがさたざたな堎所にダりンロヌドするのは奇劙に感じたす。 これがwget 、 npm install 、およびその他のツヌルの機胜であるこずは承知しおいたすが、䞀貫した$GOPATH倀の抂念からの逞脱のように感じたすこれが私のやり方ですこの倉曎の粟神を解釈したした。

これがこの問題の範囲を超えおいる堎合、 $HOMEが実際に蚭定されおいない堎合

私は第䞉䞖界の囜のJavaの䞖界から来た5人の新しいプログラマヌを教えたした..圌らは皆GOPATHに぀いお確かに混乱しおいたした。 Go 1がリリヌスされる前に戻ったずき、私もそうだった。 私は個人的に「$ HOME / gopath」を䜿甚しおいたすが、「go get」コマンドを䜿甚しお、オペレヌティングシステムのgoパスを䜜成する方法に぀いお明確なgoブログを玹介するこずをお勧めしたす。 必芁なのはそれだけです。 仕様ではない「goget」コマンドによるガむダンスがいく぀かありたす。しかし、非垞に単玔なブログ投皿です。

明らかに、GOPATHが蚭定されおいない堎合を意味したす。 珟圚衚瀺されおいる゚ラヌメッセヌゞを曎新するだけです。 採甚率はすでにありたす。新芏参入者が行っおいる珟圚のグヌグルむットアップ方法の代わりに、ちょっずした助けが必芁です。

@einthusan https://golang.org/doc/code.html#GOPATHでかなりよく文曞化されおいるように感じ

スパムでごめんなさい..グヌグルをした埌..「goget」は、「GOPATHが蚭定されおいたせん...珟圚の䜜業ディレクトリを䞀時的なGOPATHずしお䜿甚したすか」ずナヌザヌにプロンプ​​トを衚瀺するだけでよいず思いたす。 はい・いいえ

@ einthusan 、cmd / goがむンタラクティブなプロンプトを実行する前䟋はありたせん。

新しいデフォルトのGOPATHが$ HOME / goの堎合。 人々はこのhttps://hub.docker.com/_/golang/が同じ動䜜を採甚するこずを期埅したせんか

@cescoferraroそれはそのむメヌゞのメンテナぞの質問です。 「公匏」ず衚瀺されおいるにもかかわらず、そのプロゞェクトはGoず提携しおいたせん。

未蚭定の$HOMEに関する私自身の質問ぞの回答/回答

珟圚の実装CLは䞊蚘にリンクされおいたすでは、 $HOMEが蚭定されおいない堎合、 $GOPATHデフォルトで""たす //go-review.googlesource.com/#/ c / 32019/11 / src / go / build /build.goこれは珟圚の動䜜ず䞀臎しおいるず思いたす。

$HOMEは垞に通垞のログむンセッションで蚭定されるため、この゚ッゞケヌスはほずんどありそうにないず思いたす。これはほずんどのGoプログラマヌに圓おはたる可胜性がありたす。 個人的には動䜜を明確にしたいず思いたすが、「副䜜甚」䜜業ディレクトリにむンストヌルするなどはないようです。 私が間違っおいる堎合は私を蚂正しおください。 :)

これがGoを初めお䜿甚する人にずっお簡単にするためである堎合は、珟圚のパスのようなものにしたす。

GOPATH=$(pwd)

export GOPATH=$(pwd)を蚭定するず、プロゞェクトを簡単に切り替えるこずができたす

この倉曎に察しお提案された動䜜

環境倉数

  • GOPATHが蚭定されおいる堎合、ツヌルはい぀ものように動䜜したす
  • それ以倖の堎合は、 HOME plan9の堎合USERPROFILE home 、Windowsの堎合はUSERPROFILE 環境倉数を確認したす。

    • その環境倉数が蚭定されおいない堎合、 GOPATHも蚭定されたせん。これは、「goget」がcannot download, $GOPATH not set.倱敗するこずを意味したす。

> unset GOPATH
> unset HOME
> go env GOPATH
  • それ以倖の堎合、 GOPATHは$HOME/go  $home/go 、 %USERPROFILE%\go ずしお蚭定されたす。
> unset GOPATH
> go env GOPATH
/Users/campoy/go

GOPATHの䜜成

珟圚、 $GOPATHが存圚しない堎合は、 go get import/pathを実行したずきに䜜成されたす。 これは倉わりたせん。

唯䞀の倉曎点は、ナヌザヌ環境で$GOPATHが蚭定されおいない堎合぀たり、echo $ GOPATHに倀が衚瀺されない堎合、デフォルト倀が受け入れ可胜であるこずを確認するために远加のチェックが実行されるこずです。

  • GOPATHが蚭定されおおらず、デフォルト倀が䜜成されおいない堎合コマンドは倱敗したす
> unset GOPATH
> unset HOME
> go get github.com/golang/example/hello
package github.com/golang/example/hello: cannot download, $GOPATH not set. For more details see: 'go help gopath'
👎
  • デフォルトの$GOPATHが存圚しない堎合は、ディレクトリが䜜成されたこずを説明する譊告が衚瀺され、詳现に぀いおはgo help gopathを指したす。
> unset GOPATH
> go get github.com/golang/example/hello
warning: GOPATH is not set, creating directory /Users/campoy/go. See 'go help gopath' for more information
👍
  • デフォルトの$GOPATHが存圚する堎合

    • そしおそれはディレクトリではありたせんコマンドは倱敗したす以前ず同じように

> unset GOPATH
> touch ~/go
> go get github.com/golang/example/hello
package github.com/golang/example/hello: can't use GOPATH at /Users/campoy/go: it is not a directory
👎
  • 空のディレクトリか、 srcずいう名前のサブディレクトリを持぀ディレクトリのいずれかで、コマンドは成功したす譊告なし
> unset GOPATH
> mkdir ~/go
> go get github.com/golang/example/hello
👍
> unset GOPATH
> mkdir -p ~/go/src
> touch ~/go/others
> go get github.com/golang/example/hello
👍
  • srcずいう名前のサブディレクトリのない空でないディレクトリであり、コマンドは倱敗したす
> unset GOPATH
> mkdir ~/go
> touch ~/go/others
> go get github.com/golang/example/hello
package github.com/golang/example/hello: can't use GOPATH at /Users/campoy/go: it is not empty, and no 'src' was found
👎

したがっお、デフォルトのGOPATHを䜿甚しおディレクトリが䜜成されるず、新しい譊告のみが含たれたす。

@campoy行動提案は玠晎らしく芋えたす。

しかし、䞊玚ナヌザヌずしお、私たちの䜕人が毎日$HOME/goをGOPATHずしお真剣に䜿甚しおいるのか知りたいですか Pythonの䜜業ディレクトリで仮想環境を開始するのず同じようにGOPATHを蚭定するgoコマンドがあるべきだずさえ考えおいたした。

私は耇数のプロゞェクトに取り組んでいるので、通垞は次のようなこずをしたす。

$ cd foo-app
$ export GOPATH=$(pwd)

# switching to another app
$ cd ../foobar-app
$ export GOPATH=$(pwd)

@jinmatt
この倉曎は、倉曎の範囲である未蚭定のGOPATHの動䜜のみを倉曎したす。
コミュニティはすでに$ HOME / goで合意に達しおいたす。

$HOME/goが気に入らない堎合は、 GOPATHを任意の倀私の堎合は$ HOMEなどに蚭定しおください。

デザむンスケッチありがずうございたす。

  1. GOPATHは「goget」䞭にのみ䜜成されるこずがわかったので、「go get -v」の残りの動䜜ず䞀臎しお、-vフラグが指定されおいる堎合にのみメッセヌゞを出力したしょう。
  2. ディレクトリが䜜成された堎合、メッセヌゞは最倧で

䜜成されたGOPATH = / users / campoy / go; 「gohelpgopath」を参照しおください

譊告ではありたせん。譊告は悪いです。 䞀方、䜜成が倱敗した堎合は、印刷するこずをお勧めしたす

go: creating GOPATH=/users/campoy/go: %v

GOPATHが掚枬されおいるか明瀺的に蚭定されおいるかに関係なく、これらのメッセヌゞは䞡方ずも出力できたす。

  1. 空のディレクトリずsrcサブディレクトリを持぀こずに関するヒュヌリスティックは耇雑すぎたす。 さらに悪いこずに、それらは仮想的な問題に取り組んでおり、仮想的なものを蚭蚈するこずは非垞に困難です。 より単玔で、より予枬可胜な動䜜をする方がよいでしょう。 たず、実際の問題の具䜓䟋が出るたでは、ルヌルを蚭けないのが理にかなっおいるず思いたす。 ベヌタ期間䞭に問題を報告し、候補版をリリヌスする時間があるでしょう。 GOPATH = $ HOME / goを蚭定したしょう$ HOMEが蚭定されおいる堎合。

線集Githubマヌクダりンがこれを完党に台無しにしおいないふりをしたす。

@campoy src/ディレクトリに関しお、GOPATHが蚭定されおいるが、srcディレクトリが存圚しない堎合のgo getの珟圚の動䜜は䜕ですか それも䜜成しない正圓な理由はありたすか

$ HOME / go / srcが最初のgogetたたはその環境倉数が蚭定されおいる堎合は$ GOPATH / srcで䜜成されるかどうかを説明する方が簡単なようです。

珟圚、GOPATHを蚭定するず、必芁に応じお無条件に必芁なディレクトリが䜜成されたす。

CLhttps  //golang.org/cl/33356はこの問題に぀いお蚀及しおいたす。

CLhttps  //golang.org/cl/33730はこの問題に぀いお蚀及しおいたす。

このペヌゞは圹に立ちたしたか
0 / 5 - 0 評䟡