LoginSignup
6
8

More than 3 years have passed since last update.

Raspberry Pi 3 Model B に Haskell 開発環境を構築する

Last updated at Posted at 2017-02-04

この文章は Raspberry Pi 上に Haskell 開発環境を構築する際のメモです。内容としては OS のインストールから stack new したプロジェクトをビルド、実行できるところまでの最小構成です。Mac を使用して開発環境を構築していますが、PC が Windows や Linux の場合は該当箇所を読み替えてください。

TL;DR

Mac 上での作業:

$ brew install ddrescue
$ curl -LO https://downloads.raspberrypi.org/raspbian_lite_latest
$ unzip raspbian_lite_latest
$ for f in `ls *-raspbian-*.img`; do IMG=$f; done
$ diskutil list  # SD カードがどのデバイスかを目視確認する(ここでは /dev/disk2 として進める)
$ DISK=disk2  # ここで目視したディスクを環境変数に入れる
$ diskutil unmountDisk /dev/$DISK
$ sudo ddrescue $IMG /dev/$DISK --force
$ touch /Volumes/boot/ssh  # ssh を有効にする
$ diskutil eject $DISK
$ unset IMG
$ unset DISK
$ ssh pi@raspberrypi.local -o PreferredAuthentications=password  # Raspberry Pi 起動後、しばらくしてから実行

Raspberry Pi 上での作業:

$ sudo dd if=/dev/zero of=/var/swap.extended bs=1M count=2048
$ sudo mkswap /var/swap.extended
$ sudo chmod 600 /var/swap.extended
$ sudo swapon /var/swap.extended
$ sudo sh -c 'echo "/var/swap.extended swap         swap    defaults          0       0" >> /etc/fstab'
$ sudo apt-get update
$ sudo apt-get -y upgrade
$ sudo apt-get -y install llvm-3.9
$ sudo ln -s /usr/bin/opt-3.9 /usr/bin/opt
$ sudo ln -s /usr/bin/llc-3.9 /usr/bin/llc
$ mkdir -p ~/.local/bin
$ echo 'export PATH=$HOME/.local/bin:$PATH' >> ~/.profile
$ source ~/.profile
$ curl -sSL https://get.haskellstack.org/ | sh
$ stack upgrade
$ stack setup

最新の Stack がインストールできました 🎉

補足

2018 年 10 月現在、apt-get でインストールできる stack はバージョンが 1.1.2-7 と古く、AesonException "Error in $.packages.cassava.constraints.flags というエラーが出力されます。curl -sSL https://get.haskellstack.org/ | sh で導入すれば 1.7.1 がインストールされるため、こちらの方法をおすすめします。なお、現段階の Stack の LTS は 12.12 で、対応する GHC は 8.4.3 ですが、ARM 向け GHC は 8.2.2 までしかないので、LTS 11.8 を使用する必要があります。

2018 年 2 月現在、Raspberry Pi は Debian Stretch ベースになり、普通に以下のように Stack が入れられるようになりました。

$ sudo apt-get install haskell-stack

2017 年 4 月 21 日現在、https://get.haskellstack.org のスクリプトでは stack をインストールできません。代わりに以下サイトよりバイナリをダウンロードしてください。

参考サイト

6
8
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
6
8