2015-07-28 36 views

回答

1

指令有狀態

make 
sudo make install 

所以,你正在建設作爲普通用戶,當然,安裝它需要root權限。

附註:使用DESTDIR將安裝帶有二進制文件不知道的前綴。安裝DESTDIR的軟件通常無法從安裝位置運行。如果要安裝在非標準位置,請在構建時進行安裝(例如,如果項目使用自動工具,則將--prefix=/home/foo/mytree傳遞到./configure)。

DESTDIR僅用於創建包。我使用我自己的小包管理器在perl中執行,用於管理/usr/local樹中的安裝。它通過將DESTDIR設置爲/usr/local/pkg/<product_name>make install,然後將所有內容符號鏈接到正確的位置來工作。

+0

錯誤。請參閱回答 – bafla

+0

@bafla - 廢話。 * building *步驟是'make'命令。這就是你所問的。 'make install'通常直接在系統中安裝'make'的結果。這需要root權限。 'DESTDIR'工具是爲*包構建者*創建樹的存檔,因此可以稍後由*包管理器*安裝。 –

+1

@bafla完全正確。你發現的是一種解決方法,這將導致未來的問題,因爲你必須在'include'等包含'new_path/lib'到'LIBDIR'和'new_path/include'。不安裝到默認目標是應該考慮的步驟之一。通常情況下,與本地系統管理員交談以安裝到'/ usr/local /'樹中是合理的,本地編譯的軟件屬於FHS。 –

-1

我剛纔意識到我可以在安裝時使用DESTDIR作爲目標目錄來更改安裝目錄。 在我的情況下,它看起來像這樣:make DESTDIR=new_path install

+1

雖然你回答你自己的問題,但這不是你問題的答案。您正在*建築*與*安裝*混淆。 –

相關問題