| Les deux révisions précédentesRévision précédenteProchaine révision | Révision précédente |
| golang [Le 02/12/2023, 19:44] – ancienne révision (Le 18/01/2023, 09:42) restaurée : nonon ! escape $PATH important ! krodelabestiole | golang [Le 09/02/2026, 15:59] (Version actuelle) – [Go] +exemples apps krodelabestiole |
|---|
| {{tag>Focal Impish Langage Programmation BROUILLON}} | {{tag>Noble Langage Programmation}} |
| |
| ---- | {{ https://go.dev/blog/go-brand/Go-Logo/PNG/Go-Logo_Blue.png?140|Logo de Go}} |
| | ====== Go ====== |
| <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''\\ | |
| //Pour en savoir plus sur l'usage des tags : [[:wiki:tags|voir ici]].// | |
| </note> | |
| | |
| | |
| ---- | |
| | |
| ====== GO ====== | |
| | |
| 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 à comprendre et favorable à la qualité de programmation. | |
| |
| GO se présente comme un langage : | **[[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. |
| |
| * open source, | * **GO** est open source, |
| * de syntaxe similaire à C (langage avec lequel il est écrit), | * sa syntaxe est inspirée de **C** (langage dans lequel il est écrit), |
| * utilisant un typage statique, | * il utilise un typage statique, |
| * aux performances comparables à celles de langages comme C et C ++ puisque, comme ceux-ci, le compilateur convertit le code Go en code machine, | * offre des performances comparables à celles de **C** et **C++** puisque, comme ceux-ci, le compilateur convertit le langage **Go** en code machine, |
| * possédant de nombreuses fonctionnalités des langages dynamiques comme python, | * possède de nombreuses fonctionnalités des langages dynamiques comme **[[:Python]]**, |
| * permettant la programmation orienté objet, bien que, contrairement à la plupart des langages de programmation courants, il ne propose pas d'héritage de type et de mot-clé, | * 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é, |
| * conçu pour tirer parti des systèmes multiprocesseurs. | * tire parti des systèmes //[[wpfr>Multithreading|multithread]]//. |
| |
| | **Go** est le langage de développement de nombreux outils et applications modernes d'importance : |
| | * [[:Restic]] |
| | * [[: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 ===== | ===== Installation ===== |
| |
| GO s'installe après téléchargement de l'archive *.tar depuis le [[https://golang.org/dl/|site officiel]]. | Il existe plusieurs méthodes //au choix// pour installer **Go** : |
| | * Il est disponible dans les [[#dépôts officiels APT]] d'Ubuntu. |
| | * Un [[#binaire isolé]] est proposé par ses développeurs sur le site officiel. |
| | * [[:Canonical]] propose aussi un paquet [[#snap]] non-officiel. |
| | * Il existe aussi une [[https://hub.docker.com/_/golang/|image officielle]] pour utiliser **Go** avec [[:Docker]]. |
| |
| 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égrité du fichier téléchargé : | <note tip> |
| <code> | 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]]. |
| echo "550f9845451c0c94be679faf116291e7807a8d78b43149f9506c1b15eb89008c go1.17.3.linux-amd64.tar.gz" > go1.17.3.linux-amd64.tar.gz.asc | </note> |
| 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 | |
| source .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 … | ==== Dépôts officiels APT ==== |
| |
| <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 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**. |
| </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 : |
| * **(en)** [[http://bidule.org/projects/bidule/|Site officiel du logiciel Bidule]] | rm -r ~/.local/bin/go && tar -C ~/.local/bin -xzf go1.25.7.linux-amd64.tar.gz |
| * **(fr, en)** [[http://www.bidule.org|Manuel d'utilisation du logiciel Bidule]] | Adapter si nécessaire ''1.25.7'' à la dernière version stable présente sur [[https://go.dev/dl/|cette page]]. |
| * [[https://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> |
| | 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). |
| </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//") |
| * [[https://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.// | |