2017-01-11 4 views
0

У меня есть файл Go, и я хотел бы дать его клиентам. Клиенты должны иметь возможность выполнять команду с помощью команды в терминале. Они не будут устанавливать Go lang в свою систему.Как запустить файл Go на клиентской машине?

Как запустить этот двоичный файл в клиентской машине? Пожалуйста, помогите мне.

ответ

4

Go - compiled language. Вы можете использовать инструменты Go для компиляции вашего приложения Go в исполняемый двоичный файл. Когда у вас есть исполняемый двоичный файл, вы можете запустить его как есть, установка Go больше не требуется/используется. Поскольку Go равен statically linked, все зависимости будут скомпилированы/связаны с исполняемым файлом.

Более конкретно:

  • использование go install скомпилировать приложение и «установить» двоичный исполняемый файл в вашей $GOPATH/bin папке
  • или использовать go build скомпилировать приложение и получить исполняемый файл в текущей работы справочник

Прочтите What does go build build? для получения более подробной информации.

Все что вам нужно, это передать исполняемый двоичный файл вашему клиенту. Если ваше приложение использует статические файлы, вы, конечно же, должны их передавать, желательно упаковать в один сжатый файл.

Обратите внимание, что исполняемый двоичный код предназначен для конкретной платформы. Вы должны проконсультироваться со своим клиентом о том, на какой платформе он намеревается запустить ваше приложение, и скомпилировать приложение на этой конкретной платформе.

Целевая ОС и платформа могут быть установлены с использованием переменных окружения GOOS и GOARCH. Например, если клиент хочет, чтобы запустить приложение на Windows, amd64, вы можете произвести amd64 исполняемый файл Windows, как это:

GOOS=windows GOARCH=amd64 go build 

Для получения списка допустимых GOOS и GOARCH значений см How can I build for linux 32-bit with go1.6.2.

+0

Вы знаете, как запустить двоичный файл, используя OpanStack для клиентов? – user4142018

+0

@ user4142018 № Это может быть опубликовано как новый вопрос. Или, возможно, более удобно спросить на их форуме. – icza

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