首頁 >後端開發 >Golang >為什麼「sudo go run main.go」在 Ubuntu 16.04 上找不到執行檔?

為什麼「sudo go run main.go」在 Ubuntu 16.04 上找不到執行檔?

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
    • 使用的提升權限執行二進位檔案:
    • 須藤./mycapt
    • 或-
    sudo $GOPATH/bin/mycapt

說明

透過先在不使用sudo 的情況下建立二進位檔案,您可以確保必要的環境變量,例如$GOPATH 和$GOROOT 設定正確。當您使用 sudo 執行二進位檔案時,會授予適當的權限,而不會幹擾您的環境變數。

此方法有效地授予您擷取網路封包所需的權限,同時保持環境變數的完整性。

以上是為什麼「sudo go run main.go」在 Ubuntu 16.04 上找不到執行檔?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn