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

Patricia Arquette
Lepaskan: 2024-11-18 10:34:02
asal
715 orang telah melayarinya

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
Salin selepas log masuk
  1. Laksanakan binari dengan sudo:
sudo ./mycapt
Salin selepas log masuk

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

go install
Salin selepas log masuk

Dan kemudian laksanakannya dengan:

sudo $GOPATH/bin/mycapt
Salin selepas log masuk

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!

sumber:php.cn
Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan