2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

Raspberry Pi 3にghc8.10.1をインストールしてみた

Last updated at Posted at 2021-11-11

Raspberry Pi 3にghc8.10.1をインストールしてみたので記事にします。

当初stackをインストールしたくて、通常のLinuxにインストールするように

curl -sSL https://get.haskellstack.org/ | sh

wget -qO- https://get.haskellstack.org/ | sh

を試してみましたが、だめでした。
CPUがArmのRaspberry Piには、現時点ではstackをインストールできないようです。

GHC8.10.1のインストール

環境

Raspberry Pi 3
OS: Rasbian 32bit
インストールアカウント:デフォルト(pi)

調べる

Raspberry Piへのインストール方法をググってみると、公式にwikiがありました。
Raspberry Pi

上記ページのリンクのトップに下記がありました。
The state of GHC on ARM

ここにインストール方法が載っています。

以下インストール方法です。

注意事項

※インストールはRasbian 32bitで成功しました。
 Rasbian 64bitでインストールを行ってみましたが、インストールの途中でエラーになりました。

※インストールはデフォルトのアカウント(pi)で成功しました。
 最初、別に作成したアカウントでインストールを始めたら、インストールでこけました。
 ダウンロードするファイルの所有権が(pi)になっています。所有権を変更すれば成功していたかもしれません。

インストール方法

まずは、LLVM 9(GHCがARMでのコード生成に使用)をインストールする必要があるようです。

sudo apt-get install llvm-9

ダウンロード

wget http://downloads.haskell.org/~ghc/8.10.1/ghc-8.10.1-armv7-deb9-linux.tar.xz

解凍

tar -xf ghc-8.10.1-armv7-deb9-linux.tar.xz

※公式サイトではファイル名が間違っていましたので注意です。

フォルダの移動とコンフィグ&インストール

cd ghc-8.10.1

./configure CONF_CC_OPTS_STAGE2="-marm -march=armv7-a" CFLAGS="-marm -march=armv7-a"

sudo make install

動作確認

バージョンの表示とハローワールド

$ ghc --version
$ cat > Hello.hs <<EOF
> main = putStrLn "hello world!"
> EOF
$ ghc Hello.hs
$ ./Hello
hello world!

小職の場合は上記を実行すると、下記のようなエラーになりました。

/usr/bin/ld.gold: エラー: -lgmp が見つかりません

なのでファイル(gmp)を検索

sudo find / -name *gmp*

下記フォルダにファイルが見つかりました。

/usr/lib/arm-linux-gnueabihf/libgmp.so.10.4.1

リンクを作成しました。

cd /usr/lib/arm-linux-gnueabihf

sudo ln -s libgmp.so.10.4.1 libgmp.so

あらためて動作確認すると、ハローワールドが表示されました。

pi@raspberrypi:~/Documents/project/make/haskell/hello $ cat Hello.hs
main = putStrLn "hello world!"

pi@raspberrypi:~/Documents/project/make/haskell/hello $ ghc Hello.hs
[1 of 1] Compiling Main             ( Hello.hs, Hello.o )
Linking Hello ...

pi@raspberrypi:~/Documents/project/make/haskell/hello $ ./Hello
hello world!

インストール後は別のアカウントでもGHCは動作しました。

以上

2
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?