我想知道是否存在使用golang删除或删除go软件包的方法。为了简单起见,与 go get 命令相反。
e.g.
$ go get <PACKAGE_NAME>
$ go delete <PACKAGE_NAME> (Looking for similar functionality)
请注意,我知道我们可以使用 rm 命令从 src 和pkg目录中手动删除下载的文件。 但是问题在于系统命令 rm 并不知道您要执行的特定操作(例如,在$ GOPATH / pkg中查看..),这对于用户使用时是一个额外的步骤rm 。我正在寻找所有软件包管理器都提供的..如一条评论中所述..(npm卸载,pip卸载等。)。
答案 0 :(得分:4)
您可以将其从磁盘上删除:
rm -r $GOPATH/src/<PACKAGE_NAME>
这将完全删除软件包。 ,没有用于删除软件包的工具或go命令。但这应该足够简单。
答案 1 :(得分:4)
对于那些使用Go模块的用户,rm
和go.mod
文件仍然很脏,这是不够的。您可以使用有效的go.sum
命令,但并不直观。
来自https://blog.golang.org/migrating-to-go-modules:
只有在检查了以下所有软件包后才能删除依赖项 一个模块,以及这些软件包的所有可能的构建标签组合。 普通的构建命令不会加载此信息,因此 无法安全删除依赖项。
go mod tidy命令清除了这些未使用的依赖项
我第一次使用它删除了未使用的依赖项,但也安装了新的依赖项。后来我发现它运行测试来检查是否可以按照https://github.com/golang/go/wiki/Modules#why-does-go-mod-tidy-record-indirect-and-test-dependencies-in-my-gomod中所述删除依赖项。
答案 2 :(得分:2)
但是有一种简单的方法可以删除下载的软件包(删除PACKAGE_NAME吗?)?
不,没有。
手动rm
是行之有效的方式。
答案 3 :(得分:0)
我找到了一个简单的解决方案。我正在使用鱼壳,所以我只是在〜/ .config / fish / config.fish中添加了此简单功能。
它完美地清理了$ GOPATH下的空文件夹。如果您想保留空文件夹,则可能要删除此部分,但对我来说,这很烦人。
请注意,必须在函数声明之前声明您的GOPATH,否则将不起作用。
请确保您正在检查空的args,因为否则,这将删除整个$ GOPATH / src文件夹,并且您不希望这样做。
如果您不在Mac操作系统下,则需要编辑“ darwin_amd64”文件夹,如果您不在鱼上,则将无法正常工作,但您可以对其进行修改以适合您当前的外壳。
export GOPATH=$HOME/Go
function godel
if string length -q $argv
rm -rf $GOPATH/src/$argv $GOPATH/pkg/darwin_amd64/$argv.a
find $GOPATH -type d -empty -delete
else
echo you must send an argument
end
end