Heim  >  Artikel  >  Backend-Entwicklung  >  Warum führt die Ausführung von „sudo go run“ zu dem Fehler „Ausführbare Datei nicht gefunden“?

Warum führt die Ausführung von „sudo go run“ zu dem Fehler „Ausführbare Datei nicht gefunden“?

Patricia Arquette
Patricia ArquetteOriginal
2024-11-18 10:34:02716Durchsuche

Why Does Running

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:

  1. Wenn Sie sich in dem Verzeichnis befinden, das main.go enthält, können Sie das erstellen Binärdatei mit:
go build
  1. Führen Sie die Binärdatei mit sudo aus:
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!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn