看看golang软件包是如何积极地成长和改进的,我想知道软件包版本的问题是如何解决的?我发现一种方法是将第三方包存储在项目文件夹下。但是如果我用go get安装它呢?
go get
nafvub8i1#
go get将在GOPATH(可能包含以冒号分隔的目录列表的环境变量)列出的第一个目录中安装程序包。您可以使用go get -u更新现有程序包。您还可以使用go get -u all更新GOPATH中的所有软件包对于较大的项目,为每个项目创建不同的GOPATH可能是合理的,这样更新项目A中的库就不会在项目B中引起问题。键入go help gopath以了解有关GOPATH环境变量的更多信息。
GOPATH
go get -u
go get -u all
go help gopath
w8f9ii692#
@tux回答很棒,只是想补充一下,你可以用go get来更新一个特定的包:
go get -u full_package_name
dohp0rv53#
因为这个问题提到了***第三方***库,而不是***所有***包,那么您可能需要回退到使用通配符。使用情形为:我只想更新从Github VCS获得的所有软件包,那么你只需要说:
go get -u github.com/... // ('...' being the wildcard).
这将继续,并且只更新当前$GOPATH中的github包同样的情况也适用于VCS中,假设您只想升级A组织的repo中的所有软件包,因为他们发布了您依赖的热修复程序:
$GOPATH
go get -u github.com/orgA/...
wwwo4jvm4#
以上回答存在以下问题:1.它们会更新所有内容,包括您的应用(以防您有未提交的更改)。1.它们更新了您可能已从项目中删除但已在磁盘上的包。要避免这些问题,请执行以下操作:1.删除要更新的第三方文件夹。1.转到你的应用程序文件夹并运行go get -d
go get -d
niknxzdl5#
要指定版本或提交:
go get -u otherpackage@1.2.3 go get -u otherpackage@git-sha
请参见www.example.comhttps://github.com/golang/go/wiki/Modules#daily-workflow
kxeu7u2r6#
转到1.13(exec从模块根目录)更新指定的依赖项:
go get -u <package-name>
将所有直接和间接依赖项更新为最新的次要升级或修补程序升级(忽略预发行版):
go get -u ./... # or go get -u=patch ./...
参考:https://github.com/golang/go/wiki/Modules#daily-workflowgo help get
go help get
xghobddn7#
由于这是Google搜索的热门内容之一,我只想补充一点,对于1. 17,“在模块模式下使用'go get'安装可执行文件是不赞成的”。
go install
go install <with_version>
https://golang.org/doc/go-get-install-deprecation
57hvy0tb8#
转到路径并键入
go get -u ./...
它将更新所有必需包。
vlju58qv9#
如果要从特定分支升级版本,可以用途:
go get -u <path-to-repo>@<branch>
9条答案
按热度按时间nafvub8i1#
go get
将在GOPATH
(可能包含以冒号分隔的目录列表的环境变量)列出的第一个目录中安装程序包。您可以使用go get -u
更新现有程序包。您还可以使用
go get -u all
更新GOPATH
中的所有软件包对于较大的项目,为每个项目创建不同的GOPATH可能是合理的,这样更新项目A中的库就不会在项目B中引起问题。
键入
go help gopath
以了解有关GOPATH
环境变量的更多信息。w8f9ii692#
@tux回答很棒,只是想补充一下,你可以用go get来更新一个特定的包:
dohp0rv53#
因为这个问题提到了***第三方***库,而不是***所有***包,那么您可能需要回退到使用通配符。
使用情形为:我只想更新从Github VCS获得的所有软件包,那么你只需要说:
这将继续,并且只更新当前
$GOPATH
中的github包同样的情况也适用于VCS中,假设您只想升级A组织的repo中的所有软件包,因为他们发布了您依赖的热修复程序:
wwwo4jvm4#
以上回答存在以下问题:
1.它们会更新所有内容,包括您的应用(以防您有未提交的更改)。
1.它们更新了您可能已从项目中删除但已在磁盘上的包。
要避免这些问题,请执行以下操作:
1.删除要更新的第三方文件夹。
1.转到你的应用程序文件夹并运行
go get -d
niknxzdl5#
要指定版本或提交:
请参见www.example.comhttps://github.com/golang/go/wiki/Modules#daily-workflow
kxeu7u2r6#
转到1.13
(exec从模块根目录)
更新指定的依赖项:
将所有直接和间接依赖项更新为最新的次要升级或修补程序升级(忽略预发行版):
参考:
https://github.com/golang/go/wiki/Modules#daily-workflow
go help get
xghobddn7#
由于这是Google搜索的热门内容之一,我只想补充一点,对于1. 17,“在模块模式下使用'go get'安装可执行文件是不赞成的”。
go get -d
go install
go install <with_version>
https://golang.org/doc/go-get-install-deprecation
57hvy0tb8#
转到路径并键入
它将更新所有必需包。
vlju58qv9#
如果要从特定分支升级版本,可以用途: