RM新时代网站-首页

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

Golang配置代理方法

馬哥Linux運(yùn)維 ? 來(lái)源:博客園sparkdev ? 2024-11-11 11:17 ? 次閱讀

由于一些客觀原因的存在,我們開發(fā) Golang 項(xiàng)目的過(guò)程總會(huì)碰到無(wú)法下載某些依賴包的問(wèn)題。這不是一個(gè)小問(wèn)題,因?yàn)槟愕墓ぷ鲿?huì)被打斷,即便你使用各種神通解決了問(wèn)題,很可能這時(shí)你的線程已經(jīng)切換到其他的事情上了(痛恨思路被打斷!)。所以最好是一開始我們就重視這個(gè)問(wèn)題,并一勞永逸的解決它。

問(wèn)題描述

當(dāng)我們使用 go get、go install、go mod 等命令時(shí),類似于 golang.org/x/... 的包會(huì)是無(wú)法下載的。比如通過(guò)下面的命令下載 sys 包:

$ go get -u golang.org/x/sys

下載肯定會(huì)失?。?/p>

159224f6-9061-11ef-a511-92fbcf53809c.png

設(shè)置代理

如果你有自己的代理服務(wù)器,那就很容易了,這也是一勞永逸的方法。直接設(shè)置環(huán)境變量 http_proxy 和 https_proxy 就行了:

export http_proxy=http://proxyAddress:port
export https_proxy=http://proxyAddress:port

比如筆者在局域網(wǎng)中共享了代理 192.168.21.1:1080:

$ export http_proxy=http://192.168.21.1:1080
$ export https_proxy=http://192.168.21.1:1080

然后執(zhí)行下面的命令后就能夠下載了:

$ go get -u golang.org/x/sys

手動(dòng)下載并安裝包

如果一時(shí)找不到合適的代理,還可以臨時(shí)通過(guò)手動(dòng)的方式下載包。我們常見的 golang.org/x/... 包,一般在 GitHub 上都有官方的鏡像倉(cāng)庫(kù)對(duì)應(yīng)。比如zieckey/golang.org就是作為 golang.org/x 的鏡像庫(kù)存在的。我們可以手動(dòng)下載或 clone 對(duì)應(yīng)的 GitHub 倉(cāng)庫(kù)到指定的目錄下,比如從zieckey/golang.org下載 x 目錄下的所有包?;蛘呤敲看沃幌螺d單個(gè)的庫(kù),下面的示例演示如何下載 text 庫(kù):

$ mkdir $GOPATH/src/golang.org/x
$ cd $GOPATH/src/golang.org/x
$ git clone git@github.com:golang/text.git

當(dāng)如果需要指定版本的時(shí)候,該方法就無(wú)解了,因?yàn)?GitHub 上的鏡像倉(cāng)庫(kù)多數(shù)都沒(méi)有 tag。

使用 go mod replace

從 Go 1.11 版本開始,新增支持了 go modules 用于解決包依賴管理問(wèn)題。該工具提供了 replace,就是為了解決包的別名問(wèn)題,也能替我們解決 golang.org/x 無(wú)法下載的的問(wèn)題。

go module 被集成到原生的 go mod 命令中,但是如果你的代碼庫(kù)在 $GOPATH 中,module 功能是默認(rèn)不會(huì)開啟的,想要開啟也非常簡(jiǎn)單,通過(guò)一個(gè)環(huán)境變量即可開啟 export GO111MODULE=on。比如下面的示例,在go.mod中指定下面的代碼:

module example.com/demo


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


replace (
    golang.org/x/text => github.com/golang/text v0.3.0
)

使用 GOPROXY 環(huán)境變量

從 Go 1.11 版本開始,官方支持了 go module 包依賴管理工具。其實(shí)還新增了 GOPROXY 環(huán)境變量。如果設(shè)置了該變量,下載源代碼時(shí)將會(huì)通過(guò)這個(gè)環(huán)境變量設(shè)置的代理地址,而不再是以前的直接從代碼庫(kù)下載。比如我們可以指定自己的代理地址。

更可喜的是,goproxy.io 這個(gè)開源項(xiàng)目幫我們實(shí)現(xiàn)好了我們想要的。該項(xiàng)目允許開發(fā)者一鍵構(gòu)建自己的 GOPROXY 代理服務(wù)。同時(shí),也提供了公用的代理服務(wù)https://goproxy.io,我們只需設(shè)置該環(huán)境變量即可正常下載被墻的源碼包了:

export GO111MODULE=on
export GOPROXY=https://goproxy.io

也可以通過(guò)置空這個(gè)環(huán)境變量來(lái)關(guān)閉,export GOPROXY=。

對(duì)于 Windows 用戶,可以在 PowerShell 中設(shè)置:

$env:GOPROXY = "https://goproxy.io"

最后,我們當(dāng)然推薦使用 GOPROXY 這個(gè)環(huán)境變量的解決方式,前提是 Go version >= 1.11。

下載 golang.org/x/sys 包:

$ go get -u golang.org/x/sys

15ab71ea-9061-11ef-a511-92fbcf53809c.png

下載到的包在 $GPATH/pkg/mod/golang.org/x/

15c328b2-9061-11ef-a511-92fbcf53809c.png

鏈接:https://www.cnblogs.com/sparkdev/p/10649159.html

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 服務(wù)器
    +關(guān)注

    關(guān)注

    12

    文章

    9123

    瀏覽量

    85322
  • 命令
    +關(guān)注

    關(guān)注

    5

    文章

    683

    瀏覽量

    22011
  • 線程
    +關(guān)注

    關(guān)注

    0

    文章

    504

    瀏覽量

    19675

