go version 命令显示更新到 1.8 后的旧版本号
Posted
技术标签:
【中文标题】go version 命令显示更新到 1.8 后的旧版本号【英文标题】:go version command shows old version number after update to 1.8 【发布时间】:2017-08-14 15:30:01 【问题描述】:标题差不多。我为 OS X 下载/安装了 Go 1.8,但是当我去时
$ go version
go version go1.7.5 darwin/amd64
我的 .bashrc 如下所示
# some exports omitted
NPM_PACKAGES=/Users/<me>/.npm-packages
NODE_PATH="$NPM_PACKAGES/lib/node_modules:$NODE_PATH"
export PATH=~/Library/Python/3.4/bin:$PATH
export GOPATH=$HOME/Go
export PATH=$PATH:/usr/local/go/bin
我的工作区位于我的主文件夹中名为“Go”的目录中。
到目前为止我检查过的内容:
我检查了/usr/local/go/bin中的文件,VERSION文件状态为“1.8”,所以我知道安装成功了。
我还更新了终端会话,我什至重新启动了我的电脑以确保没有其他进程干扰它。
我使用 Webstorm 作为我的 IDE,它正确地将 1.8 识别为工作版本
这不是版本号本身的错误,因为我无法使用 1.8 版中引入的“NextResultSet()”sql 功能
我认为罪魁祸首可能是上面 .bashrc 文件中的错误配置,因为只有终端卡在旧版本上,但我无法弄清楚它有什么问题。
【问题讨论】:
执行which go
,你会看到你的旧 Go 所在的位置。删除它(以及对它的引用)。
哦,我明白了!我从 usr/local 中删除了 go 文件夹,并在 usr/local/bin 中删除了 go 文件,现在它可以正确显示了。谢谢!
【参考方案1】:
你显然安装了旧版本的 Go,否则你看不到 go version go1.7.5 darwin/amd64
作为 go version
的输出。
除了简单地扫描 PATH
和 GOROOT
之外,IDE 可能具有更高级的检测 Go 安装的方法(这就是您的 IDE 发现并建议更新的 Go 1.8 的原因)。
执行which go
,你会看到你的旧 Go 驻留在哪里。删除它(以及对它的引用)。
请注意,在您的 .bashrc
中,您将正确的 Go bin
文件夹附加到 PATH
的 end:
export PATH=$PATH:/usr/local/go/bin
这意味着如果 PATH
包含旧 Go 安装的 bin
文件夹(很可能),则用于执行 go
命令。
【讨论】:
【参考方案2】:我有同样的问题。即使通过golang官网下载在mac上安装golang 1.10后,mac终端仍然显示1.7版本。
通过自制软件更新 golang 解决了我的问题。
brew update
brew upgrade golang
【讨论】:
+1 - 我发现即使我最初通过他们网站上的 .pkg 安装了 golang,我的 /usr/local/bin/go 在运行brew install dep
后指向 golang 的 brew 安装另一个项目。
这个效果最好。 Brew 应该知道你在哪里安装 go and go 二进制文件。【参考方案3】:
就我而言,我必须在重新安装后手动替换二进制文件。
cp /usr/local/go/bin/* /usr/local/bin/
【讨论】:
【参考方案4】:TLDR
我已经解决了我的问题,将链接从安装文件夹移动到了/usr/bin/go
一步一步:
查找二进制文件:
$which go
/usr/bin/go
创建符号链接:
ln -s /usr/local/go/bin/go go
ln -s /usr/local/go/bin/godoc godoc
ln -s /usr/local/go/bin/gofmt gofmt
将这 3 个符号链接复制到 /usr/bin
【讨论】:
这对我有用。谢谢【参考方案5】:我从https://golang.org/doc/install安装了最新版本 这将替换默认路径中的那个,即 mac 的 /usr/local/go/bin/go 并且不需要对 mac 上的 ~/.bashrc/ ~/.bash_profile 进行任何手动更改,除非从未设置过默认路径.
【讨论】:
以上是关于go version 命令显示更新到 1.8 后的旧版本号的主要内容,如果未能解决你的问题,请参考以下文章
GoLand调试报错:Version of Delve is too old for this version of Go...
mac下,改了java_home为jdk1.6,但是java -version版本还是1.8