go version命令在更新到1.8后显示旧版本号

时间:2017-03-22 13:24:53

标签: macos go upgrade

几乎是标题。我为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

我的工作区位于名为&#34; Go&#34;的目录中。在我的主文件夹中。

到目前为止我检查了什么:

  • 我检查了/ usr / local / go / bin中的文件,VERSION文件说明了&#34; 1.8&#34;,所以我知道安装成功。

  • 我还更新了终端会话,我甚至重启了我的电脑,以确保没有其他进程干扰它。

  • 我使用Webstorm作为我的IDE,它正确地将1.8识别为工作版

  • 它不是版本号本身的错误,因为我无法使用&#34; NextResultSet()&#34; sql功能,在1.8版本中引入

我认为罪魁祸首可能是上面.bashrc文件中的错误配置,因为只有终端卡在旧版本上,但我无法弄清楚它有什么问题。

5 个答案:

答案 0 :(得分:15)

您显然安装了旧版本的Go,否则您无法将go version go1.7.5 darwin/amd64视为go version的输出。

IDE可能有更高级的方法来检测Go安装,只需扫描PATHGOROOT(这就是为什么你的IDE找到并建议更新的Go 1.8)。

执行which go,您就会看到旧Go所在的位置。删除它(及其引用)。

请注意,在您的.bashrc中,您需要将正确的Go bin文件夹附加到PATH end

export PATH=$PATH:/usr/local/go/bin

这意味着如果PATH包含旧Go安装的bin文件夹(很可能),则用于执行go命令。

答案 1 :(得分:6)

我有同样的问题。即使在golang网站上安装Golang 1.10后,mac终端仍然显示1.7版本。

通过自制程序更新golang修复了我的问题。

brew update
brew upgrade golang

答案 2 :(得分:1)

TLDR 通过将链接从安装文件夹移动到二进制文件/usr/bin/go

,我已经解决了我的问题

分步操作:

  1. 找到二进制文件:

    $which go
    /usr/bin/go
    
  2. 创建符号链接:

    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

答案 3 :(得分:0)

就我而言,我必须在重新安装后手动替换二进制文件。

cp /usr/local/go/bin/* /usr/local/bin/

答案 4 :(得分:0)

我安装了来自 https://golang.org/doc/install 的最新版本 这将替换默认路径中的路径,即 /usr/local/go/bin/go for mac 并且不需要对 ~/.bashrc/ ~/.bash_profile 在 mac 上进行任何手动更改,除非从未设置默认路径.