根據 Ubuntu 版本需要使用 sudo -s 進行 make 指令

根據 Ubuntu 版本需要使用 sudo -s 進行 make 指令

我們有一個 Makefile 用於編譯網路介面的驅動程式。在 Ubuntu 9.04 安裝中呼叫 Makefile 時,我們只需呼叫「make」。但是,在 Ubuntu 10.04 安裝中呼叫 Makefile 時,我們需要呼叫「sudo -s make」。

在Ubuntu 9.04中,如果我們呼叫'sudo -s make',編譯會失敗。在 Ubuntu 10.04 中,如果我們呼叫“make”,編譯也會失敗。

儘管可以透過發出或不發出「sudo -s」位元在兩個版本的 Ubuntu 中進行編譯,但我們希望有一個 .sh 腳本能夠成功呼叫 Makefile,無論運行的是哪個版本的 Ubuntu在。與 10.04 相比,9.04 中 sudo -s 的處理方式有什麼不同嗎?如果有的話,確保在呼叫 make 時在一個 .sh 腳本中滿足兩個版本的最佳解決方案是什麼?

答案1

make命令應該編譯原始碼。這是一項不需要任何管理權限的任務。對於系統範圍的安裝,root 權限是必要的。這意味著在你的情況下,makefile 不正確。我不知道它是做什麼的,但它不應該這樣做,因為它需要root權限。

考慮以下場景:使用者想要安裝軟體。他/她發射

./configure --prefix=/home/joe/bin/usr && make && make install

make命令不能要求 root 存取權限,這可以避免任何安裝您的程式的使用者。你提到,它是一個網頁驅動程序,通常非root用戶不需要使用它,無論如何,你應該修復你的建置。

相關內容