今日は — FIX :プライベートリポジトリのリターンエラー読み込みサムを取得します.ゴラン.ルックアップ


固定エラー: git hostを検証するエラーメッセージパターンを持つプライベートモジュールのgomoduleを取得します。ゴラン.を参照してください



今日は晴れた日、日曜日のFundayに、しかし、私が1時間猛烈になった何かによって台無しになりました.実は昨晩(土曜日の夜)からこの問題に立ち往生しましたが、本当に疲れているので、日曜日にまた休んで休むことにします.
それで、私はMabarに取り組んでいましたhttps://mabar.id ) 私の側プロジェクトの1つとして.これはまだベータ版では、まだ多くの機能が不足している、あなたはAndroidのプレイストアでそれを試すことができますhere
私はこのMabarに高い期待を持っています、それは多くのインターフェース(モバイル、デスクトップ、ウェブ)で利用できるプラットホームでなければなりません.技術スタックのために、私はバックエンドとしてゴランを使用します、基盤としてのKubernetesとそれらの後のデジタル海.

問題


問題は、プライベートモジュール(golang module)、私のバックエンドAPIによってインポートされる簡単なライブラリがあります.しかし、どうにか、私はモジュールを得ることができなくて、私がgo - getコマンドをするとき、常にエラーをもたらします.
パッケージ名がルシファーだとしましょう.そして、常に端末にエラーを投げます.それは本当に私に怒った.
$ go get -v bitbucket.org/compay/lucifer
go: finding bitbucket.org/compay/lucifer latest
go: downloading bitbucket.org/compay/lucifer v0.0.0-20190921175342-61a76c096369
**verifying bitbucket.org/compay/[email protected]: bitbucket.org/compay/[email protected]: reading** [**https://sum.golang.org/lookup/bitbucket.org/**](https://sum.golang.org/lookup/bitbucket.org/gokar/[email protected]) **compay** [**/[email protected]**](https://sum.golang.org/lookup/bitbucket.org/gokar/[email protected]) **: 410 Gone**
あなたがメッセージを見るならば、パッケージがなくなっているか、合計で利用できないと言います.ゴラン.org.
最初に、私がここでそれを書くように、私がbitbucketにsshを強制するのを忘れたので、これが起こると思います.https://medium.com/easyread/today-i-learned-fix-go-get-private-repository-return-error-terminal-prompts-disabled-8c5549d89045
しかし、まだうまくいきませんでした.GETコマンドを実行しても、まだエラーを返すことがあります.

根本原因


それで、インターネット上でこの問題を捜した後に、私は根本原因を見つけました.これはバージョン1.13からのGolangでのみ起こります.私はこのリリースを読んだ後、これを確認することができますhttps://golang.org/doc/go1.13#modules
したがって、このゴラン版でプロキシに関する新機能があるので、これは起こりました.

解決策


実際に私たちが選ぶことができるいくつかの解決策があります.
  • Goprivateを使用する
  • go 1.13のリリースdocで述べた通りです.

    The new GOPRIVATE environment variable indicates module paths that are not publicly available. It serves as the default value for the lower-level GONOPROXY and GONOSUMDB variables, which provide finer-grained control over which modules are fetched via proxy and verified using the checksum database.


    つまり、上記の問題を解決するためには、Goprivate変数をシステム内で埋めることができます.このコマンドを~/.BASHRCあなたの会社/org名に基づいて輸出価値を変えてください.
    **export**  **GOPRIVATE** ="gitlab.com/ **idmabar** ,bitbucket.org/ **idmabar** ,github.com/ **idmabar**"
    
    そして、これが働いたかどうか確かめるために、あなたはgo envコマンドをすることができます.それはこのようにすべきである.
    $ go env
    GO111MODULE=""
    GOARCH="amd64"
    GOBIN=""
    GOCACHE="/Users/imantumorang/Library/Caches/go-build"
    GOENV="/Users/imantumorang/Library/Application Support/go/env"
    GOEXE=""
    GOFLAGS=""
    GOHOSTARCH="amd64"
    GOHOSTOS="darwin"  
    GOOS="darwin"
    GOPATH="/Users/imantumorang/go"
    **GOPRIVATE="gitlab.com/idmabar,bitbucket.org/idmabar,github.com/idmabar"**
    GOPROXY="[https://proxy.golang.org,direct](https://proxy.golang.org,direct)"
    GOROOT="/usr/local/Cellar/go/1.13/libexec"
    GOSUMDB="sum.golang.org"
    GOTMPDIR=""
    GOTOOLDIR="/usr/local/Cellar/go/1.13/libexec/pkg/tool/darwin\_amd64"
    GCCGO="gccgo"
    AR="ar"
    CC="clang"
    CXX="clang++"
    CGO\_ENABLED="1"
    GOMOD=""
    CGO\_CFLAGS="-g -O2"
    CGO\_CPPFLAGS=""
    CGO\_CXXFLAGS="-g -O2"
    CGO\_FFLAGS="-g -O2"
    CGO\_LDFLAGS="-g -O2"
    
    そして今、私は私のプライベートリポジトリのGoコマンドを行うことができます.
    $ go get bitbucket.org/company/lucifer
    go: finding bitbucket.org/company/lucifer latest
    go: downloading bitbucket.org/company/lucifer v0.0.0-20190921175342-61a76c096369
    go: extracting bitbucket.org/company/lucifer v0.0.0-20190921175342-61a76c096369
    
    したがって、このenv変数は、パッケージを取得するためにプライベートホストプロキシを使用するGoコマンドを教えます.
  • gonosumdbの使用
  • もう一つの解決策は、おそらくGOONSUMDB変数を使用します.私はまだこれを試みません、しかし、この提案を読んだ後に、それは働きますhttps://go.googlesource.com/proposal/+/master/design/25530-sumdb.md
    それで、環境変数でこれを設定できます:
    **export**  **GONOSUMDB** ="gitlab.com/idmabar,bitbucket.org/idmabar,github.com/idmabar"
    
    実際にこの問題は、新しいゴラン版1.13以降でのみ発生します.Golangバージョンを更新する前に、この環境変数を設定してください.
    ここではいくつかのリンクは、この問題に関連する可能性がありますnoveaustack これを見つけて、stackoverflowでこれを掲示するために、私はちょうどこの問題を知っていて、私が学んだ新しいものとしてこれを書き直しました.

    参考文献

  • スタックオーバーフロー:https://stackoverflow.com/a/57887036/4075313
  • 囲碁モジュールのgo sum dbに関する提案https://go.googlesource.com/proposal/+/master/design/25530-sumdb.md
  • チェックサムDBのプロキシhttps://docs.gomods.io/configuration/sumdb/
  • この問題に関連したGITUB問題#33985 and #32291