如何使用`go install`命令安装git repo并收回错误发布的pkg.go.dev包?

3lxsmp7m  于 2023-06-19  发布在  Go
关注(0)|答案(2)|浏览(143)

我有一个小的package,在根目录下有main.go和go.mod,在src/*中有几个文件,src中的文件在所有文件上都包含package name
下面是main.go的内容:

package main

import (
    package_name "github.com/user/package/src"
)

func main() {
    package_name.Run()
}

这是我的.mod:

module github.com/user/package

go 1.20

我试图模仿https://github.com/junegunn/fzf的结构。但在我的情况下,每当我尝试做go install github.com/user/package@latest,我得到一个错误package github.com/user/package is not a main package相同的不会发生与fzf,你能请解释我的原因吗?

sr4lhrrt

sr4lhrrt1#

根据https://pkg.go.dev/github.com/asolopovas/dsync?tab=versions,您以前发布过v1.0.0。使用-x选项运行go install可确认:

$ go clean -modcache
$ go install -x github.com/asolopovas/dsync@latest
# get https://proxy.golang.org/github.com/@v/list
# get https://proxy.golang.org/github.com/asolopovas/@v/list
# get https://proxy.golang.org/github.com/asolopovas/dsync/@v/list
# get https://proxy.golang.org/github.com/asolopovas/dsync/@v/list: 200 OK (1.202s)
# get https://proxy.golang.org/github.com/@v/list: 404 Not Found (1.202s)
# get https://proxy.golang.org/github.com/asolopovas/@v/list: 404 Not Found (1.202s)
# get https://proxy.golang.org/github.com/asolopovas/dsync/@v/v1.0.0.info
# get https://proxy.golang.org/github.com/asolopovas/dsync/@v/v1.0.0.info: 200 OK (0.293s)
# get https://proxy.golang.org/github.com/asolopovas/dsync/@v/v1.0.0.mod
# get https://proxy.golang.org/github.com/asolopovas/dsync/@v/v1.0.0.mod: 200 OK (0.617s)
# get https://proxy.golang.org/sumdb/sum.golang.org/supported
# get https://proxy.golang.org/sumdb/sum.golang.org/supported: 404 Not Found (0.304s)
# <output truncated>
go: downloading github.com/asolopovas/dsync v1.0.0
# get https://proxy.golang.org/github.com/asolopovas/dsync/@v/v1.0.0.zip
# get https://proxy.golang.org/github.com/asolopovas/dsync/@v/v1.0.0.zip: 200 OK (0.324s)
package github.com/asolopovas/dsync is not a main package

下载https://proxy.golang.org/github.com/asolopovas/dsync/@v/v1.0.0.zip并检查其内容。事实上,v1.0.0github.com/asolopovas/dsync包不是主包。
现在您已经更新了master分支,将其转换为主包,标记一个新版本(如v1.1.0)并重试。希望go install github.com/asolopovas/dsync@latest现在可以工作了。

qv7cva1a

qv7cva1a2#

我通过阅读文档,在我的go.mod文件中添加撤销属性,并按照Zeke Lu的建议创建新的标签v1.0.1(像v1.1这样的标签不起作用,所以我不得不选择v1.0.1格式)来解决我的问题,然后我访问了https://pkg.go.dev/github.com/username/package@v1.0.1并单击请求,一夜之间我就有了一个新版本的软件包,它可以使用go install命令。
go.mod

module github.com/asolopovas/dsync

go 1.20

retract (
    v1.0.0 // Published accidentally.
    v0.1.0 // Published accidentally.
)

相关问题