Как компилировать и устанавливать программы Go

12 set 2022 5 min di lettura
Как компилировать и устанавливать программы Go
Indice dei contenuti

Введение

Команда go run для автоматической компиляции исходного кода и запуска полученного исполняемого файла полезна для тестирования кода в командной строке, для развертывания или развертывания приложения необходимо создать код в совместно используемом двоичном исполняемом файле или в одном файле, содержащем машинный байт-код, который может запускать приложение. Для этого вы можете использовать набор инструментов Go для компиляции и установки программа.

В Go процесс перевода исходного кода в двоичный исполняемый файл называется сборкой. После того, как этот исполняемый файл будет создан, он будет содержать не только ваше приложение, но и весь вспомогательный код, необходимый для запуска двоичного файла на целевой платформе. Это означает, что бинарный файл Go не нуждается в системных зависимостях, таких как Go, для запуска в новой системе, в отличие от других языков, таких как Ruby, Python или Node.js. Поместив эти исполняемые файлы в путь к исполняемому файлу в вашей системе, вы сможете запускать программу из любого места в системе.

В этом руководстве мы будем использовать цепочку инструментов Go для запуска, создания и установки Hello, World!, что позволяет эффективно использовать и развертывать будущие приложения.

Предпосылки

Чтобы следовать примеру из этой статьи, в вашей системе должен быть установлен Go:

Установите и запустите Go Binary

Во-первых, давайте создадим приложение для использования в качестве примера для набора инструментов Go.Для этого мы будем использовать классический Hello, World!.

Создайте каталог с именем greeter в вашем каталоге src:

mkdir greeter

Затем перейдите в только что созданный каталог с помощью команды cd и создайте файл main.go в текстовом редакторе по вашему выбору:

cd greeter
nano main.go

После открытия файла добавьте следующее содержимое:

package main

 import "fmt"

 func main() {
 fmt.Println("Hello, World!")
 }
src/greeter/main.go

При запуске эта программа напечатает фразу Hello, World! на консоли, программа правильно закроется.

Сохраните и закройте файл.

Чтобы протестировать программу, используйте команду go run:

go run main.go

Вы получите следующий вывод:

Hello, World!

Как упоминалось выше, команда go run внедряла исходный файл в исполняемый двоичный файл, а затем запускала скомпилированную программу. Тем не менее, это руководство направлено на создание двоичного файла таким образом, чтобы вы могли делиться им и распространять его по своему усмотрению. Для этого на следующем шаге вы будете использовать команду go build.

Строительство дорожек с помощью go build

С помощью go build вы можете сгенерировать исполняемый двоичный файл для нашего примера приложения Go, что позволит вам развертывать и развертывать программу в любом месте.

Попробуйте это с main.go В вашем каталоге greeter выполните следующую команду:

go build

Если вы не укажете аргумент этой команде, go build автоматически создаст программу в текущем main.go Команда включит все ваши файлы *.go в каталоге. Он также соберет весь вспомогательный код, необходимый для запуска бинарного файла на любом компьютере с такой же системной архитектурой, независимо от того, есть ли в этой системе исходные файлы .go или даже установка Go.

В этом случае приложение greeter было создано в исполняемом файле, который был добавлен в текущий каталог. Проверьте это, выполнив команду ls:

ls

Если вы используете macOS или Linux, вы найдете новый исполняемый файл, названный в честь каталога, в котором вы создали свою программу:

greeter main.go
Примечание.greeter.exe

По умолчанию go build создаст исполняемый файл для текущей платформы и архитектуры. Например, если он построен на системе linux/386, исполняемый файл будет совместим с любой другой системой linux/386, даже если Go не установлен.

Теперь, когда вы создали свой исполняемый файл, запустите его, чтобы убедиться, что двоичный файл был создан правильно. В macOS или Linux выполните следующую команду:

./greeter

В Windows запустите:

greeter.exe

Вывод двоичного файла будет соответствовать выводу, когда вы запустили программу с помощью go run:

Hello, World!

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

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

Изменить бинарное имя

Теперь, когда вы знаете, как сгенерировать исполняемый файл, следующим шагом будет определение того, как Go выбирает имя для двоичного файла, и настройка этого имени для вашего проекта.

При запуске go build по умолчанию используется Go, чтобы автоматически выбрать имя сгенерированного исполняемого файла. Это делается двумя способами: если вы используете Go Modules, Go будет использовать последнюю часть имени вашего модуля; в противном случае Go будет использовать текущее имя каталога. Это метод, использованный в последнем разделе, когда каталог greeter был создан, изменен в нем, а затем запущен go build.

Давайте подробнее рассмотрим метод формы. Если бы в проекте был файл go.mod с объявлением module как показано ниже:

module github.com/noviello/shark
go.mod

Таким образом, имя по умолчанию для сгенерированного исполняемого файла будет shark.

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

Чтобы попробовать, измените имя исполняемого файла, созданного в предыдущем разделе, на hello и поместите его в подпапку с именем bin. Нет необходимости создавать эту папку, Go сделает это сам в процессе сборки.

Запустите следующую команду go build с флагом -o:

go build -o bin/hello

Флаг -o заставляет Go сопоставлять вывод команды с любыми аргументами, которые вы выберете. В этом случае результатом является новый исполняемый файл с именем hello в подпапке с именем bin.

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

cd bin
./hello

Вы получите следующий вывод:

Hello, World!

Теперь вы можете настроить имя исполняемого файла в соответствии с потребностями вашего проекта. Но с go build вы по-прежнему ограничены запуском бинарного файла из текущего каталога. Чтобы использовать исполняемые файлы из любого места в системе, вы можете установить их с помощью go install.

Установите программы Go с помощью go install

До сих пор в этой статье мы обсуждали, как создавать исполняемые двоичные файлы из наших исходных файлов .go. Эти исполняемые файлы полезны для распространения и тестирования, но их пока нельзя запускать за пределами их исходных каталогов. Это может быть проблемой, если вы хотите активно использовать программу, например, если вы разработали инструмент командной строки, чтобы помочь рабочему процессу в вашей системе. Чтобы упростить использование программ, вы можете установить их в своей системе и получать к ним доступ из любого места.

Чтобы понять, что это значит, мы воспользуемся командой go install для установки примера приложения.

Команда go install ведет себя почти так же, как и go build, но вместо того, чтобы оставить исполняемый файл в текущем каталоге или в каталоге, указанном флагом -o, она помещает исполняемый файл в $GOPATH/bin.

Чтобы узнать, где находится ваш каталог $GOPATH, выполните следующую команду:

go env GOPATH

Полученный вывод будет отличаться, но по умолчанию используется каталог go в каталоге $HOME:

$HOME/go

Поскольку go install поместит сгенерированные исполняемые файлы в подкаталог $GOPATH именем bin, этот каталог необходимо добавить в переменную окружения $PATH.

Установив каталог $GOPATH/bin, вернитесь в каталог greeter:

cd..

Теперь запустите команду установки:

go install

Это создаст ваш двоичный файл и вставит его $GOPATH/bin. Чтобы убедиться в этом, сделайте следующее:

ls $GOPATH/bin

Это перечислит содержимое $GOPATH/bin:

greeter
Примечание.go installне-o

Установив двоичный файл, проверьте, будет ли программа запускаться из-за пределов исходного каталога. Вернитесь в свой домашний каталог:

cd $HOME

Для запуска программы используйте следующее:

greeter

Это приведет к следующему:

Hello, World!

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

Вывод

В этом руководстве вы узнали, как набор инструментов Go упрощает создание исполняемых двоичных файлов из исходного кода. Эти двоичные файлы можно распространять для запуска в других системах, даже в тех, в которых нет инструментов и сред Go.Кроме того, go install автоматически создает и устанавливает наши программы в виде исполняемых файлов в системах $PATH. С go build and go install теперь у вас есть возможность поделиться своим приложением и использовать его по своему усмотрению.

Buy me a coffeeBuy me a coffee

Supportaci se ti piacciono i nostri contenuti. Grazie.

Successivamente, completa il checkout per l'accesso completo a Noviello.it.
Bentornato! Accesso eseguito correttamente.
Ti sei abbonato con successo a Noviello.it.
Successo! Il tuo account è completamente attivato, ora hai accesso a tutti i contenuti.
Operazione riuscita. Le tue informazioni di fatturazione sono state aggiornate.
La tua fatturazione non è stata aggiornata.