Команда go version показывает номер старой версии после обновления до 1.8

В значительной степени название. Я загрузил/установил Go 1.8 для OS X, но когда я иду

$ 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 в качестве рабочей версии

  • Это не ошибка в самом номере версии, поскольку я не могу использовать функциональность "NextResultSet()", введенную в версии 1.8

Я считаю, что виновник может быть неправильной конфигурацией в файле .bashrc выше, поскольку только терминал застрял в старой версии, но я не могу понять, что с ним не так.

Ответ 1

У вас, очевидно, установлена ​​старая версия Go, иначе вы не могли бы видеть go version go1.7.5 darwin/amd64 как вывод go version.

В IDE может быть более продвинутый метод обнаружения Go установок других, которые просто сканируют PATH и GOROOT (и поэтому ваша IDE обнаружила и предложила новый Go 1.8).

Выполните which go, и вы увидите, где находится ваш старый Go. Удалите его (и ссылки на него).

Обратите внимание, что в .bashrc вы добавляете правильную папку Go bin в конец PATH:

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

Это означает, что если PATH содержит папку bin старой установки Go (очень вероятно), которая используется для выполнения команды go.

Ответ 2

Я была такая же проблема. Даже после установки golang 1.10 на Mac через загрузку с веб-сайта golang, терминал Mac все еще показывал версию 1.7.

Обновление golang через homebrew решило мою проблему.

brew update
brew upgrade golang

Ответ 3

TL;DR Я решил мою проблему, переместив ссылку на двоичный файл из папки установки в /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. скопируйте эти 3 символические ссылки в /usr/bin

Ответ 4

В моем случае мне пришлось заменить двоичные файлы вручную после переустановки.

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