使用asdf管理Golang版本后,第三方包版本兼容问题咨询
问题解答
卸载Go 1.20.4会丢失assh吗?
会。你用Go 1.20.4执行go install时,assh的编译二进制文件会被放在该版本Go的专属目录(比如~/.asdf/installs/golang/1.20.4/packages/bin/assh),asdf生成的shim本质是指向这个路径的快捷方式。如果卸载1.20.4,这个二进制文件会被删除,shim随之失效,assh也就无法正常运行了。
如何处理这类关联特定Go版本的第三方包?
- 重新用新版本Go编译安装:切换到Go 1.20.5(执行
asdf global golang 1.20.5全局切换,或asdf local golang 1.20.5局部切换),然后直接运行go install moul.io/assh/v2@latest。这会在1.20.5的packages目录下生成新的assh二进制,asdf会自动更新shim指向这个新路径,后续assh就会关联新版本Go。 - 固定第三方包版本(可选):如果不想每次安装都拉取assh的最新版,可以指定具体版本号,比如
go install moul.io/assh/v2@v2.14.0(替换为你需要的实际版本号),这样能保证工具版本稳定,不受Go版本更新的影响。 - 统一管理工具链:每次切换Go版本后,对依赖的第三方工具重新执行
go install,确保工具和当前Go版本匹配。如果有多个常用工具,可以把它们的安装命令整理成脚本,切换版本后一键执行,避免遗漏。
内容的提问来源于stack exchange,提问作者Vitor Jr
相关产品推荐
相关产品推荐

