>일반적인 문제 >Go 언어에 종속 패키지가 있나요?

Go 언어에 종속 패키지가 있나요?

小老鼠
小老鼠원래의
2023-04-17 16:14:551069검색

Go 언어에는 종속 패키지가 있습니다. 1. "go get" 명령을 사용하여 종속 패키지를 설치합니다. 2. "go mod"를 켠 다음 "go get"을 사용합니다. 3. github에서 종속 패키지를 수동으로 다운로드하여 해당 디렉토리에 넣습니다. 4. "GOPATH/pkg/mod" 아래에 해당 패키지를 복사합니다. 그런 다음 "go tidy"를 사용하여 자동으로 패키지 종속성을 조정하세요.

Go 언어에 종속 패키지가 있나요?

이 튜토리얼의 운영 체제: Windows 10 시스템, go1.20 버전, Dell G3 컴퓨터

종속 패키지가 있습니다. Go 언어로

이제는 go 모드 패키지 관리 도구를 사용하지만, 초보자는 종속 항목을 설치할 때 여전히 많은 문제를 겪고 있습니다. get

Go 언어에 종속 패키지가 있나요?go의 패키지 종속성을 처음 접한 날부터 선생님이나 읽은 정보는 다음과 같이 알려줄 것입니다: 직접 go get

. 이는 대부분의 패키지의 종속성 문제를 해결할 수 있는 가장 독창적인 설치 방법입니다.

그러나 설치에 100% 성공하지는 않습니다. 위 스크린샷: golang..org/x/crypto/ssh.

직접 go get, golang.org URL은 그렇지 않을 수 있습니다. 설명할 수 없는 이유로 인해 패키지를 성공적으로 설치할 수 없습니다.

2. GOPROXY

go get

这是最原始的安装方式,能解决大部分包的依赖问题。

但不是100% 都能安装成功,比如上面截图里面的包:golang.org/x/crypto/ssh

直接go get,可能会因为不可描述的原因无法访问到golang.org这个网址,包就无法安装成功。

二、配置 GOPROXY

go mod是go 1.11 新加的特性。

所以只要go版本大于 1.11,就自带了go mod包管理。

这是一个好东西,如果开启了go mod

项目里面初始化了go mod,再在工程目录下面使用go get拉包会自动使用go mod拉包,并整理到go.mod文件里。

但是默认使用的源是国外的,所以安装依赖包一般都很慢,或者不能成功。

所以需要设置下他们的代理,让他们从国内的服务器出去,这样速度和稳定性都能更好些。

如果使用的是goland可以command+,唤出偏好设置,在里面设置代理:

Go 언어에 종속 패키지가 있나요?

推荐代理到https://goproxy.cn这个上,七牛云家的,一直使用,很稳定。

修改好后,记得重新开终端!

如果使用的是其他IDE或者命令行,自行百度怎么设置代理。

设置完成后使用go env能看到当前go使用到的环境变量,可以用来检查配置是否OK。

三、使用github

如果上面两步操作后都还不能安装成功,就得使用非正常手段来安装依赖了。

包的引用情况

首先需要理解go本地的包是怎么存放,怎么引用的。

  • 如果是传统的go get下载的依赖包会存放在GOPATH/src/域名/包名 下面。
  • 如果是使用的go mod下载的依赖包会存放在GOPATH/pkg/mod/域名/包名@版本号 下面。

所以可以把包手动下载放到对应的目录下面即可。

手动下载包

对于github国内并不是完全不能访问,只是可能会比较慢,或者时常打不开,此时可以碰碰运气。

官方包都可以在这个仓库下面找到:github.com/golang

如何安装在每个包的README.md里面都会有描述:

The easiest way to install is to run go get -u http://golang.org/x/net. You can also manually git clone the repository to $GOPATH/src/http://golang.org/x/net.

大部分的依赖包都能在github里面找到对应包。

四、利用人脉

沿用上一种方案的思路,不是所有人都不能科学上网,可以寻求身边能科学上网的朋友,帮你下载包给你。

然后把GOPATH/pkg/mod

go 모드 code>는 go 1.11에 새로 추가되었습니다. 기능

Go 버전이 1.11 이상인 경우에는 go mod 패키지 관리 기능이 제공됩니다. p data-pid="2Mp6EA3a">이것은 좋은 일입니다. go mod가 활성화되어 있으면 🎜

프로젝트에서 go mod를 초기화하세요. code>를 입력한 다음 프로젝트 디렉토리에서 <code>를 사용하면 go get이 자동으로 go mod를 사용하여 패키지를 가져와서 go.mod 파일로 구성합니다 🎜

