Go如何更新第三方软件包?

时间:2012-04-30 12:11:43

标签: go

看看golang软件包的发展和改进程度如何,我想知道软件包版本的问题是如何解决的?

我看到一种方法是将第三方软件包存储在项目文件夹下。

但是如果我用go get安装它呢?

6 个答案:

答案 0 :(得分:252)

go get会将软件包安装在GOPATH列出的第一个目录中(一个环境变量,可能包含以冒号分隔的目录列表)。您可以使用go get -u更新现有软件包。

您还可以使用go get -u all更新GOPATH

中的所有套餐

对于较大的项目,为每个项目创建不同的GOPATH可能是合理的,因此更新项目A中的库不会导致项目B中出现问题。

键入go help gopath以了解有关GOPATH环境变量的更多信息。

答案 1 :(得分:44)

@tux答案很棒,只是想补充一点,您可以使用go get来更新特定的包:

go get -u full_package_name

答案 2 :(得分:7)

以上回答有以下问题:

  1. 他们会更新所有内容,包括您的应用(如果您有未提交的更改)。
  2. 他们更新了您可能已从项目中删除但已在磁盘上的软件包。
  3. 要避免这些,请执行以下操作:

    1. 删除要更新的第三方文件夹。
    2. 转到您的app文件夹并运行go get -d

答案 3 :(得分:4)

要指定版本或提交:

go get -u otherpackage@1.2.3

go get -u otherpackage@git-sha

请参见https://github.com/golang/go/wiki/Modules#daily-workflow

答案 4 :(得分:3)

转到1.13

(从模块根目录执行)

更新指定的依赖项:

go get -u <package-name>

将所有直接和间接依赖项更新为最新的次要或补丁升级(忽略预发行版):

go get -u ./...
# or
go get -u=patch ./...

参考:

https://github.com/golang/go/wiki/Modules#daily-workflow

go help get

答案 5 :(得分:0)

转到路径并输入

go get -u ./..

它将更新所有需要的包。