如何为Ubuntu 13.04安装Haskell平台?


37

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

E: Unable to locate package haskell-platform error 

您可能还会发现askubuntu.com/questions/288201/…有用
hdgarrood13年

2
通过@HokieTux“所有这些在Launchpad上都有一个错误,但是并没有引起太大的关注。如果您登陆此页面,请访问此站点并将其标记为对您有影响,因为已安装了Ubuntu 13.04的Haskell软件包:”链接为:bugs.launchpad.net/ubuntu/+source/haskell-platform/+bug/1047678
Rafael S. Calsaverini 2013年

此问题已在13.10中修复,因此对于那些可以升级的人来说,升级是一种解决方案。
2013年

升级FUBAR 13.04(因为我以前的许多升级尝试都失败了)。
karatedog

在13.10中未解决此问题。您将无法使用apt-get install ghc,这取决于GHC 4.8.1,而许多Ubuntu库安装和使用的是4.8.2。迁移到NixOS真是完美的时机。
polkovnikov.ph 2014年

Answers:


38

对于Haskell平台2012.4.0.0而言,GHC太新,而对于2013.2.0.0而言,太老了,GHR陷入了困境。这个山谷可以用一些疼痛和胶带粘住。

如果已经安装了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的先决条件。

警告:

您可能会认为,从GHC的unknown-linux存档安装将可以进行。不会的 这些档案中的GHC是动态链接到/usr/lib/libgmp.so.3的,该链接在具有libgmp.so.10的Raring上不可用。不要试图将此库符号链接到其较早版本的名称和位置,以伪造链接程序。我去了那里,这是通往非常混乱的失败的道路,并且是非常 糟糕的做法,因此我修改了自己的方法,从源头上建立了GHC。

接下来,您需要从源代码获取并构建GHC 7.6.3(GHC是自托管的编译器,因此需要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花费了相当长的时间(几个小时,> Csium同位素Cs-134m的半衰期),所以这可能是休息或睡觉的好时机。它经历了构建编译器的三个阶段(0、1和2),然后使用生成的编译器来构建编译器的下一个阶段。

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

make -j 8

在上述步骤中可以利用多核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平台2013.2.0.0,它已与libgmp.so.10正确链接了GHC 7.6.3。


4
在全新安装的ubuntu 13.04上,我必须安装libncurses5-dev软件包才能进行安装。=)
费利佩·阿尔梅达

1
我还需要:sudo apt-get install libgl1-mesa-dev libglc-dev freeglut3-dev libedit-dev libglw1-mesa libglw1-mesa-dev
Rafael S. Calsaverini 2013年

haskell安装后如何删除这两个文件夹?
艾伦·科罗马诺

是的,您可以在安装后删除文件夹。感谢您的评论和编辑。好东西。
Alain O'Dea 2013年

3
只是为了不吓跑人们,ghc-7.6.3在拥有5年历史的台式机上搭建大约需要2.5个小时,而在现代i7台式机上搭建大约需要20分钟。Haskell平台几乎可以立即构建。所有结果均与make -j8
Michael Pankov 2014年

8

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


5
一个人想知道为什么为什么不知道包括GHC 7.6在内的平台版本,所以他们选择发布GHC 7.6并因此破坏了许多人的Haskell开发。
马修·沃尔顿

你需要讨论与包维护者
托尔比约恩Ravn的安徒生

6

作为以上细节的Alain O'Dea的出色回答,这个问题不容易解决,与此同时,没有适用于Ubuntu 13.04的haskell平台。

您可以通过在以下列表中安装软件包来“伪造”它: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上的声誉!


1
我将启动板错误跟踪器作为该线程的首要注释。我认为,阅读此页的人员去那里并为解决该问题施加压力非常重要。
2013年

1

我用过这个脚本

#!/bin/bash

# Install needed developer libraries
sudo apt-get install libgmp-dev zlib1g-dev libgl1-mesa-dev libglc-dev freeglut3-dev libedit-dev libglw1-mesa-dev libglw1-mesa

# Remove old tmp folder
sudo rm -r tmp
mkdir tmp

# Create symlink if necessary
libgmp=/usr/lib/libgmp.so.3
if [ ! \( -e "$libgmp" \) ]
then
    sudo ln -s /usr/lib/x86_64-linux-gnu/libgmp.so.10.0.5 $libgmp
fi

# Download the ghc
output_ghc_archive="tmp/ghc-7.6.3.tar.bz2"
output_ghc="tmp/ghc-7.6.3"
url=http://www.haskell.org/ghc/dist/7.6.3/ghc-7.6.3-x86_64-unknown-linux.tar.bz2
wget $url -O $output_ghc_archive

# Unpack and remove archive
tar -xjvf $output_ghc_archive -C "tmp/"
rm $output_ghc_archive

# Configure and install
cd $output_ghc
./configure
sudo make install

# Remove ghc installation files
cd ../..
sudo rm -r $output_ghc

# Download the haskell platform
output_hp_archive="tmp/haskell-platform-2013.2.0.0.tar.gz"
output_hp="tmp/haskell-platform-2013.2.0.0"
url2=http://lambda.haskell.org/platform/download/2013.2.0.0/haskell-platform-2013.2.0.0.tar.gz
wget $url2 -O $output_hp_archive


# Unpack and remove archive
tar -xzf $output_hp_archive -C "tmp/"
rm $output_hp_archive


# Configure and install
cd $output_hp
./configure
make
sudo make install

# Remove haskell platform installation files
cd ../..
sudo rm -r $output_hp

# Remove this tmp folder
sudo rm -r tmp

希望能帮助到你。


By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.