cabal-install和Debian

Pti*_*val 13 debian haskell cabal haskell-platform cabal-install

所以,这是一个个人问题,但也许人们会有很好的建议或解决方法.

问题是在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
Run Code Online (Sandbox Code Playgroud)

但是,我对跑步的理解cabal update是它更新了cabal,但由于它不是"Debian thingy",它将它放入~/.cabal/bin/.

> ~/.cabal/bin/cabal --version
cabal-install version 0.8.2
using version 1.8.0.2 of the Cabal library
Run Code Online (Sandbox Code Playgroud)

现在我的系统有2个cabals,而我输入cabal的那个不是我想要使用的那个...因为它会不断更新另一个而不是自己,因此无效.

所以我做的是我把它别名~/.bashrc:

alias cabal='~/.cabal/bin/cabal'
Run Code Online (Sandbox Code Playgroud)

现在:

> cabal --version
cabal-install version 0.8.2
using version 1.8.0.2 of the Cabal library
Run Code Online (Sandbox Code Playgroud)

所以,我最后的问题:

  • 是否有一个deb存储库可以容纳cabal 0.8.2?
  • 我目前的解决方案能否导致问题?(例如,which cabal仍指向我的无用/usr/bin/cabal,所以如果脚本使用此命令,他们将被愚弄...)
  • 有人提出了更好的解决方案吗?(我的有点特别,但是我对幕后发生的事情的了解很少,所以我可以做到这一点......)
  • 如果我上面说的任何内容错误或不准确,请纠正我.

fuz*_*fuz 13

我所做的是安装带--global旗帜的cabal .这将安装cabal /usr/local/bin/cabal,因此它将始终取代Debian软件包.

另一种方法是,通常避免使用Debian软件包并直接从源代码安装Haskell平台.如果您总是希望拥有最新版本的Haskell库,这种方法也会更好.


sas*_*nin 11

我把我的用户本地保留$HOME/.cabal/bin在前面PATH.我只安装ghc6,ghc6-prof,ghc6-doc以及cabal-install从分发包.cabal-install除了引导新的以外,我不会使用发行版~/.cabal.我安装的所有其余部分cabal install,包括更新的cabal本身.

当我想使用更新的GHC时,我将其部署在中/usr/local/stow/ghcVERSION,并使用GNU启用它stow(它添加了符号链接,/usr/local其中再次优先于我PATH).当我想切换回分发GHC时,我只是运行stow -D以删除它的所有符号链接.

我考虑使用cabal-dev特定于项目的cabal安装,并避免cabal不时发生的破坏性依赖.

事实上,我根本不使用Haskell平台,因为我不需要所有这些,并且发现能够更容易地安装单个库.我没有安装分发库,因为并非所有分发库都可用或者正是我需要的版本; 如果所有这些冲突安装在同一个地方(~/.cabal在我的情况下),则更容易控制冲突.我没有安装任何东西--global,因为我认为这是错误的,很难回滚.