Maison >développement back-end >Golang >Pourquoi l'exécution de 'Sudo go run' entraîne-t-elle une erreur 'Fichier exécutable introuvable' ?
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 :
go build
sudo ./mycapt
Vous pouvez également installer le binaire dans votre répertoire bin GOPATH avec :
go install
Et puis exécutez-le avec :
sudo $GOPATH/bin/mycapt
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!