我运行go get package下载了一个包,然后才知道我需要设置我的GOPATH,否则这个包会玷污我的根go安装(我更喜欢保持我的go安装干净,并将核心与自定义分离)。如何删除以前安装的包?
当前回答
go包可以按如下方式移除。
go get package@none
这里@none是设置为none的版本部分。这样就去掉了包装。
其他回答
伙计,我昨天也遇到了同样的问题。在$GOPATH/pkg/<architecture>中找不到任何东西。然后,我意识到在我的$HOME中有一个go目录。所以,我移动到$HOME/<用户名>/go/pkg/mod/github.com,看到我从github安装的所有包
go包可以按如下方式移除。
go get package@none
这里@none是设置为none的版本部分。这样就去掉了包装。
你可以使用go mod tidy清理未使用的包
删除对某个模块的依赖,并降级需要它的模块:
go get example.com/mod@none
来源:run go help get。
#!/bin/bash
goclean() {
local pkg=$1; shift || return 1
local ost
local cnt
local scr
# Clean removes object files from package source directories (ignore error)
go clean -i $pkg &>/dev/null
# Set local variables
[[ "$(uname -m)" == "x86_64" ]] \
&& ost="$(uname)";ost="${ost,,}_amd64" \
&& cnt="${pkg//[^\/]}"
# Delete the source directory and compiled package directory(ies)
if (("${#cnt}" == "2")); then
rm -rf "${GOPATH%%:*}/src/${pkg%/*}"
rm -rf "${GOPATH%%:*}/pkg/${ost}/${pkg%/*}"
elif (("${#cnt}" > "2")); then
rm -rf "${GOPATH%%:*}/src/${pkg%/*/*}"
rm -rf "${GOPATH%%:*}/pkg/${ost}/${pkg%/*/*}"
fi
# Reload the current shell
source ~/.bashrc
}
用法:
# Either launch a new terminal and copy `goclean` into the current shell process,
# or create a shell script and add it to the PATH to enable command invocation with bash.
goclean github.com/your-username/your-repository