2016-03-18 5 views
7

Я пытаюсь запустить golang в интерактивном режиме.Ошибка «команда не найдена» с Golang

Я хочу использовать go-eval для этого, я следовал README инструкции:

  • Я успешно провел go get github.com/sbinet/go-eval/
  • Я выбежала go-eval что привело к -bash: go-eval: command not found

Некоторые больше информации:

  • echo $PATH возвращается: /usr/local/go/bin:...

  • echo $GOPATH возвращается: $HOME/golang

  • сигнад whereis go-eval возвращает никакого вывода

  • работает go install go-eval возвращается:

    can't load package: package go-eval: cannot find package "go-eval" in any of: /usr/local/go/src/go-eval (from $GOROOT) $HOME/golang/src/go-eval (from $GOPATH)

+0

Какой у вас GOPATH? это GOPATH/bin в вашей PATH? – user1431317

+0

- это $ HOME/go/bin в вашем PATH? – user1431317

+0

Почему downvote? Пожалуйста, объясни. – Forge

ответ

7

Вам нужно добавить GOPATH/bin в PATH.

PATH="$GOPATH/bin:$PATH" 

Update: Starting with Go 1.8, GOPATH по умолчанию $HOME/go если не установлен. Вышеуказанный не будет работать, если GOPATH явно не установлен.

Чтобы установить, как добавить это к вашему .profile:

export GOPATH="$HOME/go" 
PATH="$GOPATH/bin:$PATH" 
+0

Работы. Вы ** буквально ** должны использовать «$ GOPATH» в команде, чтобы получить рабочую настройку. Если вы просто вручную напишите полный путь, даже если он действителен и точен, он, похоже, не работает. В конечном счете, когда вы тестируете «echo $ PATH», все, что вы увидите, это просто путь. $ GOPATH используется как указатель на вашу переменную среды, но это не указывается никоим образом, когда вы проверяете «echo $ PATH». – MarsAndBack

+0

Он должен работать, если вы вручную вводите путь, $ GOPATH просто лучше, потому что вам не нужно жестко указывать путь (при условии, что GOPATH установлен, что больше не требуется, начиная с Go 1.8). – user1431317

4

Есть в $GOPATH/bin двоичная go-eval? Вы используете команду $GOPATH/bin/ в качестве рабочего каталога? Если нет, это, вероятно, проблема.

go get & go install устанавливает идут двоичные файлы (если таковые имеются) в $GOPATH/bin

Проверьте $GOPATH/bin для гоу-Eval двоичный файл. Если его там, попробуйте запустить его с $GOPATH/bin с ./go-eval. Если это сработает, вы добры.

В будущем, если вы хотите запустить двоичные коды go, найденные в $GOPATH/bin из любой точки вашей оболочки, добавьте следующее к вашему.Bashrc или профиль:

export PATH=$PATH:$GOPATH/bin

Затем перезагрузите терминал или запустить . ~/.bashrc или . /etc/profile

При запуске идет установки идут-Eval я получаю:

не может загрузить пакет: пакет идти -eval: не найти пакет «go-eval» в любом из: /usr/local/go/src/go-eval (от $ GOROOT) $ HOME/golang/src/go-eval (от $ GOPATH)

Вы получаете вышеуказанную ошибку, потому что go-eval не находится в $HOME/golang/src/go-eval. Запуск go get github.com/sbinet/go-eval/ скачет источник на $GOPATH/src/github/sbinet/go-eval/. Если вы хотите запустить go install go-eval, вы должны указать имя пакета, соответствующее его положению в иерархии каталогов, в $GOPATH/src.

например. go install github/sbinet/go-eval

2

Я хотел бы добавить это в дополнение к ответам.

Как полезный совет, вы всегда можете проверить свои команды с помощью команды , которая.

Такие, как: , которые идут

Если команда не найдена, вы знаете, у вас есть проблемы PATH вам необходимо обратиться в первую очередь.

Затем вы можете сфокусироваться на поиске команды с помощью команды .

Такие, как: находка/-name «идти» -print 2>/DEV/нуль

Первый слэш каталог для начала поиска, то аргумент -name это команда, которую вы» поиск, и -print получает хороший результат. 2>/dev/null отправляет результаты каталогов, которые недоступны для neverland (null), так что вам не нужно видеть кучу ошибок.

Использование этого процесса помогает быстро найти нужную команду, а затем вы можете добавить ее в переменную env PATH, и она станет доступной, как указано в других ответах.

Смежные вопросы