Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Mengapa Menjalankan \"sudo go run\" Menghasilkan Ralat \"Executable File Not Found\"?

Mengapa Menjalankan \"sudo go run\" Menghasilkan Ralat \"Executable File Not Found\"?

Patricia Arquette
Patricia Arquetteasal
2024-11-18 10:34:02715semak imbas

Why Does Running

Melaksanakan Program Go dengan Sudo

Dalam sistem Linux, adalah amalan biasa untuk menggunakan sudo untuk melaksanakan arahan yang memerlukan keistimewaan yang tinggi. Walau bagaimanapun, menjalankan program Go dengan sudo go run main.go boleh mengakibatkan ralat "fail boleh laku tidak ditemui".

Ralat ini berlaku kerana pembolehubah persekitaran, seperti GOPATH dan GOROOT, tidak ditetapkan dengan betul untuk pengguna akar. Secara lalai, sudo menetapkan semula persekitaran apabila ia melaksanakan perintah, mengalih keluar sebarang pembolehubah persekitaran yang ditetapkan oleh shell pengguna.

Penyelesaian

Daripada menjalankan sudo go run main. go, pendekatan yang disyorkan ialah membina program Go menjadi binari dahulu dan kemudian melaksanakan binari dengan sudo. Ini memastikan binari mempunyai set pembolehubah persekitaran yang betul.

Begini cara anda boleh mencapai ini:

  1. Jika anda berada dalam direktori yang mengandungi main.go, anda boleh membina binari menggunakan:
go build
  1. Laksanakan binari dengan sudo:
sudo ./mycapt

Sebagai alternatif, anda boleh memasang binari pada direktori bin GOPATH anda dengan:

go install

Dan kemudian laksanakannya dengan:

sudo $GOPATH/bin/mycapt

Dengan mengikuti pendekatan ini, anda boleh melaksanakan program Go dengan sudo sambil memastikan pembolehubah persekitaran yang diperlukan ditetapkan dengan betul untuk pengguna root .

Atas ialah kandungan terperinci Mengapa Menjalankan \"sudo go run\" Menghasilkan Ralat \"Executable File Not Found\"?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn