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

Patricia Arquette
リリース: 2024-11-18 10:34:02
オリジナル
716 人が閲覧しました

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 サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート