繁体   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