[英]What do I need to do if I want to install a new version of GHC?
目前,我在我的ubuntu 14.04系統上使用GHC 7.10.1 ,剛才我從郵件列表中注意到已發布包含大量bug修復的新版本。 所以我正在考慮更新我的GHC。
我知道如何安裝GHC,但是,我對如何處理已通過cabal
安裝的軟件包知之甚少。 似乎這些軟件包安裝在~/.cabal
,例如,libs安裝在~/.cabal/lib/x86_64-linux-ghc-7.10.1
並在~/.ghc/x86_64-linux-7.10.1
。
路徑名(... x86_64-linux-7.10.1 ...)似乎暗示它們只能由GHC 7.10.1
,所以如果我想使用新版本的GHC並刪除舊的ghc 7.10.1
從我的系統,我應該清理它們並重新安裝這些包嗎?
例如,我應該rm -rf ~/.cabal && rm -rf ~/.ghc
並重新安裝cabal和GHC? 或者我應該把那些包留在那里? 如果是這樣,那些已安裝的軟件包是否會被新的GHC重用?
是的,您需要在更新編譯器時重新安裝軟件包。
但是,如果刪除~/.ghc
,則會從GHC的角度刪除包。 您也可以刪除~/.cabal
並重新安裝所有內容,但~/.cabal/bin
(包括cabal
)中的二進制文件通常仍然有效,因此通常更容易保留這些並節省一些時間(看看有什么) 。 某些可能存在問題 - 我認為某些二進制文件可能在內部硬編碼GHC路徑,因此會中斷,但您可以隨時重新安裝它們。
~/.cabal/packages
包含緩存下載,因此您是否刪除它是由您自己決定的。 下次運行時,數據將再次下拉。 如果有疑問,只需刪除它。
你應該刪除包含已編譯軟件包的~/.cabal/lib
,並且不兼容不同的GHC。 同樣適用於~/.cabal/share
。
除非您~/.cabal/config
編輯了~/.cabal/config
文件並希望保留更改,否則也可以刪除它,並創建一個新文件。
你不需要刪除任何東西。 如果在安裝GHC 7.10.1的相同位置安裝GHC 7.10.2,那么所有符號鏈接ghc
, ghci
, ghc-pkg
等都將被覆蓋以指向7.10.2,但您仍然可以運行版本化程序ghc-7.10.1
, ghci-7.10.1
, ghc-pkg-7.10.1
等,或告訴cabal
用特定的編譯器和-w
標志構建。 所有庫和庫注冊信息(無論是隨GHC一起提供,是安裝在用戶包數據庫中,還是安裝在沙箱中)都是(默認情況下)存儲在GHC版本特定的子目錄下,因此不同版本的GHC不會干擾每個其他。
如果您的磁盤空間不足,我建議不要刪除GHC 7.10.1。 畢竟7.10.2剛剛在昨天發布,如果遇到7.10.2的奇怪問題,可能值得檢查7.10.1是否也受到影響。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.