为什么我不能在 Raspberry Pi 上安装任何带有 GHC 7.8.4 的软件包? [英] Why can't I install any packages with GHC 7.8.4 on Raspberry Pi?
问题描述
根据这篇文章,终于有一个用于 GHC 版本的 debian 包支持模板 haskell 和 ghci.
According to this post there is finally a debian package for a version of GHC that supports template haskell and ghci.
这是真的,我从一个新的 Raspbian 副本开始,我将我的 /etc/apt/sources.list
文件更改为:
And this is true, I started from a fresh copy of Raspbian, I changed my /etc/apt/sources.list
file to:
deb http://http.debian.net/debian sid main contrib non-free
# Uncomment line below then 'apt-get update' to enable 'apt-get source'
#deb-src http://archive.raspbian.org/raspbian/ wheezy main contrib non-free rpi
我做了 sudo apt-get update &&sudo apt-get upgrade
,然后我做了sudo apt-get install ghc
和sudo apt-get install cabal-install
.
I did sudo apt-get update && sudo apt-get upgrade
, and then I did sudo apt-get install ghc
and sudo apt-get install cabal-install
.
ghc --version
报告 7.8.4.GHCi 工作得很好,TH 也一样.
ghc --version
reports 7.8.4. GHCi works just fine, and so does TH.
但由于某种原因,我无法使用 cabal 安装任何软件包.无论我选择哪一个,我都会收到此错误的某个版本:
But for some reason I can't install any packages with cabal. No matter which one I pick, I get some version of this error:
login as: pi
pi@192.168.1.5's password:
Linux raspberrypi 3.18.11-v7+ #781 SMP PREEMPT Tue Apr 21 18:07:59 BST 2015 armv7l
The programs included with the Debian GNU/Linux system are free software;
the exact distribution terms for each program are described in the
individual files in /usr/share/doc/*/copyright.
Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent
permitted by applicable law.
Last login: Mon May 11 17:17:22 2015
$ ghc --version
The Glorious Glasgow Haskell Compilation System, version 7.8.4
$ mkdir test
$ cd test
$ cabal sandbox init
Writing a default package environment file to
/home/pi/test/cabal.sandbox.config
Creating a new sandbox at /home/pi/test/.cabal-sandbox
$ cabal install array
Resolving dependencies...
Notice: installing into a sandbox located at /home/pi/test/.cabal-sandbox
Downloading array-0.5.1.0...
Configuring array-0.5.1.0...
Failed to install array-0.5.1.0
Build log ( /home/pi/test/.cabal-sandbox/logs/array-0.5.1.0.log ):
cabal: Error: some packages failed to install:
array-0.5.1.0 failed during the configure step. The exception was:
user error ('/usr/bin/ghc' exited with an error:
/tmp/ghc2287_0/ghc2287_6.s: Assembler messages:
/tmp/ghc2287_0/ghc2287_6.s:76:0:
Error: selected processor does not support ARM mode `movw
r7,:lower16:stg_bh_upd_frame_info'
/tmp/ghc2287_0/ghc2287_6.s:77:0:
Error: selected processor does not support ARM mode `movt
r7,:upper16:stg_bh_upd_frame_info'
/tmp/ghc2287_0/ghc2287_6.s:80:0:
Error: selected processor does not support ARM mode `movw
r7,:lower16:base_GHCziTopHandler_runMainIO_closure'
/tmp/ghc2287_0/ghc2287_6.s:81:0:
Error: selected processor does not support ARM mode `movt
r7,:upper16:base_GHCziTopHandler_runMainIO_closure'
/tmp/ghc2287_0/ghc2287_6.s:82:0:
Error: selected processor does not support ARM mode `movw
r8,:lower16:Cabalzm1zi22zi1zi1_DistributionziSimple_defaultMain_closure'
/tmp/ghc2287_0/ghc2287_6.s:83:0:
Error: selected processor does not support ARM mode `movt
r8,:upper16:Cabalzm1zi22zi1zi1_DistributionziSimple_defaultMain_closure'
)
有谁知道我哪里出轨了?
Does anyone know where I went off the rails?
更新
$ cabal --version
cabal-install version 1.22.0.1
using version 1.22.1.1 of the Cabal library
推荐答案
它需要 --ghc-options=-opta-march=armv7a
作为选项,每次你想用 GHC 构建一些东西或 cabal install
一些东西.有了这个,它起作用了!
It needs --ghc-options=-opta-march=armv7a
as an option every time you want to build something with GHC or cabal install
something. With this, it works!
更新
如果您改为使用 --ghc-options="-opta-mcpu=cortex-a7 -opta-mfpu=neon -opta-mtune=native -opta-mfloat-abi=hard
,浮点数也可以使用.我是通过猜测和检查并阅读旧论坛帖子得出的,因此这些设置也可能不是最佳设置.
If instead you do --ghc-options="-opta-mcpu=cortex-a7 -opta-mfpu=neon -opta-mtune=native -opta-mfloat-abi=hard
, floating point will work too. I arrived at this by guessing-and-checking and reading old forum posts, so its possible that these too are not the best settings.
Cabal 还有一个用户配置文件,您可以在其中存储此设置并在调用 GHC 时应用它.
Cabal also has a user configuration file where you can store this setting and have it applied whenever GHC is invoked.
这篇关于为什么我不能在 Raspberry Pi 上安装任何带有 GHC 7.8.4 的软件包?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!