Команда '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
Примечание. Запустите перед запуском этого кода, если он не работает. Он установит его для пользователя, под которым вы вошли.
Объяснение команды (для тех, кто хочет знать, так что вы можете отредактировать его, если хотите):
-
[ ! -d "/usr/local/go" ]
чтобы проверить, если go уже загружено. Если он уже есть, команда не сработает. Вам нужно бежатьrm /usr/local/go
чтобы заставить его работать. -
cd /tmp && wget https://go.dev/dl/go1.17.4.linux-amd64.tar.gz
чтобы перейти в каталог tmp и загрузить двоичный файл go. -
tar -C /usr/local/ -xzf go1.17.4.linux-amd64.tar.gz
распаковать загруженный tar-файл в каталог установки/usr/local
-
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:
Это общесистемное решение, будет работать для всех пользователей, «выдерживает» перезагрузки и т. д.