簡體   English   中英

如果我想安裝新版本的GHC,我該怎么辦?

[英]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,那么所有符號鏈接ghcghcighc-pkg等都將被覆蓋以指向7.10.2,但您仍然可以運行版本化程序ghc-7.10.1ghci-7.10.1ghc-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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM