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 ?

Pourquoi \"sudo go run main.go\" échoue-t-il avec \"exec: go : fichier exécutable introuvable dans $PATH\" sur Ubuntu 16.04 ?

Susan Sarandon
Susan Sarandonoriginal
2024-11-17 06:54:03726parcourir

Why Does

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!

Déclaration:
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