| Prochaine révision | Révision précédente |
| golang [Le 21/11/2021, 16:22] – créée zococo | golang [Le 09/02/2026, 15:59] (Version actuelle) – [Go] +exemples apps krodelabestiole |
|---|
| | {{tag>Noble Langage Programmation}} |
| |
| | {{ https://go.dev/blog/go-brand/Go-Logo/PNG/Go-Logo_Blue.png?140|Logo de Go}} |
| | ====== Go ====== |
| |
| {{tag>Focal Impish Langage Programmation BROUILLON}} | **[[wpfr>Go_(langage)|Go]]** (parfois appelé //golang//) est un langage de programmation compilé et concurrent inspiré du **[[:support_programmation_c|C]]** et du **[[wpfr>Pascal_(langage)|Pascal]]**. Ce langage a été développé par Google. Il se veut facile à apprendre pour les développeurs, facile à comprendre et favorable à la qualité de programmation. |
| |
| ---- | * **GO** est open source, |
| | * sa syntaxe est inspirée de **C** (langage dans lequel il est écrit), |
| | * il utilise un typage statique, |
| | * offre des performances comparables à celles de **C** et **C++** puisque, comme ceux-ci, le compilateur convertit le langage **Go** en code machine, |
| | * possède de nombreuses fonctionnalités des langages dynamiques comme **[[:Python]]**, |
| | * permet la programmation orientée objet, bien que, contrairement à la plupart des langages courants, il ne propose pas d'héritage de type et de mot-clé, |
| | * tire parti des systèmes //[[wpfr>Multithreading|multithread]]//. |
| |
| <note tip>Les [[:wiki:tags|tags]] d'une page "application" sont à introduire dans l'ordre suivant :\\ ''Versions(([[:lts|versions d'Ubuntu LTS]] pour lesquelles la page est valide)) autres_tags((au moins un, à choisir parmi les [[:thesaurus|tags existants]])) BROUILLON''\\ | **Go** est le langage de développement de nombreux outils et applications modernes d'importance : |
| //Pour en savoir plus sur l'usage des tags : [[:wiki:tags|voir ici]].// | * [[:Restic]] |
| </note> | * [[:Syncthing]] |
| | * [[:Docker]] |
| | * [[wpfr>Kubernetes]] |
| | * [[wpfr>Terraform_(logiciel)|Terraform]] |
| | * [[https://github.com/traefik/traefik|Traefik]] |
| | * [[:cms#generateurs_de_sites_statiques|Hugo]] |
| | * [[https://about.gitea.com/|Gitea]] |
| | * ainsi que de nombreuses [[:web#applications web]], parmi lesquelles [[https://www.photoprism.app/|PhotoPrism]], SoundCloud, Uber, Dropbox, Twitch, Netflix, etc. |
| |
| | ===== Installation ===== |
| |
| ---- | Il existe plusieurs méthodes //au choix// pour installer **Go** : |
| | * Il est disponible dans les [[#dépôts officiels APT]] d'Ubuntu. |
| ====== GO ====== | * Un [[#binaire isolé]] est proposé par ses développeurs sur le site officiel. |
| | * [[:Canonical]] propose aussi un paquet [[#snap]] non-officiel. |
| Go (GO, langage Go, golang, Go language) est un langage de programmation compilé et concurrent inspiré de C et Pascal. Ce langage a été développé par [[https://fr.wikipedia.org/wiki/Go_(langage)|Google]]. Il se veut facile à apprendre pour les développeurs, facile à adopter et favorable au développement de qualité. | * Il existe aussi une [[https://hub.docker.com/_/golang/|image officielle]] pour utiliser **Go** avec [[:Docker]]. |
| |
| <note important>Il est important de mettre **un et un seul titre de niveau 1** (H1) à toutes vos pages. Ainsi, si une page liste toutes les pages contenant un des tags de cette page, alors cette page pourra être inclue à la liste. Dans le cas contraire, elle ne le pourra pas (et dans ce cas-là, les tags ne servent à rien). :-( | <note tip> |
| | Vous trouverez aussi des informations en anglais concernant le téléchargement et l'installation de **Go** sur son [[https://go.dev/doc/install|site officiel]]. |
| </note> | </note> |
| |
| <note tip>Rédigez ici une courte introduction sur l'application.\\ | ==== Dépôts officiels APT ==== |
| De manière brève, concise et claire, indiquez par exemple ce à quoi est destinée l'application, dans quel cas elle peut être utile, la licence sous laquelle elle est diffusée, toute autre information que vous jugerez utile de savoir avant de commencer la lecture de la page… Par exemple :</note> | |
| |
| Le logiciel **Bidule** est un [[:archivage|gestionnaire d'archives]] sous licence libre ([[http://fr.wikipedia.org/wiki/Licence_publique_g%C3%A9n%C3%A9rale_GNU|GPL v3]]), ayant la particularité de pouvoir ... | <note important> |
| | La version proposée par les [[:depots#dépôts officiels]] [[:APT]] d'Ubuntu est rarement la plus récente, et n'est pas recommandée par les développeurs de **Go**. |
| Optionnel: [Capture d'écran du logiciel fonctionnant sous Ubuntu (voir [[:wiki:ajout_image|ce tutoriel]])] | |
| | |
| <note important>Chaque section aura **un titre de niveau 2** (H2) puis ses sous-sections, **un titre de niveau 3** (H3) et ainsi de suite… Remarque : il n'y a que 5 niveaux de titre, ce qui devrait être amplement suffisant.</note> | |
| | |
| ===== Pré-requis ===== | |
| | |
| <note tip>Si des pré-requis sont nécessaires pour la suite des opérations, indiquez-les. Citons quelques exemples :</note> | |
| * Avoir activé l'accès au [[:depots#depot_partenaire_ou_depot_commercial|dépôt Partenaires de Canonical]]. | |
| * Avoir [[:tutoriel:comment_installer_un_paquet|installé le paquet]] **[[apt>paquet1|paquet 1]]**. | |
| | |
| ===== Installation ===== | |
| | |
| GO s'installe après téléchargement de l'archive *.tar depuis le [[https://golang.org/dl/|site officiel]]. | |
| | |
| Copier coller la signature du fichier (ici fichier go1.17.3.linux-amd64.tar.gz et signature 550f9845451c0c94be679faf116291e7807a8d78b43149f9506c1b15eb89008c) dans un fichier asc et vérififier l'intégralité du fichier téléchargé : | |
| <code> | |
| echo "550f9845451c0c94be679faf116291e7807a8d78b43149f9506c1b15eb89008c go1.17.3.linux-amd64.tar.gz" > go1.17.3.linux-amd64.tar.gz.asc | |
| sha256sum -c go1.17.3.linux-amd64.tar.gz.asc | |
| </code> | |
| Si tout va bien, vous obtenez : | |
| <code> | |
| go1.17.3.linux-amd64.tar.gz: Réussi | |
| </code> | |
| Installez le fichier dans votre système (à adapter selon la version récupérée sur le site officiel). | |
| <code> | |
| sudo tar -xvf go1.17.3.linux-amd64.tar.gz -C /usr/local/ | |
| </code> | |
| Puis mise à jour des liens vers les répertoires (attention à bien saisir le double > ">>"): | |
| <code> | |
| echo "# Répertoire du langage GO" >> .bashrc | |
| echo "export PATH=$PATH:/usr/local/go/bin" >>.bashrc | |
| soucre .bashrc | |
| </code> | |
| et enfin vérification del'installation : | |
| <code> | |
| go version | |
| $go version go1.17.3 linux/amd64 | |
| </code> | |
| ===== Configuration ===== | |
| | |
| Tout d'abord, [[:tutoriel:comment_modifier_un_fichier|ouvrez le fichier]] **/truc/machin/bidule** en modification puis … | |
| | |
| <note tip>Configuration particulière ? Expliquez les détails utiles de configuration (il n'est pas nécessaire de faire un copier-coller de la page de manuel ; les grandes lignes suffisent avec éventuellement un lien dans les références). | |
| </note> | </note> |
| |
| ===== Utilisation===== | Pour installer **Go** depuis les [[:depots#dépôts officiels]], il suffit d'[[:deb#installer_un_paquet_deb|installer le paquet]] ''[[apt>golang]]''. |
| |
| Lancez l'application comme indiqué [[tutoriel:comment_lancer_application|ici]] ou via le [[:terminal]] (toutes [[:versions]] ou [[:variantes]] d'Ubuntu) avec la [[:commande_shell|commande]] suivante : <code>machin-chose</code> | ==== Binaire isolé ==== |
| |
| <note tip>Raccourcis intéressants ? Fonctions cachées ? Expliquez le fonctionnement général de ce que vous présentez (là non plus, il n'est pas nécessaire de copier-coller la page de manuel). | <note tip>C'est la méthode documentée par les développeurs de **Go**.</note> |
| </note> | |
| |
| ===== Désinstallation ===== | On peut installer **Go** en copiant le binaire exécutable, depuis une archive disponible sur le [[https://go.dev/dl/|site officiel]], dans son répertoire des [[:arborescence#binaires personnels]], en suivant cette procédure avec un [[:terminal]] : |
| | - Télécharger le binaire (adapter si nécessaire ''1.25.7'' à la dernière version stable présente sur [[https://go.dev/dl/|cette page]]) :<code>wget https://go.dev/dl/go1.25.7.linux-amd64.tar.gz</code> |
| | - L'extraire dans le répertoire des [[:arborescence#binaires personnels]] :<code>tar -C ~/.local/bin -xzf go1.25.7.linux-amd64.tar.gz</code> |
| | - Ajouter le chemin de l'exécutable ''go'' au [[:personnaliser_path|PATH]] :<code>echo 'export PATH=$PATH:~/.local/bin/go/bin' >> ~/.bashrc</code> |
| | - Actualiser le [[:shell]] :<code>source .bashrc</code> |
| | - Supprimer finalement l'archive téléchargée :<code>rm go1.25.7.linux-amd64.tar.gz</code> |
| |
| Pour supprimer cette application, il suffit de [[:tutoriel:comment_supprimer_un_paquet|supprimer son paquet]]. Selon la méthode choisie, la configuration globale de l'application est conservée ou supprimée. Les journaux du système, et les fichiers de préférence des utilisateurs dans leurs dossiers personnels sont toujours conservés. | La [[:commande shell|commande]] ''[[man>go]]'' sera à présent disponible. Pour s'en assurer en affichant la version installée : |
| | go version |
| |
| ===== Voir aussi ===== | Cette méthode ne permet malheureusement pas de mise à jour automatique.\\ |
| | Pour supprimer l'installation existante (si c'est le cas) et la remplacer par une nouvelle en une [[:commande shell|commande]], après avoir de nouveau téléchargé l'archive : |
| | rm -r ~/.local/bin/go && tar -C ~/.local/bin -xzf go1.25.7.linux-amd64.tar.gz |
| | Adapter si nécessaire ''1.25.7'' à la dernière version stable présente sur [[https://go.dev/dl/|cette page]]. |
| |
| * **(en)** [[http://bidule.org/projects/bidule/|Site officiel du logiciel Bidule]] | <note> |
| * **(fr, en)** [[http://www.bidule.org|Manuel d'utilisation du logiciel Bidule]] | Cette procédure est adaptée de la [[https://go.dev/doc/install|documentation officielle]] qui indique comment installer **Go** au niveau système avec les [[:permissions administrateur]] (il faut dans ce cas ajouter ''[[:sudo]]'' aux commandes indiquées sur le site). |
| * [[http://forum.ubuntu-fr.org/viewtopic.php?id=64840|Discussion « J'ai un soucis avec le logiciel Bidule »]] sur le forum Ubuntu-fr | |
| | |
| ---- | |
| | |
| <note help>Si vous considérez que votre contribution à la page de documentation est significative et/ou que vous souhaitez pouvoir être contacté par les lecteurs, vous avez la possibilité de la signer en ajoutant votre identifiant dans la ligne ci-dessous. Vous pouvez aussi vous abonner aux modifications de la page en cliquant sur "S'abonner à la page" (menu en haut à gauche). | |
| </note> | </note> |
| |
| //Contributeurs principaux : [[utilisateurs:votre_identifiant|votre nom ou pseudonyme]], [[utilisateurs:autre_identifiant|nom ou pseudo autre]].// | ==== Snap ==== |
| |
| <note help>Si vous vous êtes basé sur un document existant pour écrire votre article, citez la source originale ! Ceci est indispensable afin de respecter les droits d'auteur.</note> | **Go** est également disponible en [[:snap]] depuis [[https://snapcraft.io/go|Snapcraft]]. Cette distribution n'est cependant pas officielle et peut ne pas être aussi à jour que le [[#binaire isolé]]. |
| |
| //Basé sur [[http://www.document_source.com|« Titre original de l'article »]] par Auteur Original.// | On peut l'installer sur Ubuntu simplement en installant ''Go'' depuis le [[:snap store|centre d'applications (Snap Store)]], ou en [[:snap#installer_une_application_snap|installant le paquet]] ''go'' en ligne de commande : |
| | <code>snap install go</code> |
| |
| | ===== Utilisation===== |
| |
| | Le langage s'utilise avec la commande ''[[man>go]]''. |
| |
| ---[ Modèle à copier/coller ]--- | La documentation est disponible en anglais sur le [[https://go.dev/doc/|site officiel]]. |
| | |
| <file text modèle_application> | |
| {{tag>Bionic Xenial BROUILLON}} | |
| ---- | |
| {{ :applications:icone_de_l'application.png?80}} | |
| ====== Nom affiché de l'application ====== | |
| | |
| [DESCRIPTION DE L'APPLICATION] | |
| | |
| ===== Pré-requis ===== | |
| | |
| * Avoir activé l'accès au [[:depots#depot_partenaire_ou_depot_commercial|dépôt Partenaires de Canonical]]. | |
| * Avoir [[:tutoriel:comment_installer_un_paquet|installé le paquet]] **[[apt>paquet1|paquet 1]]**. | |
| [AUTRES PRÉ-REQUIS NÉCESSAIRES] | |
| | |
| ===== Installation ===== | |
| | |
| Pour installer ce logiciel, il suffit d'[[:tutoriel:comment_installer_un_paquet|installer les paquets]] **[[apt>paquet1,paquet2,paquet3|paquet1 paquet2 paquet3]]**. | |
| | |
| Puis, … | |
| | |
| ===== Configuration ===== | |
| | |
| Tout d'abord, [[:tutoriel:comment_modifier_un_fichier|ouvrez le fichier]] **/truc/machin/bidule** en modification puis … | |
| | |
| ===== Utilisation ===== | |
| | |
| Lancez l'application comme indiqué [[:tutoriel:comment_lancer_application|ici]] ou via le [[:terminal]] (toutes [[:versions]] ou [[:variantes]] d'Ubuntu) avec la [[:commande_shell|commande]] suivante : <code>machin-chose</code> | |
| |
| ===== Désinstallation ===== | ===== Désinstallation ===== |
| |
| Pour supprimer cette application, il suffit de [[:tutoriel:comment_supprimer_un_paquet|supprimer son paquet]]. Selon la méthode choisie, la configuration globale de l'application est conservée ou supprimée. Les journaux du système, et les fichiers de préférence des utilisateurs dans leurs dossiers personnels sont toujours conservés. | Pour supprimer cette application, il suffit de [[:deb#desinstaller_un_paquet_deb|supprimer son paquet]]. Selon la méthode choisie, la configuration globale de l'application est conservée ou supprimée. Les journaux du système, et les fichiers de préférence des utilisateurs dans leurs dossiers personnels sont toujours conservés. |
| | * Pour la version des **dépôts Ubuntu**, vous pouvez passer par le [[:snap store|centre d'applications]], ou en ligne de commande :<code>sudo apt remove golang</code> |
| | * Pour la version **[[:snap#suppression|snap]]**, vous pouvez passer par le [[:snap store|centre d'applications]], ou en ligne de commande :<code>snap remove go</code> |
| | * Pour le [[#binaire isolé]], supprimer la ligne<code>export PATH=\$PATH:/usr/local/go/bin</code>du fichier ''[[:bash#bashrc|.bashrc]]'',\\ puis supprimer le répertoire ''~/.local/bin/go'' :<code>rm -r ~/.local/bin/go</code> |
| |
| ===== Voir aussi ===== | ===== Voir aussi ===== |
| |
| * **(en)** [[Site officiel du logiciel]] | * **(//en//)** [[https://go.dev/|Site officiel]] |
| * **(fr)** [[Site de la communauté francophone du logiciel Bidule]] | * tutoriel [[https://fr.ubunlog.com/go-instala-este-lenguaje-de-programacion-ubuntu-20-04/|Allez, installez ce langage de programmation sur Ubuntu 20.04]] (attention à la mauvaise traduction dès le titre : "//Allez//" pour "//Go//") |
| * [[http://forum.ubuntu-fr.org/viewtopic.php?id=64840|Discussion « J'ai un soucis avec le logiciel Bidule »]] sur le forum Ubuntu-fr | * Ressources francophones : |
| | * [[https://frenchgo.fr/|frenchgo.fr]] |
| | * [[https://go.developpez.com/|Go sur developpez.com]] |
| | * [[https://go-on.forumactif.com/|GO-ON]] |
| | * [[https://github.com/NDXDeveloper/go-tutoriel-fr|Go Tutoriel - De débutant à avancé 🚀]] |
| |
| ---- | ---- |
| | //[[:Contributeurs]] : [[:utilisateurs:krodelabestiole]].// |
| //Contributeurs principaux : [[utilisateurs:votre_identifiant|votre nom ou pseudonyme]], [[utilisateurs:autre_identifiant|nom ou pseudo autre]].// | |
| | |
| //Basé sur [[https://ubunlog.com/fr/go-instala-este-lenguaje-de-programacion-ubuntu-20-04/|« Allez, installez ce langage de programmation sur Ubuntu 20.04 »]] par Damian Amoedo.// | |