ProgramHaskell

Haskellのインストール

Ubuntu 18.04にHaskellをインストールしてみる。

(参考)なぜ stack を使うのか? https://haskell.e-bigmoon.com/stack/intro/why-stack.html

Haskell Platform
stack が登場する以前は、とりあえず Haskell を始めるなら Haskell Platform を入れておけば良い。という風潮がありました。
理由としてはコンパイラ (GHC), ビルドツール (cabal), よく使うパッケージ (text, bytestring, etc…) をワンクリックで全てインストールできるためです。(当時は画期的で、僕もとてもお世話になりました)
しかしながら、現在ではあまり利用されなくなってきていると思います。Haskell Platform を使ったインストール方法は、一時的に Haskell を書籍・授業等で学ぶという分には良いかもしれません。
しかし、継続的に利用していこう、何かアプリケーションを作ってみようと少しでも考えている人は、 stack を使いましょう!

(参考)Haskell Stack とは何をするツールなのか - Qiita https://qiita.com/usamik26/items/672ed3c4451402bfc275

Stack でできること
主に、以下の3つをこなすツールです。
(1) Haskell コンパイラをパソコンにインストールする。
(2) Haskell 製のツールを、ビルドしてパソコンにインストールする。
(3) Haskell で開発する際のプロジェクトを新規作成したり、プロジェクトをビルドしたりする。
Stack について把握していくと、(3) がメイン機能で (1) や (2) はその派生的な機能だと気づきます。
しかし、まずは (1) や (2) から把握していくのが良いと考えます。

とりあえず、Haskellの本を読んで勉強する段階では、Haskell Platformでも十分。
=GHCiでHaskellの文法を確認する程度。
本格的にHaskellでアプリを開発するようになったら、Haskell Stackに切り替えれば良い。
最初の環境構築で時間を費やすのは、やる気を削ぐので避けたい。

公式サイト

リンク

Haskell Platform

初心者向け

$ sudo apt install haskell-platform

Stack

中級者向け

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

2-3. インストール後のちょい設定
パスが通っていない場合や、stack経由なのでコマンドがstack ghcになるなどがあります。
そのため少し設定をしました。

.bashrc

# set PATH for stack command(haskell-stack).
PATH="$HOME/.local/bin:$PATH"

# set stack ghc aliases
alias ghci='stack ghci'
alias ghc='stack ghc --'
alias runghc='stack runghc --'

ghc

その他(初心者向け?)

$ sudo apt install ghc

Tips

インストールされているHaskellのバージョン確認方法

Haskellの有無も分かる。

$ ghc --version
The Glorious Glasgow Haskell Compilation System, version 8.0.2

Haskell Platformでインストール

$ sudo apt install haskell-platform

アップグレード: 0 個、新規インストール: 114 個、削除: 0 個、保留: 0 個。
88.9 MB のアーカイブを取得する必要があります。
この操作後に追加で 887 MB のディスク容量が消費されます。

続行しますか? [Y/n] y

取得:1 http://jp.archive.ubuntu.com/ubuntu bionic-updates/main amd64 libitm1 amd64 8.4.0-1ubuntu1~18.04 [27.9 kB]
取得:2 http://jp.archive.ubuntu.com/ubuntu bionic-updates/main amd64 libatomic1 amd64 8.4.0-1ubuntu1~18.04 [9,192 B]
取得:3 http://jp.archive.ubuntu.com/ubuntu bionic-updates/main amd64 libasan4 amd64 7.5.0-3ubuntu1~18.04 [358 kB]
取得:4 http://jp.archive.ubuntu.com/ubuntu bionic-updates/main amd64 liblsan0 amd64 8.4.0-1ubuntu1~18.04 [133 kB]
取得:5 http://jp.archive.ubuntu.com/ubuntu bionic-updates/main amd64 libtsan0 amd64 8.4.0-1ubuntu1~18.04 [288 kB]
取得:6 http://jp.archive.ubuntu.com/ubuntu bionic-updates/main amd64 libubsan0 amd64 7.5.0-3ubuntu1~18.04 [126 kB]
取得:7 http://jp.archive.ubuntu.com/ubuntu bionic-updates/main amd64 libcilkrts5 amd64 7.5.0-3ubuntu1~18.04 [42.5 kB]
取得:8 http://jp.archive.ubuntu.com/ubuntu bionic-updates/main amd64 libmpx2 amd64 8.4.0-1ubuntu1~18.04 [11.6 kB]
取得:9 http://jp.archive.ubuntu.com/ubuntu bionic-updates/main amd64 libquadmath0 amd64 8.4.0-1ubuntu1~18.04 [134 kB]
取得:10 http://jp.archive.ubuntu.com/ubuntu bionic-updates/main amd64 libgcc-7-dev amd64 7.5.0-3ubuntu1~18.04 [2,378 kB]
取得:11 http://jp.archive.ubuntu.com/ubuntu bionic-updates/main amd64 gcc-7 amd64 7.5.0-3ubuntu1~18.04 [9,381 kB]
取得:12 http://jp.archive.ubuntu.com/ubuntu bionic-updates/main amd64 gcc amd64 4:7.4.0-1ubuntu2.3 [5,184 B]
取得:13 http://jp.archive.ubuntu.com/ubuntu bionic/main amd64 libgmpxx4ldbl amd64 2:6.1.2+dfsg-2 [8,964 B]
取得:14 http://jp.archive.ubuntu.com/ubuntu bionic/main amd64 libgmp-dev amd64 2:6.1.2+dfsg-2 [316 kB]
取得:15 http://jp.archive.ubuntu.com/ubuntu bionic/main amd64 libffi-dev amd64 3.2.1-8 [156 kB]
取得:16 http://jp.archive.ubuntu.com/ubuntu bionic-updates/main amd64 libbsd-dev amd64 0.8.7-1ubuntu0.1 [150 kB]
取得:17 http://jp.archive.ubuntu.com/ubuntu bionic/main amd64 libc-dev-bin amd64 2.27-3ubuntu1 [71.8 kB]
取得:18 http://jp.archive.ubuntu.com/ubuntu bionic-updates/main amd64 linux-libc-dev amd64 4.15.0-96.97 [1,021 kB]
取得:19 http://jp.archive.ubuntu.com/ubuntu bionic/main amd64 libc6-dev amd64 2.27-3ubuntu1 [2,587 kB]
取得:20 http://jp.archive.ubuntu.com/ubuntu bionic-updates/main amd64 libtinfo-dev amd64 6.1-1ubuntu1.18.04 [81.3 kB]
取得:21 http://jp.archive.ubuntu.com/ubuntu bionic-updates/main amd64 libncurses5-dev amd64 6.1-1ubuntu1.18.04 [174 kB]
取得:22 http://jp.archive.ubuntu.com/ubuntu bionic/universe amd64 ghc amd64 8.0.2-11 [45.3 MB]
取得:23 http://jp.archive.ubuntu.com/ubuntu bionic/universe amd64 alex amd64 3.2.3-1 [550 kB]
取得:24 http://jp.archive.ubuntu.com/ubuntu bionic/universe amd64 cabal-install amd64 1.24.0.2-2 [2,778 kB]
取得:25 http://jp.archive.ubuntu.com/ubuntu bionic/universe amd64 freeglut3 amd64 2.8.1-3 [73.6 kB]
取得:26 http://jp.archive.ubuntu.com/ubuntu bionic/main amd64 xorg-sgml-doctools all 1:1.11-1 [12.9 kB]
取得:27 http://jp.archive.ubuntu.com/ubuntu bionic/main amd64 x11proto-dev all 2018.4-4 [251 kB]
取得:28 http://jp.archive.ubuntu.com/ubuntu bionic/main amd64 x11proto-core-dev all 2018.4-4 [2,620 B]
取得:29 http://jp.archive.ubuntu.com/ubuntu bionic/main amd64 libxau-dev amd64 1:1.0.8-1 [11.1 kB]
取得:30 http://jp.archive.ubuntu.com/ubuntu bionic/main amd64 libxdmcp-dev amd64 1:1.1.2-3 [25.1 kB]
取得:31 http://jp.archive.ubuntu.com/ubuntu bionic/main amd64 x11proto-input-dev all 2018.4-4 [2,620 B]
取得:32 http://jp.archive.ubuntu.com/ubuntu bionic/main amd64 xtrans-dev all 1.3.5-1 [70.5 kB]
取得:33 http://jp.archive.ubuntu.com/ubuntu bionic/main amd64 libpthread-stubs0-dev amd64 0.3-4 [4,068 B]
取得:34 http://jp.archive.ubuntu.com/ubuntu bionic-updates/main amd64 libxcb1-dev amd64 1.13-2~ubuntu18.04 [80.0 kB]
取得:35 http://jp.archive.ubuntu.com/ubuntu bionic-updates/main amd64 libx11-dev amd64 2:1.6.4-3ubuntu0.2 [640 kB]
取得:36 http://jp.archive.ubuntu.com/ubuntu bionic-updates/main amd64 libdrm-dev amd64 2.4.99-1ubuntu1~18.04.2 [125 kB]
取得:37 http://jp.archive.ubuntu.com/ubuntu bionic-updates/main amd64 mesa-common-dev amd64 19.2.8-0ubuntu0~18.04.3 [651 kB]
取得:38 http://jp.archive.ubuntu.com/ubuntu bionic-updates/main amd64 libglvnd-core-dev amd64 1.0.0-2ubuntu2.3 [12.8 kB]
取得:39 http://jp.archive.ubuntu.com/ubuntu bionic-updates/main amd64 libgles1 amd64 1.0.0-2ubuntu2.3 [11.2 kB]
取得:40 http://jp.archive.ubuntu.com/ubuntu bionic-updates/main amd64 libopengl0 amd64 1.0.0-2ubuntu2.3 [31.3 kB]
取得:41 http://jp.archive.ubuntu.com/ubuntu bionic-updates/main amd64 libglvnd-dev amd64 1.0.0-2ubuntu2.3 [3,416 B]
取得:42 http://jp.archive.ubuntu.com/ubuntu bionic-updates/main amd64 libx11-xcb-dev amd64 2:1.6.4-3ubuntu0.2 [9,756 B]
取得:43 http://jp.archive.ubuntu.com/ubuntu bionic-updates/main amd64 libxcb-dri3-dev amd64 1.13-2~ubuntu18.04 [7,384 B]
取得:44 http://jp.archive.ubuntu.com/ubuntu bionic-updates/main amd64 libxcb-render0-dev amd64 1.13-2~ubuntu18.04 [18.4 kB]
取得:45 http://jp.archive.ubuntu.com/ubuntu bionic-updates/main amd64 libxcb-randr0-dev amd64 1.13-2~ubuntu18.04 [20.4 kB]
取得:46 http://jp.archive.ubuntu.com/ubuntu bionic-updates/main amd64 libxcb-shape0-dev amd64 1.13-2~ubuntu18.04 [7,144 B]
取得:47 http://jp.archive.ubuntu.com/ubuntu bionic-updates/main amd64 libxcb-xfixes0-dev amd64 1.13-2~ubuntu18.04 [11.7 kB]
取得:48 http://jp.archive.ubuntu.com/ubuntu bionic-updates/main amd64 libxcb-sync-dev amd64 1.13-2~ubuntu18.04 [10.6 kB]
取得:49 http://jp.archive.ubuntu.com/ubuntu bionic-updates/main amd64 libxcb-present-dev amd64 1.13-2~ubuntu18.04 [6,972 B]
取得:50 http://jp.archive.ubuntu.com/ubuntu bionic/main amd64 libxshmfence-dev amd64 1.3-1 [3,692 B]
取得:51 http://jp.archive.ubuntu.com/ubuntu bionic-updates/main amd64 libxcb-dri2-0-dev amd64 1.13-2~ubuntu18.04 [8,472 B]
取得:52 http://jp.archive.ubuntu.com/ubuntu bionic-updates/main amd64 libxcb-glx0-dev amd64 1.13-2~ubuntu18.04 [27.9 kB]
取得:53 http://jp.archive.ubuntu.com/ubuntu bionic/main amd64 x11proto-fixes-dev all 1:2018.4-4 [2,620 B]
取得:54 http://jp.archive.ubuntu.com/ubuntu bionic/main amd64 libxfixes-dev amd64 1:5.0.3-1 [11.0 kB]
取得:55 http://jp.archive.ubuntu.com/ubuntu bionic/main amd64 x11proto-damage-dev all 1:2018.4-4 [2,620 B]
取得:56 http://jp.archive.ubuntu.com/ubuntu bionic/main amd64 libxdamage-dev amd64 1:1.1.4-3 [5,028 B]
取得:57 http://jp.archive.ubuntu.com/ubuntu bionic/main amd64 x11proto-xext-dev all 2018.4-4 [2,620 B]
取得:58 http://jp.archive.ubuntu.com/ubuntu bionic/main amd64 libxext-dev amd64 2:1.3.3-1 [82.1 kB]
取得:59 http://jp.archive.ubuntu.com/ubuntu bionic/main amd64 x11proto-xf86vidmode-dev all 2018.4-4 [2,632 B]
取得:60 http://jp.archive.ubuntu.com/ubuntu bionic/main amd64 libxxf86vm-dev amd64 1:1.1.4-1 [13.3 kB]
取得:61 http://jp.archive.ubuntu.com/ubuntu bionic-updates/main amd64 libgl1-mesa-dev amd64 19.2.8-0ubuntu0~18.04.3 [6,180 B]
取得:62 http://jp.archive.ubuntu.com/ubuntu bionic/main amd64 libglu1-mesa-dev amd64 9.0.0-2.1build1 [206 kB]
取得:63 http://jp.archive.ubuntu.com/ubuntu bionic/main amd64 libice-dev amd64 2:1.0.9-2 [46.8 kB]
取得:64 http://jp.archive.ubuntu.com/ubuntu bionic/main amd64 libsm-dev amd64 2:1.2.2-1 [16.2 kB]
取得:65 http://jp.archive.ubuntu.com/ubuntu bionic/main amd64 libxt-dev amd64 1:1.1.5-1 [395 kB]
取得:66 http://jp.archive.ubuntu.com/ubuntu bionic/universe amd64 freeglut3-dev amd64 2.8.1-3 [124 kB]
取得:67 http://jp.archive.ubuntu.com/ubuntu bionic/universe amd64 happy amd64 1.19.8-1 [494 kB]
取得:68 http://jp.archive.ubuntu.com/ubuntu bionic/universe amd64 hscolour amd64 1.24.2-1 [324 kB]
取得:69 http://jp.archive.ubuntu.com/ubuntu bionic/universe amd64 libghc-text-dev amd64 1.2.2.2-1 [878 kB]
取得:70 http://jp.archive.ubuntu.com/ubuntu bionic/universe amd64 libghc-hashable-dev amd64 1.2.6.1-1 [80.7 kB]
取得:71 http://jp.archive.ubuntu.com/ubuntu bionic/universe amd64 libghc-integer-logarithms-dev amd64 1.0.2-1 [35.9 kB]
取得:72 http://jp.archive.ubuntu.com/ubuntu bionic/universe amd64 libghc-primitive-dev amd64 0.6.2.0-1 [196 kB]
取得:73 http://jp.archive.ubuntu.com/ubuntu bionic/universe amd64 libghc-scientific-dev amd64 0.3.5.2-1build1 [132 kB]
取得:74 http://jp.archive.ubuntu.com/ubuntu bionic/universe amd64 libghc-attoparsec-dev amd64 0.13.1.0-3build6 [518 kB]
取得:75 http://jp.archive.ubuntu.com/ubuntu bionic/universe amd64 libghc-call-stack-dev amd64 0.1.0-3 [15.1 kB]
取得:76 http://jp.archive.ubuntu.com/ubuntu bionic/universe amd64 libghc-hunit-dev amd64 1.5.0.0-1 [95.2 kB]
取得:77 http://jp.archive.ubuntu.com/ubuntu bionic-updates/main amd64 libx11-doc all 2:1.6.4-3ubuntu0.2 [2,065 kB]
取得:78 http://jp.archive.ubuntu.com/ubuntu bionic/main amd64 libxi-dev amd64 2:1.7.9-1 [186 kB]
取得:79 http://jp.archive.ubuntu.com/ubuntu bionic/main amd64 libxmu-headers all 2:1.1.2-2 [54.3 kB]
取得:80 http://jp.archive.ubuntu.com/ubuntu bionic/main amd64 libxmu-dev amd64 2:1.1.2-2 [49.0 kB]
取得:81 http://jp.archive.ubuntu.com/ubuntu bionic/main amd64 manpages-dev all 4.15-1 [2,217 kB]
取得:82 http://jp.archive.ubuntu.com/ubuntu bionic/main amd64 zlib1g-dev amd64 1:1.2.11.dfsg-0ubuntu2 [176 kB]
取得:83 http://jp.archive.ubuntu.com/ubuntu bionic/universe amd64 libghc-stm-dev amd64 2.4.4.1-3build1 [59.9 kB]
取得:84 http://jp.archive.ubuntu.com/ubuntu bionic/universe amd64 libghc-async-dev amd64 2.1.1.1-1 [56.3 kB]
取得:85 http://jp.archive.ubuntu.com/ubuntu bionic/universe amd64 libghc-case-insensitive-dev amd64 1.2.0.10-1build1 [42.8 kB]
取得:86 http://jp.archive.ubuntu.com/ubuntu bionic/universe amd64 libghc-fgl-dev amd64 5.5.4.0-1 [393 kB]
取得:87 http://jp.archive.ubuntu.com/ubuntu bionic/universe amd64 libghc-fixed-dev amd64 0.2.1.1-3build1 [30.6 kB]
取得:88 http://jp.archive.ubuntu.com/ubuntu bionic/universe amd64 libghc-half-dev amd64 0.2.2.3-3build1 [32.7 kB]
取得:89 http://jp.archive.ubuntu.com/ubuntu bionic/universe amd64 libghc-openglraw-dev amd64 3.2.7.0-1 [3,833 kB]
取得:90 http://jp.archive.ubuntu.com/ubuntu bionic/universe amd64 libghc-gluraw-dev amd64 2.0.0.3-1build7 [80.2 kB]
取得:91 http://jp.archive.ubuntu.com/ubuntu bionic/universe amd64 libghc-objectname-dev amd64 1.1.0.1-3build1 [11.0 kB]
取得:92 http://jp.archive.ubuntu.com/ubuntu bionic/universe amd64 libghc-statevar-dev amd64 1.1.0.4-4build1 [19.5 kB]
取得:93 http://jp.archive.ubuntu.com/ubuntu bionic/universe amd64 libghc-opengl-dev amd64 3.0.2.0-1build5 [2,529 kB]
取得:94 http://jp.archive.ubuntu.com/ubuntu bionic/universe amd64 libghc-glut-dev amd64 2.7.0.12-1build5 [483 kB]
取得:95 http://jp.archive.ubuntu.com/ubuntu bionic/universe amd64 libghc-syb-dev amd64 0.7-1 [114 kB]
取得:96 http://jp.archive.ubuntu.com/ubuntu bionic/universe amd64 libghc-haskell-src-dev amd64 1.0.2.0-6build3 [670 kB]
取得:97 http://jp.archive.ubuntu.com/ubuntu bionic/universe amd64 libghc-html-dev amd64 1.0.1.2-13build1 [119 kB]
取得:98 http://jp.archive.ubuntu.com/ubuntu bionic/universe amd64 libghc-mtl-dev amd64 2.2.1-5build1 [92.2 kB]
取得:99 http://jp.archive.ubuntu.com/ubuntu bionic/universe amd64 libghc-network-dev amd64 2.6.3.2-1 [320 kB]
取得:100 http://jp.archive.ubuntu.com/ubuntu bionic/universe amd64 libghc-parsec3-dev amd64 3.1.11-3build2 [251 kB]
取得:101 http://jp.archive.ubuntu.com/ubuntu bionic/universe amd64 libghc-network-uri-dev amd64 2.6.1.0-3build2 [129 kB]
取得:102 http://jp.archive.ubuntu.com/ubuntu bionic/universe amd64 libghc-http-dev amd64 1:4000.3.9-1 [417 kB]
取得:103 http://jp.archive.ubuntu.com/ubuntu bionic/universe amd64 libghc-parallel-dev amd64 3.2.1.1-1 [49.2 kB]
取得:104 http://jp.archive.ubuntu.com/ubuntu bionic/universe amd64 libghc-random-dev amd64 1.1-5build1 [106 kB]
取得:105 http://jp.archive.ubuntu.com/ubuntu bionic/universe amd64 libghc-tf-random-dev amd64 0.5-7build2 [79.7 kB]
取得:106 http://jp.archive.ubuntu.com/ubuntu bionic/universe amd64 libghc-quickcheck2-dev amd64 2.9.2-1build1 [494 kB]
取得:107 http://jp.archive.ubuntu.com/ubuntu bionic/universe amd64 libghc-regex-base-dev amd64 0.93.2-10build1 [57.4 kB]
取得:108 http://jp.archive.ubuntu.com/ubuntu bionic/universe amd64 libghc-regex-posix-dev amd64 0.95.2-9build1 [123 kB]
取得:109 http://jp.archive.ubuntu.com/ubuntu bionic/universe amd64 libghc-regex-compat-dev amd64 0.95.1-10build1 [18.3 kB]
取得:110 http://jp.archive.ubuntu.com/ubuntu bionic/universe amd64 libghc-split-dev amd64 0.2.3.2-1 [42.3 kB]
取得:111 http://jp.archive.ubuntu.com/ubuntu bionic/universe amd64 libghc-unordered-containers-dev amd64 0.2.8.0-1build2 [195 kB]
取得:112 http://jp.archive.ubuntu.com/ubuntu bionic/universe amd64 libghc-vector-dev amd64 0.12.0.1-2build1 [1,230 kB]
取得:113 http://jp.archive.ubuntu.com/ubuntu bionic/universe amd64 libghc-zlib-dev amd64 0.6.1.2-1build1 [162 kB]
取得:114 http://jp.archive.ubuntu.com/ubuntu bionic/universe amd64 haskell-platform all 2014.2.0.0.debian4 [3,518 B]
88.9 MB を 33秒 で取得しました (2,687 kB/s)
パッケージからテンプレートを展開しています: 100%

こんなかんじでインストールできた。

参考書


トップ   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS