2016-04-15 3 views
10

Если у меня была скомпилированная программа Golang, которую я хотел установить, чтобы я мог запускать ее с помощью команды bash из любого места на моем компьютере, как мне это сделать? Например, в nodejsGolang эквивалент npm install -g

npm install -g express 

Устанавливает выразить таким образом, что я могу выполнить команду

express myapp 

и выразить сгенерирует файл каталога для приложения узла под названием «MyApp» в какой бы мой текущий каталог. Есть ли эквивалентная команда для перехода? Я верю, что теперь с командой «go install» вы должны находиться в каталоге, который содержит исполняемый файл, чтобы его запустить.

Заранее благодарен!

+0

Вы добавляете GOPATH/bin в свою ПУТЬ? (или вы ищете своего рода [go package manager] (https://github.com/golang/go/wiki/PackageManagementTools)?) – JimB

ответ

7

Насколько я знаю, нет прямого эквивалента npm install -g. Ближайшим эквивалентом не будет go install, но go get. С помощью страницы (go help get):

использование: go get [-d] [-f] [-fix] [-insecure] [-t] [-u] [build flags] [packages]

Получить загружает и устанавливает пакеты, названные импортными путями, вместе с их зависимостями.

По умолчанию go get устанавливает бинарные файлы $GOPATH/bin, поэтому самый простой способ, чтобы сделать эти двоичные файлы вызываемыми отовсюду, чтобы добавить этот каталог в $PATH.

Для этого добавьте следующую строку в ваш .bashrc (или .zshrc, в зависимости от того, какую оболочку вы используете):

export PATH="$PATH:$GOPATH/bin" 

В качестве альтернативы, вы можете также скопировать или связать исполняемые /usr/local/bin :

ln -s $GOPATH/bin/some-binary /usr/local/bin/some-binary 
+0

В то время это было правильно (и спасибо за вашу помощь), но стоит обратить внимание на тех, кто сталкивается с этим вопросом, что теперь есть 'go install', который строит двоичный файл и помещает это в вашем '$ GOPATH/bin' – Ryan

2

Ближайший аналог этого в Go будет go get. По умолчанию он будет извлекать пакет Go из предоставленного URL-адреса репозитория и требует, чтобы в вашей оболочке была установлена ​​переменная $GOPATH, так что Go знает, где хранить пакеты (а затем где их найти при компиляции кода в зависимости от go get -ted пакеты).

Пример Синтаксис:

$ go get github.com/user/repo 

Поведение поставляется npm «с флагом -g по умолчанию, а также пакеты, установленные с помощью go get, как правило, доступны по всему миру.

Для получения дополнительной информации о команде см. go get --help.

Как уже упоминалось, @helmbert, добавление $GOPATH в ваш $PATH полезно, если вы устанавливаете автономные пакеты.

+2

«go get help»: D –

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