![](/img/trans.png)
[英]How do you force Haskell's cabal-install program to ignore system libraries?
[英]How do you install packages/libraries without Cabal or Cabal-Install?
我试图在Ubuntu 11.04上从零开始设置Haskell,而不使用过时的Debian存储库或Haskell-Platform。
我从源代码安装GHC-7.0.4
没有问题,现在需要安装Cabal(似乎已经包含在GHC的/usr/local/lib/ghc-7.0.4/Cabal-1.10.2.0中)和Cabal Install
。
后者指定了几个依赖项( parsec
和network
),每个依赖项都有自己的几个依赖项( mtl
, text
等)。
安装这些软件包的命令是什么,我是用tar.gz格式从hackage下载的?
解包,然后runhaskell不起作用。
我看到了Setup.lhs,但目前尚不清楚它是什么或如何使用它。
我发现的大多数Haskell文档假设您已经从repo或Haskell-Package安装,并没有真正解释这一点。
cabal-install
有一个shell脚本来执行此操作。 如果从hackage下载并安装它,可以启动bootstrap.sh
来安装cabal-install
。 然后,您可以使用它来安装其他软件包。
有两种不同的包: Cabal
和cabal-install
。 Cabal是一个库,cabal-install是一个名为cabal
的可执行文件。
要安装软件包, cabal-install
是Cabal周围的可选便利包装,但需要使用Cabal。
根据http://hackage.haskell.org/trac/ghc/wiki/Commentary/Libraries,Cabal是一个“零启动”软件包,因此当您构建GHC时,Cabal及其依赖项会自动为您构建。
您可以使用ghc-pkg
可执行文件来检查已安装的软件包:
# ghc-pkg list
在构建GHC后检查Cabal是否在列表中。 如果是,您可以使用此文档安装更多不使用cabal-install的软件包:
http://haskell.org/haskellwiki/Cabal/How_to_install_a_Cabal_package
我建议你首先安装cabal-install
,然后使用cabal-install
可执行文件安装其他所有东西。 通常用于全局安装的命令是:
# runhaskell Setup configure
# runhaskell Setup build
# sudo runhaskell Setup install
解压缩包tarball并使用Setup.hs
或Setup.lhs
文件运行该文件夹中的命令。 请注意,还支持每用户非root用户安装 - 使用runhaskell Setup configure --user
以这种方式安装cabal可执行文件及其依赖项时,请使用cabal install {package-name}
来安装更多软件包。
请注意,Haskell平台的存在主要是因为您自己安装cabal-install
的痛苦。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.