Maison > Article > développement back-end > Pourquoi \"sudo go run main.go\" échoue-t-il avec \"exec: go : fichier exécutable introuvable dans $PATH\" sur Ubuntu 16.04 ?
Dépannage de l'erreur « sudo go run main.go »
Lors de la tentative d'exécution de « sudo go run main.go » pour capturer les paquets réseau en utilisant « gopacket » sur Ubuntu 16.04, vous pouvez rencontrer le message d'erreur « exec : go : fichier exécutable introuvable dans $PATH ». Cette erreur se produit car les variables d'environnement nécessaires ne sont pas définies pour l'utilisateur root.
Solution :
Au lieu d'utiliser "sudo go run ...", suivez ces étapes :
1. Compilez le binaire sans sudo :
Utilisez "go build" pour compiler le fichier main.go en un binaire exécutable. Par exemple :
go build
2. Exécutez le binaire avec sudo :
Exécutez le binaire compilé avec sudo. Par exemple :
sudo ./mycapt
Alternative :
Utilisez « go install » pour installer le binaire dans le système de votre système. Répertoire $GOPATH/bin.
go install
Ensuite, exécutez le binaire avec sudo à partir du répertoire $GOPATH/bin :
sudo $GOPATH/bin/mycapt
En compilant et en exécutant le binaire séparément, vous vous assurez que les variables d'environnement nécessaires sont disponibles 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!