Rumah > pembangunan bahagian belakang > Golang > Cepat selesaikan masalah tidak berjaya pergi dapatkan pakej golang.org/x

Cepat selesaikan masalah tidak berjaya pergi dapatkan pakej golang.org/x

藏色散人
Lepaskan: 2021-12-02 14:42:45
ke hadapan
3115 orang telah melayarinya

Artikel ini diperkenalkan oleh ruangan tutorial go language untuk memperkenalkan cara menyelesaikan masalah kegagalan pakej go get golang.org/x dengan sekali klik.

Penyelesaian satu klik untuk mendapatkan kegagalan pakej golang.org/x

Penerangan masalah

Apabila kami menggunakan go get, go install, go mod, dsb. Apabila melaksanakan arahan, pakej yang sepadan atau pakej bergantung akan dimuat turun secara automatik. Walau bagaimanapun, atas sebab yang diketahui, pakej yang serupa dengan golang.org/x/... akan gagal dimuat turun. Seperti yang ditunjukkan di bawah:

$ 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)
Salin selepas log masuk

Penyelesaian

Jadi bagaimana kita hendak menyelesaikan masalah tersebut? Lagipun, kami masih perlu mencipta pepijat~

Muat turun secara manual

pakej golang.org/x/... biasa kami, yang biasanya mempunyai repositori cermin rasmi di GitHub. Contohnya, golang.org/x/text sepadan dengan github.com/golang/text. Oleh itu, kami boleh memuat turun atau mengklon repositori GitHub yang sepadan secara manual ke direktori yang ditentukan.

mkdir $GOPATH/src/golang.org/x
cd $GOPATH/src/golang.org/x
git clone git@github.com:golang/text.git
rm -rf text/.git
Salin selepas log masuk

Apabila anda perlu menentukan versi, kaedah ini tidak mempunyai penyelesaian, kerana kebanyakan gudang cermin di GitHub tidak mempunyai teg. Selain itu, bagaimana pengaturcara boleh melakukannya secara manual, terutamanya kerana terdapat terlalu banyak kebergantungan.

Tetapkan proksi

Jika anda mempunyai proksi, anda boleh menetapkan pembolehubah persekitaran yang sepadan:

export http_proxy=http://proxyAddress:port
export https_proxy=http://proxyAddress:port
Salin selepas log masuk

Atau, gunakan all_proxy terus :

export all_proxy=http://proxyAddress:port
Salin selepas log masuk

go mod replace

Bermula dari versi Go 1.11, sokongan baharu untuk go modules digunakan untuk menyelesaikan isu pengurusan pergantungan pakej. Alat ini menyediakan replace untuk menyelesaikan masalah alias pakej Ia juga boleh menyelesaikan masalah yang golang.org/x tidak boleh dimuat turun untuk kami.

go module disepadukan ke dalam perintah go mod asli, tetapi jika pangkalan kod anda berada dalam $GOPATH, fungsi module tidak akan didayakan secara lalai, dan sangat mudah untuk mendayakannya . Ia boleh didayakan melalui pembolehubah persekitaran export GO111MODULE=on.

Berikut ialah contoh rujukan:

module example.com/hello

require (
    golang.org/x/text v0.3.0
)

replace (
    golang.org/x/text => github.com/golang/text v0.3.0
)
Salin selepas log masuk

Begitu juga, terdapat alatan pengurusan pakej pihak ketiga seperti glide dan gopm, yang memberikan kami penyelesaian yang berbeza.

Pembolehubah persekitaran GOPROXY

Akhirnya kami telah mencapai pembunuh utama artikel ini - GOPROXY.

Kami tahu bahawa bermula daripada versi Go 1.11, alat pengurusan pergantungan pakej go module disokong secara rasmi.

Malah, pembolehubah persekitaran GOPROXY baharu telah ditambah. Jika pembolehubah ini ditetapkan, kod sumber akan dimuat turun melalui alamat proksi yang ditetapkan oleh pembolehubah persekitaran ini, bukannya memuat turun terus daripada pustaka kod seperti sebelum ini. Ini sudah pasti berita baik terbesar untuk pembangun seperti kami yang tidak dapat mengakses Internet secara saintifik.

Apa yang lebih menggembirakan ialah projek sumber terbuka goproxy.io membantu kami mencapai apa yang kami mahukan. Projek ini membolehkan pembangun membina perkhidmatan proksi GOPROXY mereka sendiri dengan satu klik. Pada masa yang sama, perkhidmatan proksi awam https://goproxy.io juga disediakan Kami hanya perlu menetapkan pembolehubah persekitaran ini untuk memuat turun pakej kod sumber yang disekat seperti biasa:

export GOPROXY=https://goproxy.io
Salin selepas log masuk

Walau bagaimanapun, perlu bergantung. pada go module Ciri . MODUL boleh dibuka melalui export GO111MODULE=on.

Jika projek tiada dalam GOPATH, anda tidak boleh menggunakan go get ..., tetapi anda boleh menggunakan go mod ... arahan berkaitan.

juga boleh dimatikan dengan menetapkan kosong pembolehubah persekitaran ini, export GOPROXY=.

Untuk pengguna Windows, anda boleh menetapkannya dalam PowerShell:

$env:GOPROXY = "https://goproxy.io"
Salin selepas log masuk

Akhir sekali, kami pasti mengesyorkan menggunakan GOPROXY penyelesaian pembolehubah persekitaran, dengan syarat versi Go > ;= 1.11.

Akhir sekali, Qiniu juga telah melancarkan proksi domestik goproxy.cn untuk memudahkan pengguna domestik mengakses pakej yang tidak boleh diakses dengan lebih pantas, yang benar-benar merupakan hati nurani.

Atas ialah kandungan terperinci Cepat selesaikan masalah tidak berjaya pergi dapatkan pakej golang.org/x. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Label berkaitan:
sumber:segmentfault.com
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan