Comment compiler et installer des programmes Go

introduction

Jusqu’à présent, dans notre série Comment coder en Go, vous avez utilisé la commande https://www.digitalocean.com / community / tutorials / comment-écrire-votre-premier-programme-en-cours # step-2-% E2% 80% 94-running-a-go-program [+ go run +] pour compiler automatiquement votre code source et exécutez l’exécutable résultant. Bien que cette commande soit utile pour tester votre code sur la ligne de commande, la distribution ou le déploiement de votre application nécessite que vous créiez votre code dans un exécutable_ binaire partageable ou dans un fichier contenant le code octet de la machine pouvant exécuter votre application. Pour ce faire, vous pouvez utiliser la chaîne d’outils Aller à build et install à votre programme.

Dans Go, le processus de traduction du code source en un exécutable binaire s’appelle building. Une fois cet exécutable construit, il contiendra non seulement votre application, mais également tout le code de support nécessaire pour exécuter le fichier binaire sur la plate-forme cible. Cela signifie qu’un binaire Go n’a pas besoin de dépendances système telles que l’outil Go pour s’exécuter sur un nouveau système, contrairement à d’autres langues telles que https://www.digitalocean.com/community/tutorial_series/how-tcode-in-ruby [ Ruby], Python, ou https://www.digitalocean.com/community/tutorials/how-to -écrire-et-exécuter-votre-premier-programme-en-noeud-js [Node.js]. En plaçant ces exécutables dans un chemin de fichier exécutable sur votre propre système, vous pourrez exécuter le programme à partir de n’importe où sur votre système. Ceci s’appelle installing le programme sur votre système.

Dans ce didacticiel, vous utiliserez la chaîne d’outil Go pour exécuter, créer et installer un exemple de programme + Hello, World! +, Vous permettant d’utiliser, de distribuer et de déployer efficacement de futures applications.

Conditions préalables

Pour suivre l’exemple de cet article, vous aurez besoin de:

Configuration et exécution du binaire Go

Commencez par créer une application à utiliser comme exemple pour illustrer la chaîne d’outils Aller. Pour ce faire, vous utiliserez le programme classique «Hello, World!» Du How To Écrire votre premier programme en Go tutoriel.

Créez un répertoire nommé + greeter + dans votre répertoire + src +:

mkdir greeter

Ensuite, déplacez-vous dans le répertoire nouvellement créé et créez le fichier + main.go + dans l’éditeur de texte de votre choix:

cd greeter
nano main.go

Une fois le fichier ouvert, ajoutez le contenu suivant:

src / greeter / main.go

package main

import "fmt"

func main() {
   fmt.Println("Hello, World!")
}

Lorsqu’il est exécuté, ce programme imprimera la phrase + Hello, World! + Sur la console, puis le programme se terminera avec succès.

Enregistrez et quittez le fichier.

Pour tester le programme, utilisez la commande + go run, comme vous l’avez fait dans les tutoriels précédents:

go run main.go

Vous recevrez le résultat suivant:

OutputHello, World!

Comme mentionné précédemment, la commande + go run construit votre fichier source en un exécutable, puis exécute le programme compilé. Cependant, ce tutoriel a pour but de construire le binaire de manière à pouvoir le partager et le distribuer à volonté. Pour ce faire, vous utiliserez la commande + go build à l’étape suivante.

Construire des fichiers binaires avec + go build

En utilisant + go build +, vous pouvez générer un binaire exécutable pour notre exemple d’application Go, vous permettant de distribuer et de déployer le programme où vous le souhaitez.

Essayez ceci avec + main.go +. Dans votre répertoire + greeter +, exécutez la commande suivante:

go build

Si vous ne fournissez pas d’argument à cette commande, + go build + compilera automatiquement le programme + main.go + dans votre répertoire actuel. La commande inclura tous vos fichiers + *. Go + dans le répertoire. Il construira également tout le code de support nécessaire pour pouvoir exécuter le fichier binaire sur tout ordinateur doté de la même architecture système, que ce système ait ou non les fichiers source + .go +, ou même une installation Go.

Dans ce cas, vous avez construit votre application + greeter + dans un fichier exécutable ajouté à votre répertoire actuel. Vérifiez ceci en exécutant la commande + ls +:

ls

Si vous utilisez macOS ou Linux, vous trouverez un nouveau fichier exécutable nommé d’après le répertoire dans lequel vous avez créé votre programme:

Output  main.go

Par défaut, + go build + générera un exécutable pour les https://www.digitalocean.com/community/tutorials/building-go-applications-for-different-operating-systems-and-architectures#possible-platforms- for-goos-and-goarch [plate-forme et architecture]. Par exemple, s’il est construit sur un système + linux / 386 +, le fichier exécutable sera compatible avec tout autre système + linux / 386 +, même si Go n’est pas installé. Go prend en charge la création d’autres plates-formes et architectures, sur lesquelles vous pouvez en savoir plus sur notre Building Allez dans Applications pour différents systèmes d’exploitation et architectures.

Maintenant que vous avez créé votre exécutable, exécutez-le pour vous assurer que le binaire a été construit correctement. Sur macOS ou Linux, exécutez la commande suivante:

./greeter

Sous Windows, lancez:

greeter.exe

La sortie du binaire correspondra à la sortie de quand vous avez exécuté le programme avec + go run +:

OutputHello, World!

Vous venez de créer un seul fichier binaire exécutable contenant, non seulement votre programme, mais également tout le code système nécessaire à son exécution. Vous pouvez maintenant distribuer ce programme sur de nouveaux systèmes ou le déployer sur un serveur, en sachant que le fichier exécutera toujours le même programme.

Dans la section suivante, ce didacticiel expliquera comment un fichier binaire est nommé et comment vous pouvez le modifier afin que vous puissiez mieux contrôler le processus de construction de votre programme.

Changer le nom binaire

Maintenant que vous savez comment générer un fichier exécutable, l’étape suivante consiste à identifier comment Go choisit un nom pour le fichier binaire et à personnaliser ce nom pour votre projet.

Lorsque vous exécutez + go build, Go choisit automatiquement le nom de l’exécutable généré. Cela se fait de deux manières: Si vous utilisez Go Modules, alors Go utilisera la dernière partie du nom de votre module; sinon, Go utilisera le nom du répertoire en cours. C’est la méthode utilisée dans la dernière section, lorsque vous avez créé le répertoire + greeter +, y avez changé, puis exécuté + go build +.

Examinons de plus près la méthode du module. Si vous aviez un fichier + go.mod dans votre projet avec une déclaration` + module` comme celle-ci:

go.mod

module

Ensuite, le nom par défaut de l’exécutable généré serait ++.

Dans les programmes plus complexes nécessitant des conventions de nommage spécifiques, ces valeurs par défaut ne constituent pas toujours le meilleur choix pour nommer votre binaire. Dans ces cas, il serait préférable de personnaliser votre sortie avec l’indicateur + -o +.

Pour tester cela, changez le nom de l’exécutable que vous avez créé dans la dernière section en + hello + et placez-le dans un sous-dossier appelé + bin +. Vous n’êtes pas obligé de créer ce dossier. Go le fera tout seul pendant le processus de construction.

Exécutez la commande + go build suivante avec l’indicateur` + -o + `:

go build -o bin/hello

L’indicateur + -o + permet à Go d’aligner le résultat de la commande sur l’argument que vous avez choisi. Dans ce cas, le résultat est un nouvel exécutable nommé + hello + dans un sous-dossier nommé + bin +.

Pour tester le nouvel exécutable, accédez au nouveau répertoire et exécutez le binaire:

cd bin
./hello

Vous recevrez le résultat suivant:

OutputHello, World!

Vous pouvez maintenant personnaliser le nom de votre exécutable en fonction des besoins de votre projet, en complétant notre enquête sur la création de fichiers binaires dans Go. Mais avec + go build +, vous êtes toujours limité à exécuter votre binaire à partir du répertoire en cours. Pour pouvoir utiliser des exécutables nouvellement construits à partir de n’importe où sur votre système, vous pouvez l’installer à l’aide de + go install +.

Installation de programmes Go avec + go install

Jusqu’à présent, dans cet article, nous avons expliqué comment générer des fichiers binaires exécutables à partir de nos fichiers source + .go +. Ces exécutables sont utiles pour distribuer, déployer et tester, mais ils ne peuvent pas encore être exécutés en dehors de leurs répertoires sources. Cela poserait un problème si vous souhaitiez utiliser activement votre programme, par exemple si vous développiez un outil de ligne de commande pour aider votre flux de travail sur votre propre système. Pour faciliter l’utilisation des programmes, vous pouvez les installer sur votre système et y accéder depuis n’importe où.

Pour comprendre ce que cela signifie, vous utiliserez la commande + go install + pour installer votre exemple d’application.

La commande + go install + se comporte presque de la même manière que + go build +, mais au lieu de laisser l’exécutable dans le répertoire courant, ou dans un répertoire spécifié par l’indicateur + -o +, elle place l’exécutable dans le `+ $ GOPATH / bin + répertoire.

Pour trouver où se trouve votre répertoire + $ GOPATH +, exécutez la commande suivante:

go env GOPATH

La sortie que vous recevrez variera, mais la valeur par défaut est le répertoire + go + à l’intérieur de votre répertoire + $ HOME +:

Output$HOME/go

Puisque + go install + placera les exécutables générés dans un sous-répertoire + $ GOPATH + nommé + bin +, ce répertoire doit être ajouté à la variable d’environnement + $ PATH +. Ceci est couvert dans l’étape * Creating Your Go Workspace * de l’article de prérequis https://www.digitalocean.com/community/tutorial_series/how-to-install-and-set-up-a-Local-programming-environment- for-go [Comment installer Go et configurer un environnement de programmation local].

Avec le répertoire + $ GOPATH / bin + configuré, retournez dans votre répertoire + greeter +:

cd ..

Maintenant, lancez la commande install:

go install

Cela construira votre binaire et le placera dans + $ GOPATH / bin +. Pour tester cela, exécutez ce qui suit:

ls $GOPATH/bin

Ceci listera le contenu de + $ GOPATH / bin +:

Outputgreeter

Une fois le binaire installé, testez pour voir si le programme sera exécuté en dehors de son répertoire source. Revenez dans votre répertoire personnel:

cd $HOME

Utilisez ce qui suit pour exécuter le programme:

greeter

Cela donnera ce qui suit:

OutputHello, World!

Vous pouvez maintenant utiliser les programmes que vous écrivez et les installer dans votre système, ce qui vous permet de les utiliser où que vous soyez et quand vous en avez besoin.

Conclusion

Dans ce tutoriel, vous avez montré comment la chaîne d’outils Go facilite la création de fichiers binaires exécutables à partir du code source. Ces fichiers binaires peuvent être distribués pour s’exécuter sur d’autres systèmes, même sur ceux qui ne disposent pas d’outils ni d’environnements Go. Vous avez également utilisé + go install + pour construire et installer automatiquement nos programmes en tant qu’exécutables dans le dossier + $ PATH + du système. Avec + go build et` + go install on`, vous avez maintenant la possibilité de partager et d’utiliser votre application à volonté.

Maintenant que vous connaissez les bases de + go build +, vous pouvez explorer comment créer du code source modulaire avec la https://www.digitalocean.com/community/tutorials/customizing-go-binaries-with-build-tags [ Tutoriel Personnalisation des binaires Go avec les balises de construction] ou création de différentes plates-formes avec Building Aller Applications pour différents systèmes d’exploitation et architectures. Si vous souhaitez en savoir plus sur le langage de programmation Go en général, consultez la série complète Comment coder dans Go .