簡體   English   中英

cabal-install和Debian

[英]cabal-install and Debian

因此,這是一個個人問題,但也許人們會有很好的建議或解決方法。

問題是關於在Debian下安裝cabal-install和haskell-platform。

當您apt-get install haskell-platform ,它隨cabal-install ,並且其命令cabal可用。

現在,該cabal-install不是最新的:

> which cabal
/usr/bin/cabal
> /usr/bin/cabal --version
cabal-install version 0.8.0
using version 1.8.0.2 of the Cabal library

但是,我對運行cabal update理解是,它會更新cabal,但是由於它不是“ Debian玩物”,因此將其放在~/.cabal/bin/

> ~/.cabal/bin/cabal --version
cabal-install version 0.8.2
using version 1.8.0.2 of the Cabal library

現在我的系統有2個cabal,而我輸入的cabal不是我要使用的。因為它會不斷更新另一個而不是自身,因此無效。

所以我要做的就是在~/.bashrc中給它起別名:

alias cabal='~/.cabal/bin/cabal'

現在:

> cabal --version
cabal-install version 0.8.2
using version 1.8.0.2 of the Cabal library

所以,我的最后一個問題是:

  • 是否有一個存放cabal 0.8.2的deb資料庫?
  • 我當前的解決方案會導致問題嗎? (例如, which cabal仍然指向我無用的/usr/bin/cabal ,因此,如果腳本使用此命令,它們將被愚弄...)
  • 有人提出了更好的解決方案嗎? (我的位置有點特別,但是我對幕后發生的事情了解得很少,這就是我所能想到的...)
  • 如果我上面說的任何話是錯誤的或不正確的,請糾正我。

我要做的是使用--global標志安裝cabal。 這會將cabal安裝到/usr/local/bin/cabal ,因此它將始終取代Debian軟件包cabal。

另一種方法是通常避免使用Debian軟件包並直接從其源代碼安裝Haskell平台。 如果您始終希望擁有Haskell庫的最新版本,則此方法也更好。

我將我的用戶本地$HOME/.cabal/bin放在PATH的前面。 我僅從分發軟件包中安裝ghc6ghc6-profghc6-doccabal-install 除了引導新的~/.cabal之外,我不使用發行版cabal-install進行任何其他~/.cabal 我使用cabal install所有其余部分,包括較新的cabal本身。

當我想使用較新的GHC時,我將其部署在/usr/local/stow/ghcVERSION ,並使用GNU stow啟用它(它在/usr/local添加了符號鏈接,該符號鏈接同樣在PATH具有優先級)。 當我想切換回發行版GHC時,只需運行stow -D即可刪除所有指向它的符號鏈接。

我考慮使用cabal-dev進行項目特定的cabal安裝,並避免因cabal時不時發生的cabal依賴關系。

事實上,我根本不使用Haskell平台,因為我不需要所有功能,並且發現安裝單個庫更容易。 我不安裝分發庫,因為並非所有分發庫都可用,或者正是我需要的版本。 如果所有沖突都安裝在同一位置(在我的情況下是~/.cabal ),則控制沖突要容易得多。 我不使用--global安裝任何東西,因為我認為這是錯誤的並且很難回滾。

當然,這些信息已經過時了,但是,是的,Debian不穩定,並且在撰寫本文時,測試已經有了cabal-install 0.10.2。

通常,Haskell東西的Debian打包針對希望使用一組已知可以一起工作的軟件包的用戶,即沒有依賴地獄,而又不總是擁有最新和最偉大的東西。 這包括安裝安裝。 我使用來自存儲庫的cabal-install,僅安裝那些尚未為Debian打包的庫。

免責聲明:我是為Debian創建這些軟件包的人之一。

在Ubuntu上,我也傾向於通過存儲來安裝GHC,而完全不考慮系統軟件包。

jetxee的方法有一個小變化,就是我確實安裝了Haskell平台(從源代碼),並將其與GHC存放目錄合並。 我想應該將路徑稱為/usr/local/stow/haskell-platform-VERSION ,但是我傾向於使用/usr/local/stow/ghc-VERSION

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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