原文標(biāo)題:Golang 配置代理方法

文章出處:【微信號(hào):magedu-Linux,微信公眾號(hào):馬哥Linux運(yùn)維】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    基于Linux內(nèi)核的透明代理配置方案

    本內(nèi)容提供了基于Linux內(nèi)核的透明代理配置方案,先解釋為什么要配置透明代理,如何利用Linux內(nèi)核來(lái)實(shí)現(xiàn)
    發(fā)表于 11-03 16:47 ?857次閱讀

    Golang接口的作用和應(yīng)用場(chǎng)景

    Golang(Go)作為一門現(xiàn)代的靜態(tài)類型編程語(yǔ)言,提供了許多強(qiáng)大的特性,其中之一便是接口(interface)。接口是Golang中的一個(gè)核心概念,它具有廣泛的應(yīng)用場(chǎng)景,可以幫助開發(fā)者實(shí)現(xiàn)
    的頭像 發(fā)表于 12-05 10:44 ?1120次閱讀

    如何使用Golang連接MySQL

    首先我們來(lái)看如何使用Golang連接MySQL。
    的頭像 發(fā)表于 01-08 09:42 ?3337次閱讀
    如何使用<b class='flag-5'>Golang</b>連接MySQL

    Golang怎么實(shí)現(xiàn)UTS隔離

    Golang實(shí)現(xiàn)UTS隔離
    發(fā)表于 08-23 14:44

    Golang爬蟲語(yǔ)言接入代理?

    HTTP,獲取數(shù)據(jù)4、屏蔽無(wú)效請(qǐng)求5、解析數(shù)據(jù)內(nèi)容6、儲(chǔ)存數(shù)據(jù)7、使用爬蟲代理持續(xù)采集以下是golang語(yǔ)言配置爬蟲代理代碼demo :package mainimport ("net
    發(fā)表于 09-09 17:41

    簡(jiǎn)答幾步搭建golang 1.5開發(fā)環(huán)境

    由于在arm linux上,golang沒(méi)有提供編譯好的二進(jìn)制可執(zhí)行文件,需要自己編譯一下。golang已經(jīng)發(fā)展到1.5版,從這版開始,所有的東西都是用golang 編譯出來(lái)的,包括編譯器。所以要
    發(fā)表于 07-07 10:23

    如何在Golang中實(shí)現(xiàn)反向代理

    【導(dǎo)讀】在本文中,我們將了解反向代理,它的應(yīng)用場(chǎng)景以及如何在 Golang 中實(shí)現(xiàn)它。 反向代理是位于 Web 服務(wù)器前面并將客戶端(例如 Web 瀏覽器)的請(qǐng)求轉(zhuǎn)發(fā)到 Web 服務(wù)器的服務(wù)器。它們
    的頭像 發(fā)表于 08-23 10:22 ?2153次閱讀

    Linux中如何用vim做golang開發(fā)環(huán)境

    vim 做 golang 開發(fā)環(huán)境,多么炫酷!還沒(méi)嘗試過(guò)用 vim 做開發(fā)環(huán)境的同學(xué)可以跟著這篇文檔把環(huán)境搭建起來(lái)了! 準(zhǔn)備條件,是已經(jīng)安裝好 golang 環(huán)境,還需要把 golang 的環(huán)境變量
    的頭像 發(fā)表于 10-08 17:20 ?1567次閱讀

    http代理概述及代碼實(shí)現(xiàn)方法

    本文詳細(xì)介紹了Golang 實(shí)現(xiàn) http 代理的實(shí)現(xiàn),在實(shí)際業(yè)務(wù)中有需求的同學(xué)可以學(xué)起來(lái)了!
    的頭像 發(fā)表于 05-14 15:02 ?4018次閱讀

    初探Golang內(nèi)聯(lián)

    今天我們來(lái)聊聊 Golang 中的內(nèi)聯(lián)。
    的頭像 發(fā)表于 12-13 09:51 ?932次閱讀

    GoLang的安裝和使用

    GoLang的安裝和使用
    的頭像 發(fā)表于 01-13 14:06 ?1268次閱讀
    <b class='flag-5'>GoLang</b>的安裝和使用

    Golang實(shí)現(xiàn)一個(gè)簡(jiǎn)單的http代理

    本文詳細(xì)介紹了Golang 實(shí)現(xiàn) http 代理的實(shí)現(xiàn),在實(shí)際業(yè)務(wù)中有需求的同學(xué)可以學(xué)起來(lái)了!
    的頭像 發(fā)表于 04-10 11:29 ?1443次閱讀

    一個(gè)快速應(yīng)用程序開發(fā)(RAD)工具(Golang版)

    SNMPAgent Builder(Golang版)是一個(gè)快速應(yīng)用程序開發(fā)(RAD)工具,用于基于Golang 的 SNMP代理開發(fā)。提供了一個(gè)直觀的圖形用戶界面,用于自動(dòng)執(zhí)行各種SNMP
    的頭像 發(fā)表于 04-13 09:30 ?1534次閱讀

    【芒果派MangoPi MQ Quad】使用Golang點(diǎn)燈

    使用Golang在芒果派上點(diǎn)燈
    的頭像 發(fā)表于 07-21 14:44 ?691次閱讀
    【芒果派MangoPi MQ Quad】使用<b class='flag-5'>Golang</b>點(diǎn)燈

    鴻蒙OpenHarmony:【配置代理

    新建代理配置文件。
    的頭像 發(fā)表于 04-29 22:17 ?812次閱讀
    鴻蒙OpenHarmony:【<b class='flag-5'>配置</b><b class='flag-5'>代理</b>】
    RM新时代网站-首页