ホームページ  >  記事  >  バックエンド開発  >  「sudo go run」を実行すると「実行可能ファイルが見つかりません」エラーが発生するのはなぜですか?

「sudo go run」を実行すると「実行可能ファイルが見つかりません」エラーが発生するのはなぜですか?

Patricia Arquette
Patricia Arquetteオリジナル
2024-11-18 10:34:02716ブラウズ

Why Does Running

Sudo を使用した Go プログラムの実行

Linux システムでは、昇格された特権を必要とするコマンドを実行するために sudo を使用するのが一般的です。ただし、sudo go run main.go を使用して Go プログラムを実行すると、「実行可能ファイルが見つかりません」エラーが発生する場合があります。

このエラーは、GOPATH や GOROOT などの環境変数が正しく設定されていないために発生します。ルートユーザー。デフォルトでは、sudo はコマンドの実行時に環境をリセットし、ユーザーのシェルによって設定された環境変数を削除します。

解決策

sudo を実行する代わりに、main を実行します。 go の場合、推奨されるアプローチは、まず Go プログラムをバイナリにビルドしてから、そのバイナリを sudo で実行することです。これにより、バイナリに正しい環境変数が設定されることが保証されます。

これを実現する方法は次のとおりです。

  1. main.go を含むディレクトリにいる場合は、バイナリの使用:
go build
  1. sudo でバイナリを実行:
sudo ./mycapt

または、次のようにしてバイナリを GOPATH bin ディレクトリにインストールできます。

go install

そして次のコマンドで実行します:

sudo $GOPATH/bin/mycapt

このアプローチに従うと、root ユーザーに必要な環境変数が正しく設定されていることを確認しながら、sudo で Go プログラムを実行できます。 .

以上が「sudo go run」を実行すると「実行可能ファイルが見つかりません」エラーが発生するのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。