Maison > développement back-end > Golang > Pourquoi l'exécution de 'Sudo go run' entraîne-t-elle une erreur 'Fichier exécutable introuvable' ?

Pourquoi l'exécution de 'Sudo go run' entraîne-t-elle une erreur 'Fichier exécutable introuvable' ?

Patricia Arquette
Libérer: 2024-11-18 10:34:02
original
838 Les gens l'ont consulté

Why Does Running

Exécuter des programmes Go avec Sudo

Dans un système Linux, il est courant d'utiliser sudo pour exécuter des commandes qui nécessitent des privilèges élevés. Cependant, l'exécution de programmes Go avec sudo go run main.go peut entraîner une erreur « fichier exécutable introuvable ».

Cette erreur se produit car les variables d'environnement, telles que GOPATH et GOROOT, ne sont pas correctement définies pour le utilisateur root. Par défaut, sudo réinitialise l'environnement lorsqu'il exécute une commande, supprimant toutes les variables d'environnement définies par le shell de l'utilisateur.

Solution

Au lieu d'exécuter sudo, exécutez main. go, l'approche recommandée consiste à d'abord créer le programme Go dans un binaire, puis à exécuter le binaire avec sudo. Cela garantit que le binaire a les variables d'environnement correctes.

Voici comment y parvenir :

  1. Si vous êtes dans le répertoire contenant main.go, vous pouvez créer le binaire en utilisant :
go build
Copier après la connexion
  1. Exécutez le binaire avec sudo :
sudo ./mycapt
Copier après la connexion

Vous pouvez également installer le binaire dans votre répertoire bin GOPATH avec :

go install
Copier après la connexion

Et puis exécutez-le avec :

sudo $GOPATH/bin/mycapt
Copier après la connexion

En suivant cette approche, vous pouvez exécuter des programmes Go avec sudo tout en vous assurant que les variables d'environnement nécessaires sont correctement définies pour l'utilisateur root .

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal