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

Arn*_*d H 17 macos upgrade go

几乎是标题.我为OS X下载/安装了Go 1.8,但是当我去的时候

$ go version
go version go1.7.5 darwin/amd64
Run Code Online (Sandbox Code Playgroud)

我的.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
Run Code Online (Sandbox Code Playgroud)

我的工作区位于我的主文件夹中名为"Go"的目录中.

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

  • 我检查了/ usr/local/go/bin中的文件,VERSION文件状态为"1.8",所以我知道安装成功了.

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

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

  • 这不是版本号本身的错误,因为我无法使用版本1.8中引入的"NextResultSet()"sql功能

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

icz*_*cza 20

你显然安装了旧版本的Go,否则你看不到go version go1.7.5 darwin/amd64它的输出go version.

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

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

请注意,在您.bashrc附加正确的Go bin文件夹到结尾PATH:

export PATH=$PATH:/usr/local/go/bin
Run Code Online (Sandbox Code Playgroud)

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


Shr*_*eya 18

我通过转到 /usr/local/bin 文件夹手动删除了旧的 go 版本。

  1. 首先检查旧版本的路径:
    which go
  2. 打开包含 go 文件的文件夹:
    open /usr/local/bin
  3. 删除go文件。

现在检查版本,它将显示更新的版本。


Sre*_*sha 12

我遇到过同样的问题.即使在从golang网站下载安装golang 1.10之后,mac终端仍然显示1.7版本.

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

brew update
brew upgrade golang
Run Code Online (Sandbox Code Playgroud)


bor*_*ris 9

TLDR 我已经通过将二进制文件的链接从安装文件夹移动到解决了我的问题/usr/bin/go


一步步:

  1. 找到 go 二进制文件:

    $which go
    /usr/bin/go
    
    Run Code Online (Sandbox Code Playgroud)
  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
    
    Run Code Online (Sandbox Code Playgroud)
  3. 将这 3 个符号链接复制到/usr/bin


Vis*_*hal 5

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

cp /usr/local/go/bin/* /usr/local/bin/
Run Code Online (Sandbox Code Playgroud)