如何为Ubuntu 13.04安装Haskell平台?键入时出现以下错误sudo apt-get install haskell-platform
:
E: Unable to locate package haskell-platform error
apt-get install ghc
,这取决于GHC 4.8.1,而许多Ubuntu库安装和使用的是4.8.2。迁移到NixOS真是完美的时机。
如何为Ubuntu 13.04安装Haskell平台?键入时出现以下错误sudo apt-get install haskell-platform
:
E: Unable to locate package haskell-platform error
apt-get install ghc
,这取决于GHC 4.8.1,而许多Ubuntu库安装和使用的是4.8.2。迁移到NixOS真是完美的时机。
Answers:
对于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。
libncurses5-dev
软件包才能进行安装。=)
sudo apt-get install libgl1-mesa-dev libglc-dev freeglut3-dev libedit-dev libglw1-mesa libglw1-mesa-dev
ghc-7.6.3
在拥有5年历史的台式机上搭建大约需要2.5个小时,而在现代i7台式机上搭建大约需要20分钟。Haskell平台几乎可以立即构建。所有结果均与make -j8
。
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平台。
您可以通过在以下列表中安装软件包来“伪造”它: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上的声誉!
我用过这个脚本。
#!/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
希望能帮助到你。