go get golang.org/x パッケージが失敗する問題を迅速に解決する

藏色散人
リリース: 2021-12-02 14:42:45
転載
2951 人が閲覧しました

この記事は、go languageチュートリアル コラムによって提供され、go get golang.org/x パッケージの失敗問題をワンクリックで解決する方法を紹介するもので、困っている友人の役に立てば幸いです。

golang.org/x パッケージを取得するためのワンクリック ソリューションの失敗

問題の説明

go getを使用すると、go installgo modなどのコマンドを実行すると、対応するパッケージまたは依存パッケージが自動的にダウンロードされます。ただし、よく知られている理由により、golang.org/x/...に類似したパッケージはダウンロードに失敗します。以下に示すように:

$ go get -u golang.org/x/sys go get golang.org/x/sys: unrecognized import path "golang.org/x/sys" (https fetch: Get https://golang.org/x/sys?go-get=1: dial tcp 216.239.37.1:443: i/o timeout)
ログイン後にコピー

解決策

では、この問題をどのように解決すればよいでしょうか。結局のところ、まだバグを作成する必要があります~

マニュアル ダウンロード

共通のgolang.org/x/...パッケージは GitHub で一般公開されています。対応。たとえば、golang.org/x/textgithub.com/golang/textに対応します。したがって、対応する GitHub リポジトリを指定されたディレクトリに手動でダウンロードまたはクローン作成できます。

mkdir $GOPATH/src/golang.org/x cd $GOPATH/src/golang.org/x git clone git@github.com:golang/text.git rm -rf text/.git
ログイン後にコピー

GitHub 上のほとんどのミラー ウェアハウスにはタグがないため、バージョンを指定する必要がある場合、この方法では解決策がありません。さらに、特に依存関係が多すぎるため、プログラマが手動でそれを行うにはどうすればよいでしょうか。

プロキシの設定

プロキシがある場合は、対応する環境変数を設定できます:

export http_proxy=http://proxyAddress:port export https_proxy=http://proxyAddress:port
ログイン後にコピー
または、

all_proxy## を使用します。直接 #:

export all_proxy=http://proxyAddress:port
ログイン後にコピー
go mod replace

Go 1.11 バージョンから、

go modules

の新しいサポートがパッケージの依存関係管理の問題を解決するために使用されます。このツールは、パッケージのエイリアスの問題を解決し、golang.org/xがダウンロードできない問題も解決するreplaceを提供します。

go module

はネイティブのgo modコマンドに統合されていますが、コード ベースが$GOPATHにある場合、モジュール関数はデフォルトでは有効になっていません。有効にするのは非常に簡単です。環境変数export GO111MODULE=onを使用して有効にできます。以下は参考例です:

module example.com/hello require ( golang.org/x/text v0.3.0 ) replace ( golang.org/x/text => github.com/golang/text v0.3.0 )
ログイン後にコピー

同様に、glide や gopm などのサードパーティのパッケージ管理ツールがあり、さまざまなソリューションを提供します。

GOPROXY 環境変数

ついに、この記事の最大のキラーである

GOPROXY

が登場します。

Go 1.11

バージョン以降、go moduleパッケージ依存関係管理ツールが正式にサポートされることがわかっています。実際には、

GOPROXY

環境変数も追加されています。この変数が設定されている場合、ソース コードは、以前のようにコード ライブラリから直接ダウンロードするのではなく、この環境変数で設定されたプロキシ アドレスを通じてダウンロードされます。これは、科学的にインターネットにアクセスできない私たち発展途上の国民にとって、間違いなく最大の朗報です。さらに嬉しいのは、オープンソース プロジェクト goproxy.io が私たちが望むことを達成するのに役立ってくれたことです。このプロジェクトを使用すると、開発者はワンクリックで独自の

GOPROXY

プロキシ サービスを構築できます。同時に、パブリック プロキシ サービスhttps://goproxy.ioも提供されます。ブロックされたソース コード パッケージを通常どおりダウンロードするには、この環境変数を設定するだけです:

export GOPROXY=https://goproxy.io
ログイン後にコピー
ただし、

go modulefunctionに依存する必要があります。 MODULE はexport GO111MODULE=onでオンにできます。プロジェクトが

GOPATH

にない場合、go get ...は使用できませんが、go mod ...は使用できます。関連するコマンド。この環境変数を空白に設定して、

export GOPROXY=

をオフにすることもできます。Windows ユーザーの場合は、

PowerShell

で設定できます:

$env:GOPROXY = "https://goproxy.io"
ログイン後にコピー
最後に、この環境変数に対して

GOPROXY

ソリューションを使用することを強くお勧めします。ただし、Go バージョン >= 1.11である必要があります。最後に、Qiniu は国内ユーザーがアクセスできないパッケージにより速くアクセスできるようにするために、国内プロキシ goproxy.cn も立ち上げました。これは実に良心的です。

以上がgo get golang.org/x パッケージが失敗する問題を迅速に解決するの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:segmentfault.com
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!