看看golang软件包的发展和改进程度如何,我想知道软件包版本的问题是如何解决的?
我看到一种方法是将第三方包存储在项目文件夹下.
但是,如果我安装它go get会怎么样?
tux*_*21b 282
go get将包安装在列出的第一个目录中GOPATH(一个环境变量,可能包含冒号分隔的目录列表).您可以使用go get -u更新现有包.
您还可以使用go get -u all更新您的所有包GOPATH
对于较大的项目,为每个项目创建不同的GOPATH可能是合理的,因此更新项目A中的库不会导致项目B中的问题.
键入go help gopath以查找有关GOPATH环境变量的更多信息.
Sal*_*ali 55
@tux答案很棒,只想添加你可以使用go get来更新特定的包:
go get -u full_package_name
Run Code Online (Sandbox Code Playgroud)
dtx*_*dtx 14
由于问题提到第三方库而不是所有包,因此您可能希望回到使用通配符.
一个用例是:我只想更新从Github VCS获得的所有软件包,然后你会说:
go get -u github.com/... // ('...' being the wildcard).
Run Code Online (Sandbox Code Playgroud)
这将继续,只在当前更新您的github包 $GOPATH
同样适用于VCS,也就是说你只想从ogranizaiton A的repo升级所有包,因为他们已经发布了你依赖的修补程序:
go get -u github.com/orgA/...
Run Code Online (Sandbox Code Playgroud)
Aus*_*Aus 10
上述答案有以下问题:
要避免这些,请执行以下操作:
go get -d要指定版本或提交:
go get -u otherpackage@1.2.3
go get -u otherpackage@git-sha
Run Code Online (Sandbox Code Playgroud)
见https://github.com/golang/go/wiki/Modules#daily-workflow
小智 6
由于这是谷歌搜索时最热门的搜索结果之一,我只是想补充一下,对于 1.17,“不推荐在模块模式下使用‘go get’安装可执行文件”。
go get -d
go install
go install <with_version>
https://golang.org/doc/go-get-install-deprecation
| 归档时间: |
|
| 查看次数: |
82253 次 |
| 最近记录: |