如何使用命令行在Linux中卸载Go工具?

如何使用命令行在Linux中卸载Go工具?

我安装cf使用

go get github.com/xalanq/cf-tool
cd $GOPATH/src/github.com/xalanq/cf-tool
go build -ldflags "-s -w" cf.go

cf --version
output: Codeforces Tool (cf) v1.0.0

我尝试使用卸载它

sudo apt-get --purge remove Codeforces\ Tool && sudo apt-get autoremove

sudo apt-get --purge remove cf && sudo apt-get autoremove

但我收到了类似的错误

E: Unable to locate package Codeforces Tool

E: Unable to locate package cf

但它显示错误如何卸载它

答案1

您只能卸载apt已安装的软件apt。如果您使用其他方式安装了软件,apt将无法卸载该软件,并且您必须使用其他方式将其从系统中删除。

例如,Go 软件基础架构 和apt是独立的,二进制文件和其他文件通过安装go getgo install不以apt任何方式识别。

cf-tool要从中删除项目$GOPATH,您可以尝试

go clean -x -i

从模块目录,$GOPATH/src/github.com/xalanq/cf-tool.这就是您通常如何从项目的源目录中卸载您使用go install.然而,您似乎正在运行一个稍微过时的 Go 语言工具版本,所以我不知道这是否有效(请参阅 参考资料go help clean)。

删除文件rm也可以(使用您在问题中提到的路径名):

rm -r "$GOPATH/src/github.com/xalanq/cf-tool"
rm "$GOPATH/bin/cf"

但是,在我的 Go 版本系统上go1.21.0(这意味着我会使用go install而不是go get安装该cf东西),路径和文件名是相当不同的:

rm -r "${GOPATH:-$HOME/go}/pkg/mod/github.com/xalanq/[email protected]"
rm "${GOPATH:-$HOME/go}/bin/cf-tool"

简而言之:用于rm删除可执行文件和模块目录。

答案2

命令名称可能只是cf为了方便输入,但软件包的名称可能会更长。或者该工具可能*.deb根本不是从包中安装的。

首先运行dpkg-query -S $(which cf)尝试找出实际的包名称。如果没有输出,则表明该cf工具不是使用包管理器安装的。它似乎是由开发人员作为单个可执行文件提供的它只是被放入 $PATH 中的某个目录中;如果您是这样安装的,则只需删除它即可卸载。

相关内容