그러나 기본 소스는 해외에서 사용되므로 종속 패키지 설치가 일반적으로 느리거나 실패합니다. 🎜

따라서 프록시를 설정해야 합니다. 국내 서버에서 내보내면 속도와 안정성이 향상될 수 있습니다. 🎜

goland를 사용하는 경우 command+를 사용하여 기본 설정을 불러오고 그 안에 프록시를 설정할 수 있습니다. 🎜

🎜

Qiniu Yunjia, https://goproxy.cn에 프록시를 추천해 드리고 있는데 매우 안정적입니다. 🎜

🎜수정 후에는 반드시 터미널을 다시 열어주세요! 🎜🎜

다른 IDE 또는 명령줄을 사용하는 경우 Baidu에서 프록시를 설정하는 방법을 알아볼 수 있습니다. 🎜

설정 후 go env를 사용하여 현재 go에서 사용하는 환경 변수를 확인하면 구성이 괜찮은지 확인할 수 있습니다. 🎜

🎜3. github을 사용하세요🎜🎜

위 두 단계 후에도 설치에 성공하지 못할 경우 비정상적인 수단을 사용하여 종속 항목을 설치해야 합니다. 🎜

🎜패키지 참조 상황🎜🎜

우선 로컬 패키지가 어떻게 저장되고 참조하는지 이해해야 합니다. 🎜

  • 기존의 go get 다운로드 종속성 패키지인 경우 GOPATH/src/도메인 이름/패키지 이름 아래에 저장됩니다.
  • go mod를 사용하는 경우 다운로드한 종속성 패키지는 GOPATH/pkg/mod/도메인 이름/패키지 이름@버전 번호에 저장됩니다.

따라서 패키지를 수동으로 다운로드하여 해당 디렉터리에 넣을 수 있습니다. 🎜

🎜패키지 수동 다운로드🎜🎜

중국에서는 github에 완전히 접근이 불가능한 것은 아니지만 속도가 느리거나 열리지 않는 경우가 많습니다. 이때 당신은 행운을 시험해 볼 수 있습니다. 🎜

공식 패키지는 다음 창고에서 찾을 수 있습니다: github.com/golang 🎜

설치 방법은 각 패키지의 README.md에 설명되어 있습니다. 🎜

가장 쉬운 설치 방법은 go get -u http://golang.org/x/net을 실행하는 것입니다. 저장소를 $GOPATH/src/http://golang.org에 수동으로 git clone할 수도 있습니다. /x/net.🎜

대부분의 종속 패키지는 github에서 찾을 수 있습니다. 🎜

🎜4. 연결 사용 🎜🎜

모든 사람이 과학적으로 인터넷 서핑을 할 수는 없습니다. 과학적으로 인터넷 서핑을 할 수 있는 여러분 주변의 친구들이 여러분을 위해 패키지를 다운로드하도록 도와주세요. 🎜

그런 다음 GOPATH/pkg/mod 아래에 해당 패키지를 복사하세요. 🎜

5. go mod를 사용하세요

마지막 시나리오는 패키지 이름을 알고 문서를 통해 샘플 데모를 얻는 것입니다.

코드를 프로젝트에 직접 넣은 다음 go tidy를 사용하여 패키지 종속성을 자동으로 구성합니다. go tidy来自动规整包依赖。

一些常识

  • 1、包名就是仓库地址

比如:github.com/gin-gonic/gin

报名大都是代码所在仓库地址,大都是可以直接访问的。

  • 2、包里面的包

依赖包有一个非常好玩的地方,有时使用的包是包里面的包。

可能有点绕,但是很好理解。

比如文章开头的:golang.org/x/crypto/ssh这个包,

他就是 golang.org/x/crypto

상식

1 패키지 이름은 창고 주소입니다🎜

예: github.com/gin-gonic/gin🎜

등록은 대부분 코드가 있는 창고 주소로 이루어지며 대부분의 경우 직접 액세스할 수 있습니다. 🎜

  • 🎜2. 패키지 내의 패키지 🎜

종속 패키지에는 매우 흥미로운 점이 있습니다. 사용되는 패키지는 패키지 내의 패키지입니다. 🎜

조금 복잡할 수도 있지만 이해하기 쉽습니다. 🎜

예를 들어 기사 시작 부분에 있는 패키지: golang.org/x/crypto/ssh, 🎜

그는 golang.org/x/crypto다음 패키지입니다. 🎜🎜그래서 ssh 패키지를 직접 설치하면 패키지를 찾을 수 없는 경우가 많기 때문에 상위 레벨에 설치해야 합니다. 🎜

위 내용은 Go 언어에 종속 패키지가 있나요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.