Heim >Backend-Entwicklung >Golang >Warum findet „sudo go run main.go' die ausführbare Datei unter Ubuntu 16.04 nicht?
Grundlegende Informationen zu den Berechtigungen für „sudo go run main.go“
Beim Versuch, ein Go-Programm mit „sudo go run main.go“ auszuführen Unter Ubuntu 16.04 kann es zu einer Fehlermeldung kommen, die darauf hinweist, dass die ausführbare Datei nicht in der Variablen $PATH gefunden wird. Dies liegt daran, dass der Befehl „sudo“ standardmäßig Ihre Umgebungsvariablen löscht, was verhindert, dass die „go“-Binärdatei gefunden wird.
Problem lösen
Um dieses Problem zu beheben Um dieses Problem zu lösen, sollten Sie den Befehl „sudo“ beim Kompilieren des Programms umgehen. Erstellen Sie stattdessen die Binärdatei ohne erhöhte Berechtigungen mit „go build“ oder „go install“. Sobald die Binärdatei kompiliert ist, können Sie sie mit erhöhten Berechtigungen mit „sudo“ ausführen.
Schritt-für-Schritt-Anleitung
Kompilieren Sie die Binärdatei ohne sudo:
Führen Sie die Binärdatei mit erhöhten Berechtigungen aus:
Erklärung
Indem Sie zuerst die Binärdatei ohne sudo erstellen, stellen Sie sicher, dass die notwendigen Umgebungsvariablen, wie z $GOPATH und $GOROOT sind korrekt eingestellt. Wenn Sie die Binärdatei mit sudo ausführen, werden die entsprechenden Berechtigungen erteilt, ohne Ihre Umgebungsvariablen zu beeinträchtigen.
Diese Methode gewährt Ihnen effektiv die erforderlichen Berechtigungen zum Erfassen von Netzwerkpaketen und behält gleichzeitig die Integrität Ihrer Umgebungsvariablen bei.
Das obige ist der detaillierte Inhalt vonWarum findet „sudo go run main.go' die ausführbare Datei unter Ubuntu 16.04 nicht?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!