Go-Programme mit Sudo ausführen
In einem Linux-System ist es üblich, sudo zum Ausführen von Befehlen zu verwenden, die erhöhte Berechtigungen erfordern. Das Ausführen von Go-Programmen mit sudo go run main.go kann jedoch zu einem Fehler „ausführbare Datei nicht gefunden“ führen.
Dieser Fehler tritt auf, weil die Umgebungsvariablen wie GOPATH und GOROOT nicht korrekt für die festgelegt sind Root-Benutzer. Standardmäßig setzt sudo die Umgebung zurück, wenn ein Befehl ausgeführt wird, und entfernt alle Umgebungsvariablen, die von der Shell des Benutzers festgelegt wurden.
Lösung
Anstatt sudo auszuführen, führen Sie main aus. go besteht der empfohlene Ansatz darin, das Go-Programm zunächst in eine Binärdatei zu erstellen und die Binärdatei dann mit sudo auszuführen. Dadurch wird sichergestellt, dass für die Binärdatei die richtigen Umgebungsvariablen festgelegt sind.
So können Sie dies erreichen:
go build
sudo ./mycapt
Alternativ können Sie die Binärdatei in Ihrem GOPATH-Bin-Verzeichnis installieren mit:
go install
Und dann ausführen mit:
sudo $GOPATH/bin/mycapt
Mit diesem Ansatz können Sie Go-Programme mit sudo ausführen und dabei sicherstellen, dass die erforderlichen Umgebungsvariablen für den Root-Benutzer korrekt festgelegt sind .
Das obige ist der detaillierte Inhalt vonWarum führt die Ausführung von „sudo go run' zu dem Fehler „Ausführbare Datei nicht gefunden'?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!