Cloud9でHaskellの環境構築
この記事ではCloud9でHaskellの環境構築を行います。 AWSアカウントの作成、Cloud9のセットアップは済んでいる前提として進めていきます。まだの方はこちらの記事をご参照下さい。
1、はじめに
Cloud9があればカンタンにHaskellの環境構築を行うことができます。面倒な設定が不要ですぐにコードが書けるのが大きなメリットです(ご使用に応じて料金がかかるので、そこは自己責任でお願い致します)。
Haskellの場合、コンパイラはあらかじめインストールされていません。自分たちで用意する必要があります。 といってもカンタンに構築できますので、その方法をご紹介します。
2、ディスク容量の追加
では早速GHCコンパイラをインストールしましょう!..と言いたいところなのですが、恐らく必要になってくるのが「ディスク容量の追加」です。ターミナルで下記のコマンドを入力して容量を確認してみて下さい。
Cloudはデフォルトで10GBが使えるのですが、既に8GBくらい占有されている方が多いのではないでしょうか。空きが少ないのでこのままではGHCコンパイラをインストールできません。そこで準備としてディスク容量の追加が必要になります。
(1)インスタンスの停止
Cloud9の画面を開きます。いつもはOpen IDEで画面を開いてますが、今回はView detailsから詳細を編集していきます。
View detailsをクリックすると詳細画面が開きます。少し下にスクロールするとGo to instanceが出てきますので、こちらをクリックします。
インスタンスの画面が開きます。
容量を変更する前に、一度インスタンスを停止させる必要があります。停止させるインスタンスをクリック。「インスタンスの状態」から「インスタンの停止」を選択します。
確認の画面が出るので、そのまま「停止」を選択。
少し経つとステータスが「停止中」になっていることを確認できます。
(2)ディスク容量の拡張
インスタンスを停止できたので、ここからディスク容量を拡張していきます。容量を拡張したいインスタンスをクリックし、下にある「ストレージ」を選択。下へとスクロールします。
少し下に「ボリュームID」があるのでこちらを選択。
ボリュームの画面が開き、容量はまだ10GBであることを確認できます。更にIDをクリック。
ボリュームの詳細画面が開きます。右側にある「変更」をクリック。
容量を10GBから、ここでは30GBへ変更します。終わったら「変更」を選択。
少し時間が経つと変更が反映されます。サイズが30GBに変更されたことを確認。これによって容量を拡張することができました。確認できたら「インスタンス」を選択して先ほどの画面に戻ります。
停止させていたインスタンスを再開させます。「インスタンスの状態」から「インスタンスの再開」を選択します。少し経つとステータスが「実行中」になります。
一応、Cloud9の画面でも容量を確認しておきましょう。
df -h
をコマンドで入力します。
容量が30GBになっていることを確認できると思います。
3、GHCコンパイラのインストール
GHCコンパイラをCloud9へインストールしていきます。まずは下記のコマンドでアップデートを行って下さい。
sudo yum update
アップデートが自動的に始まります。途中で続行するかどうかを聞かれますが、y
で続行して下さい。
いよいよHaskellコンパイラをインストールします。下記のコマンドを入力して下さい。
sudo yum install haskell-platform
自動的にインストールが開始します。続行するかどうか聞かれた場合、先ほどと同じようにy
を選択して下さい。
こちらでHaskellコンパイラのインストールが完了しました!
実際に出力できるかどうか確認してみましょう。コマンドラインでghci
と入力すると、対話環境が起動します。こちらで確認ができました!
4、HelloWorldを出力
ちなみにファイルを作っても確認ができます。左側の部分で右クリックをしNew Fileを選択。sample.hsというフォルダを作成します。
その中に以下のコードを記述して下さい。
main :: IO ()
main = do
putStrLn "HelloWorld"
実行コマンドはこちらを入力して下さい。
ghc -o sample sample.hs && ./sample
HelloWorldを出力することを確認できました!
Author And Source
この問題について(Cloud9でHaskellの環境構築), 我々は、より多くの情報をここで見つけました https://zenn.dev/masahiro_toba/articles/768fc2541e5e31著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Collection and Share based on the CC protocol