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

Patricia Arquette
Freigeben: 2024-11-18 10:34:02
Original
716 Leute haben es durchsucht

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
Nach dem Login kopieren
  1. Führen Sie die Binärdatei mit sudo aus:
sudo ./mycapt
Nach dem Login kopieren

Alternativ können Sie die Binärdatei in Ihrem GOPATH-Bin-Verzeichnis installieren mit:

go install
Nach dem Login kopieren

Und dann ausführen mit:

sudo $GOPATH/bin/mycapt
Nach dem Login kopieren

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!

Quelle:php.cn
Erklärung dieser Website
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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage