Rasberry Pi3 (ARMv7)にhaskell-stackをインストールする
Rasbianのリポジトリにhaskell-platformはあったのにhaskell-stackがない!
困った困った。
ということでここを見ていると…ありがたいことにarm用のビルドがありました!!
ありがとうございます!! ありがとうございます!!
現存する問題
残念ながら、arm版haskell-stackを使うに当たって、まだ致命的な箇所があります。
解決アプローチと共に以下に記します :D
- 現存する問題
-
stack setup
によるghcの自動インストールが行えない- debianリポジトリから、resolverバージョンの要求するghcをaptでインストールする (
stack setup
の代わりにapt install ghc
する) - 例えば
resolver: lts-6.9
であれば、要求されるghcバージョンは7.10.3
- debianリポジトリから、resolverバージョンの要求するghcをaptでインストールする (
-
前準備
Rasbianにdebianのリポジトリを追加します。
既にhttp://ftp.jp.debian.org/debian/
を追加している方は不要。
# stretchのレポジトリ追加
echo -e "\ndeb http://ftp.jp.debian.org/debian/ stretch main contrib non-free" | sudo tee -a /etc/apt/sources.list
# リポジトリの認証情報を追加
gpg --keyserver pgpkeys.mit.edu --recv-key 8B48AD6246925553
gpg -a --export 8B48AD6246925553| sudo apt-key add -
gpg --keyserver pgpkeys.mit.edu --recv-key 7638D0442B90D010
gpg -a --export 7638D0442B90D010| sudo apt-key add -
# リポジトリのDB更新
sudo apt update
ghcとstackのインストール
- 上記で準備したリポジトリからghcをインストールします
sudo apt install ghc
-
Release v1.1.2あたり(最新版を推奨)のDownloadsから「Linux ARMv7」をダウンロードする
wget https://github.com/commercialhaskell/stack/releases/download/v1.1.2/stack-1.1.2-linux-arm.tar.gz
- tar.gzの中身に実行用stackバイナリがあるので、PATHの通ったところに置く
tar xvf stack-1.1.2-linux-arm.tar.gz
cp ./stack-1.1.2-linux-arm/stack {/some/path}
rm -rf ./stack-1.1.2-linux-arm
stack --version
Version 1.1.2, Git revision 6bca6d8eaf542c5bd4b5c83d23670137249f2145 (3663 commits) arm hpack-0.14.0
やったあ!
stackアプリケーションをビルドしてみる
試し試し。
$ git clone https://github.com/aiya000/hs-sentence-jp ; cd hs-sentence-jp
$ stack build
[1 of 1] Compiling Main ( /tmp/stack26574/Setup.hs, /tmp/stack26574/Setup.o )
Linking /home/pi/.stack/setup-exe-cache/arm-linux/tmp-setup-Simple-Cabal-1.22.5.0-ghc-7.10.3 ...
base-compat-0.9.1: download
auto-update-0.1.4: download
base64-bytestring-1.0.0.1: download
SHA-1.6.4.2: download
base64-bytestring-1.0.0.1: configure
Pbase64-bytestring-1.0.0.1: build
.
.
.
mecab-0.4.0: configure↲
mecab-0.4.0: build↲
mecab-0.4.0: copy/register↲
sentence-jp-0.1.0.0: configure↲
sentence-jp-0.1.0.0: build↲
sentence-jp-0.1.0.0: copy/register↲
できた!!