Menyelesaikan masalah "sudo go run main.go" Ralat
Apabila cuba melaksanakan "sudo go run main.go" untuk menangkap paket rangkaian menggunakan "gopacket" pada Ubuntu 16.04, anda mungkin menemui mesej ralat "exec: go: executable file not found in $PATH." Ralat ini timbul kerana pembolehubah persekitaran yang diperlukan tidak ditetapkan untuk pengguna akar.
Penyelesaian:
Daripada menggunakan "sudo go run ...," ikuti ini langkah:
1. Susun Binari tanpa sudo:
Gunakan "go build" untuk menyusun fail main.go ke dalam binari boleh laku. Contohnya:
go build
2. Jalankan Binari dengan sudo:
Laksanakan binari yang disusun dengan sudo. Contohnya:
sudo ./mycapt
Sebagai alternatif:
Gunakan "go install" untuk memasang binari ke dalam sistem anda $GOPATH/bin direktori.
go install
Kemudian jalankan binari dengan sudo daripada direktori $GOPATH/bin:
sudo $GOPATH/bin/mycapt
Dengan menyusun dan menjalankan binari secara berasingan, anda memastikan pembolehubah persekitaran yang diperlukan tersedia kepada pengguna akar.
Atas ialah kandungan terperinci Mengapakah \'sudo go menjalankan main.go\' Gagal dengan \'exec: go: fail boleh laku tidak ditemui dalam $PATH\' pada Ubuntu 16.04?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!