当前位置: 首页>>技术教程>>正文


如何为Ubuntu 13.04安装Haskell平台?

, ,

问题描述

如何为Ubuntu 13.04安装Haskell平台?当我键入sudo apt-get install haskell-platform时出现以下错误:

E: Unable to locate package haskell-platform error 

最佳解决方案

对于Haskell Platform 2012.4.0.0来说,GHC太新了,而2013.2.0.0太旧了,Raring陷入了困境。这个山谷可以通过一些疼痛和胶带来弥补。

如果已经安装了GHC,则可以从源代码安装Haskell Platform 2013.2.0.0。这是一个过程,但确实有效。

首先,安装GHC 7.6.2:

sudo apt-get install ghc

现在你需要GHC 7.6.3,因为它是Haskell Platform 2013.2.0.0的pre-req。

CAUTION:

You might think installing from the unknown-linux archives of GHC will work. It won’t. The GHC in those archives is dynamically linked against /usr/lib/libgmp.so.3 which is unavailable on Raring which has libgmp.so.10. Do NOT be tempted to symlink this library to it’s earlier version’s name and location to fake out the linker. I went there and it is a path to very confusing failures and is a very bad practice so I mended my ways and built GHC from source.

接下来,您需要从源代码获取并构建GHC 7.6.3(GHC是一个self-hosted编译器,因此需要GHC来构建它):

wget http://www.haskell.org/ghc/dist/7.6.3/ghc-7.6.3-src.tar.bz2
tar xjvf ghc-7.6.3-src.tar.bz2
cd ghc-7.6.3
./configure
make
sudo make install

编译GHC对我来说花了相当长的时间(几个小时,铯同位素Cs-134m的半衰期),所以这可能是休息或睡眠的好时机。它经历了构建编译器的三个阶段(0,1和2),然后使用构建的编译器构建编译器的下一个阶段。

为了加快编译过程,您可以使用

make -j 8

在上面的步骤中利用multi-core CPU。

然后,从源代码获取并构建Haskell平台(我将使用2013.2.0.0作为示例):

wget http://lambda.haskell.org/platform/download/2013.2.0.0/haskell-platform-2013.2.0.0.tar.gz
tar xzvf haskell-platform-2013.2.0.0.tar.gz
cd haskell-platform-2013.2.0.0
./configure
make
sudo make install

编译Haskell平台花费了大约30分钟,所以这是休息的另一个好时机。

您现在应该有一个正常工作的Haskell Platform 2013.2.0.0,其中GHC 7.6.3与libgmp.so.10正确链接。

次佳解决方案

Ubuntu 13.04 repo包含GHC 7.6.2,遗憾的是还没有适用于GHC 7.6.x的Haskell平台。所以你最好现在从源代码构建一个GHC(即7.4.x)和Haskell平台的初级版本。

有关更多信息,请参阅此处:https://launchpad.net/ubuntu/raring/i386/haskell-platform

第三种解决方案

作为Alain O’Dea以上细节的优秀答案,这个问题不易修复,同时Ubuntu 13.04没有haskell-platform。

您可以通过在此列表中安装软件包来排序’fake’:http://packages.ubuntu.com/precise/haskell-platform

这是为您执行此操作的命令:

sudo apt-get install ghc alex cabal-install happy libghc-cgi-dev libghc-fgl-dev libghc-glut-dev libghc-haskell-src-dev libghc-html-dev libghc-http-dev libghc-hunit-dev libghc-mtl-dev libghc-network-dev libghc-opengl-dev libghc-parallel-dev libghc-parsec3-dev  libghc-quickcheck2-dev libghc-regex-base-dev libghc-regex-compat-dev  libghc-regex-posix-dev libghc-stm-dev libghc-syb-dev  libghc-text-dev  libghc-transformers-dev  libghc-xhtml-dev libghc-zlib-dev

由于显而易见的原因,这两个项目缺少的是haskell-platform-doc和haskell-platform-prof软件包。

希望Ubuntu开发人员能够尽快修复不兼容问题。

在那个说明:

此外:遗憾的是,我没有声称将此作为对此StackExchange网站的评论,但这是最合适的地方。

Launchpad上有一个错误,但是没有引起太多关注。如果你登陆这个页面,请访问这个并将其标记为影响你,因为Ubuntu 13.04的Haskell软件包被软管:

https://bugs.launchpad.net/ubuntu/+source/haskell-platform/+bug/1047678

希望mod能够接受这个答案并将其变成一个评论,它属于它。对不起 – 我还没有在askubuntu上声名鹊起!

参考资料

本文由Ubuntu问答整理, 博文地址: https://ubuntuqa.com/article/2222.html,未经允许,请勿转载。