ホームページ >バックエンド開発 >Golang >Ubuntu 16.04 で「sudo go run main.go」が実行可能ファイルを見つけられないのはなぜですか?

Ubuntu 16.04 で「sudo go run main.go」が実行可能ファイルを見つけられないのはなぜですか?

DDD
DDDオリジナル
2024-11-15 15:58:02708ブラウズ

Why does

「sudo go run main.go」権限について

「sudo go run main.go」で Go プログラムを実行しようとする場合Ubuntu 16.04 では、実行可能ファイルが $PATH 変数に見つからないことを示すエラーが発生する場合があります。これは、「sudo」コマンドがデフォルトで環境変数をクリアし、「go」バイナリが見つからないために発生します。

問題の解決

これを解決するにはこの問題が発生した場合は、プログラムをコンパイルするときに「sudo」コマンドをバイパスする必要があります。代わりに、「go build」または「go install」を使用して、昇格されたアクセス許可を使用せずにバイナリをビルドします。バイナリがコンパイルされたら、「sudo」を使用して昇格されたアクセス許可で実行できます。

ステップバイステップの手順

  1. 次のファイルが含まれるディレクトリに移動します。 "main.go".
  2. を指​​定せずにバイナリをコンパイルしますsudo:

    • go build
    • または -
    • go install
  3. 昇格された権限でバイナリを実行する:

    • sudo ./mycapt
    • または -
    • sudo $GOPATH/bin/mycapt

説明

sudo を使用せずに最初にバイナリをビルドすることで、必要な環境が確実に構築されます。 $GOPATH や $GOROOT などの変数が正しく設定されている。 sudo でバイナリを実行すると、環境変数に影響を与えることなく、適切な権限が付与されます。

この方法では、環境変数の整合性を維持しながら、ネットワーク パケットをキャプチャするために必要な権限を効果的に付与します。

以上がUbuntu 16.04 で「sudo go run main.go」が実行可能ファイルを見つけられないのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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