2016-04-29 52 views
0

我正在編寫一個需要LLVM的程序,並且正在考慮使用autotools將其發佈到Linux上,因此從用戶的角度看,該過程看起來像着名的./configure && make && sudo make install在配置腳本中安裝依賴關係

通過autotools,通常依靠系統包管理器來安裝依賴關係。問題在於,無論出於何種原因,這不適用於LLVM;在Ubuntu 14.04,apt-get認爲最新版本是3.4,而實際上需要更新版本。因此,我需要提供一個腳本來首先下載和構建LLVM(本地副本,不會干擾可能在系統中的任何舊版本),這個過程需要幾個小時。

這個過程最明顯的地方在於configure的開頭。這被認爲是正常和合理的嗎?還是有一個約定,configure應該只包含autotools通常放入它的東西,安裝依賴關係應該是另一個腳本,用戶先分別運行它?在後一種情況下,是否有關於應該調用哪個單獨腳本的約定?

+2

對於Ubuntu 14.04來說,包含一箇舊的LLVM是正常的,因爲14.04是2年前的版本。系統軟件包管理員從不安裝最新的軟件版本,他們安裝版本中包含的版本。 – wRAR

+0

@wRAR好吧,這不僅僅是我的一個小故障,這是正常的,並且預計我必須爲版本敏感的依賴做出我自己的安排,這很公平。 – rwallace

回答

2

配置期間不要安裝任何東西。腳本名稱是「configure」而不是「install-dependencies」。

編寫配置檢查,如果缺少llvm,請向用戶解釋如何安裝它。如有必要,請提供單獨的腳本以下載llvm。

最好的做法是將configure(和make)作爲普通非特權用戶運行,而不是root用戶。所以你甚至沒有權限安裝任何東西。您需要檢查是否安裝了「sudo」等。 用戶正在安裝的系統沒有網絡連接(防火牆等)也可能會發生,因此您的下載將失敗。