Govendor不导入较新版本

时间:2019-12-05 18:28:08

标签: go package-managers govendor

golang.org/x/net/html的旧版本具有vulnerabilities。 kes!更好地升级软件包。两年前,我们使用govendor来建立Shopify集成项目;因此,让我们使用govendor进行升级:

ip-192-168-3-40:Shopify-Gateway username$ git diff
ip-192-168-3-40:Shopify-Gateway username$ govendor fetch golang.org/x/net/html
ip-192-168-3-40:Shopify-Gateway username$ git diff
ip-192-168-3-40:Shopify-Gateway username$

Govendor没有做任何事情!这是vendor.json之后的fetch文件:

    {
        "checksumSHA1": "vqc3a+oTUGX8PmD0TS+qQ7gmN8I=",
        "path": "golang.org/x/net/html",
        "revision": "d997483c6db05184c79c182674d01f1e7b7553ae",
        "revisionTime": "2017-05-30T13:01:13Z"
    },

这是一个相当旧的修订版,肯定比2018年9月25日发布的漏洞修复程序更早。Govendor是一个较旧的程序包,似乎不再维护了。我需要更换govendor吗?有自然的替代品吗?还是我做错了什么阻止我更新程序包?

版本信息:

ip-192-168-3-40:Shopify-Gateway username$ govendor --version v1.0.9
ip-192-168-3-40:Shopify-Gateway username$ go version
go version go1.13.1 darwin/amd64

编辑:许多人建议使用go模块。我们不能使用它们!我们依赖于未版本化的依赖关系,当我们尝试升级软件包以使用模块时,该依赖关系将降至较低的版本,从而引入了数据库安全漏洞。我需要能够就地更新软件包,因为govendor已安装它们。

我还尝试安装要使用的govendor软件包的特定版本号:

ip-192-168-3-40:Shopify-Gateway username$ govendor fetch golang.org/x/net/html@d26f9f9a57f3fab6a695bec0d84433c2c50f8bbf
ip-192-168-3-40:Shopify-Gateway username$ git diff
ip-192-168-3-40:Shopify-Gateway username$

为什么服务商不更新我的包裹?

1 个答案:

答案 0 :(得分:1)

您必须迁移到go modules。  首先,创建一个新模块。通过这些简单的步骤,您将能够初始化模块并创建go.mod文件[https://stackoverflow.com/a/57944766/9361998]

无需输入:

go mod init YOUR_REPOSITORY_NAME
go clean 
go mod download # wait until dependencies are downloaded
go build #be sure that the code compile
go mod tidy #prune unnecessary dependencies
go get -u ./... #update dependencies

请注意,使用最新命令将dep更新为最新的MINOR补丁,请确保将go.mod文件更改为最新的MAJOR版本

编辑

另一种方法是使用GOPATHgo get -v -u github.com/repository_name/module_name中下载模块。这样,该模块将下载到您的GOPATH中。