Команда 'go' не найдена

Это не вопрос программирования.

У меня есть машина с Ubuntu, и я установил в нее Golang. Он работал нормально... Я даже запустил в нем несколько программ, но файл "go1.11.2.linux-amd64.tar.gz" находился в моем домашнем каталоге, поэтому я подумал, что будет нормально перенести его в Загрузки каталог. После перемещения я не могу использовать команду Go, и я получаю команду 'go' not found. Я попытался переместить файл обратно в домашний каталог, но я все еще получаю ту же ошибку.

Кто-нибудь может объяснить мне, что происходит? Спасибо!!

richie@richie-ThinkPad-T430:~$ go version

Command 'go' not found, but can be installed with:

sudo snap install go         # version 1.11.2, or
sudo apt  install golang-go
sudo apt  install gccgo-go 

See 'snap info go' for additional versions.

Команды, которые я использовал для установки Go:

wget https://dl.google.com/go/go1.11.2.linux-amd64.tar.gz
sudo tar -C /usr/local -xzf go1.11.2.linux-amd64.tar.gz
export PATH=$PATH:/usr/local/go/bin
source ~/.profile

7 ответов

Решение

Иос в комментариях выше, как правильно. Вы должны добавить изменения в PATH в вашем .profile, Из установочного документа (выделение добавлено):

добавлять /usr/local/go/bin к переменной среды PATH. Вы можете сделать это, добавив эту строку в свой /etc/profile (для общесистемной установки) или $HOME/.profile:

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

От: Установленный golang все еще идет: команда не найдена #20

Используйте эту команду:

sudo apt update && sudo apt install golang

Использовать nano ~/.profile отредактировать файл и добавить следующее:

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

Сохраните файл с помощью команды source ~/.profile. Проверить версию:go version

@Richie Попробуйте добавить точную команду экспорта в файл ~/.bashrc. Вам нужно получить файл ~/.bashrc, чтобы изменения произошли в вашем текущем терминале. Со следующего раза, когда вы открываете терминал, вы сможете найти команду "go". Это сработало для меня.

Однострочная команда для установки go,

      [ ! -d "/usr/local/go" ] && cd /tmp && wget https://go.dev/dl/go1.17.4.linux-amd64.tar.gz && tar -C /usr/local/ -xzf go1.17.4.linux-amd64.tar.gz && cd /usr/local/ && echo "export PATH=\$PATH:/usr/local/go/bin:\$HOME/go/bin" >> ~/.bashrc && echo "export GOROOT=/usr/local/go" >> ~/.bashrc && echo "export PATH=\$PATH:/usr/local/go/bin:\$HOME/go/bin" >> /home/*/.bashrc && echo "export GOROOT=/usr/local/go" >> /home/*/.bashrc && source ~/.bashrc && source /home/*/.bashrc

Примечание. Запустите перед запуском этого кода, если он не работает. Он установит его для пользователя, под которым вы вошли.

Объяснение команды (для тех, кто хочет знать, так что вы можете отредактировать его, если хотите):

  1. [ ! -d "/usr/local/go" ]чтобы проверить, если go уже загружено. Если он уже есть, команда не сработает. Вам нужно бежать rm /usr/local/goчтобы заставить его работать.
  2. cd /tmp && wget https://go.dev/dl/go1.17.4.linux-amd64.tar.gzчтобы перейти в каталог tmp и загрузить двоичный файл go.
  3. tar -C /usr/local/ -xzf go1.17.4.linux-amd64.tar.gzраспаковать загруженный tar-файл в каталог установки /usr/local
  4. cd /usr/local/ && echo "export PATH=\$PATH:/usr/local/go/bin:\$HOME/go/bin" >> ~/.bashrc && echo "export GOROOT=/usr/local/go" >> ~/.bashrc && echo "export PATH=\$PATH:/usr/local/go/bin:\$HOME/go/bin" >> /home/*/.bashrc && echo "export GOROOT=/usr/local/go" >> /home/*/.bashrc && source ~/.bashrc && source /home/*/.bashrcустанавливать GOPATHа также GOROOTдля баш терминала.

Убедитесь, что GOPATH переменная среды установлена ​​на /usr/local/bin.

Чтобы использовать экосистему Ubuntu/Debian (вместо редактирования путей вручную), можно установить любую версиюgolang-*-goнапример:

      sudo apt install golang-1.20-go

а затем настройте его по умолчанию:

      sudo update-alternatives --install /usr/local/bin/go go /usr/lib/go-1.20/bin/go 1

Или в случае ОП, когдаgoустанавливается сwgetпо другому пути:

      sudo update-alternatives --install /usr/local/bin/go go /usr/local/go/bin/go 1

Таким образом, вы даже можете установить и настроить несколько версий, а затем выбрать ту, которая вам больше нравится, например:

      sudo update-alternatives --config go    
There are 2 choices for the alternative go (providing /usr/local/bin/go).

  Selection    Path                     Priority   Status
------------------------------------------------------------
* 0            /usr/lib/go-1.20/bin/go   1         auto mode
  1            /usr/lib/go-1.18/bin/go   1         manual mode
  2            /usr/lib/go-1.20/bin/go   1         manual mode

Press <enter> to keep the current choice[*], or type selection number: 

Это общесистемное решение, будет работать для всех пользователей, «выдерживает» перезагрузки и т. д.

Другие вопросы по тегам