OCaml環境構築メモ

Posted by yonezo in 仕事, 日記 | Leave a comment
Pocket

へっぽこエンジニア、凡ミスキングの米蔵です。

数年前から友人が「関数型言語がイイ!PHPなんてウンコだよ!」と言ってくるので、そんなに良いのかと思い、とりあえず、OCamlプログラムをコンパイルしてブラウザで何らかの文字を表示できるところまでやってみる。

OCamlのメリットは、静的な変数(なんか矛盾してる感じだけど)による、バグの削減とか、いろいろあるらしい。とりあえず今後いろいろいじっていきたいと思います。

 

OSはLinux Mintです。

$ cat /etc/issue
Linux Mint 17 Qiana

ダウンロードはここ

 

OCamlのインストール

まずはこれが無いと始まらない的な。

「システム管理」-「ソフトウェアの管理」からOCamlで検索すればズラーっと出てくるので、そこからインストールするか、

20141220

コマンドで、

ocaml

と、いかにも既に入っているかのごとく打ち込むと、「まだインストールされてないから、これでインストールしろ。」と出てきますので、それを実行すればOK。これがどーこーというレベルではないので省略する。

 

opamのインストール

「おぱむ」とか「おっぱむ」とか呼んでいる、パッケージマネージャー。

ocamlの開発環境を作る上で便利なので、これを入れる。

wget http://www.ocamlpro.com/pub/opam_installer.sh

sh ./opam_installer.sh /usr/local/bin

ただ、上記サイトのインストーラーは古いみたい。1.1.1が入ってしまう。

どこで入手したのか分かりませんが、1.2.0のopam_installer.shがあるので、それを使う。

./opam_installer.sh /usr/local/bin/

インストール後は必ず

eval `opam config env`

を実行する事。

 

ocsigenserver、その他のインストール

ocamlはapacheではなく、ocsigenserverというwebサーバ上で動くらしい。

そのため、共存すると自動的にportが8080になるようだ。

とりあえずopamが入っているので、ガスガス入れていきます。

opam install ocsigenserver

 

ちなみに、

opam list

で、インストールされているパッケージの一覧が参照できる。

opam --version

でopamのバージョン参照。

opam upgrade

で、パッケージの一括更新。

とりあえずopamと叩けば、ヘルプが見れるので、それを見ればOK。

 

で、とりあえず必要なパッケージでocsigenserverの他は

js_of_ocaml、dbm、eliom、lwt、tyxml

この辺でした。

エラーが出る場合は、removeしてreinstallしてみる。

大抵はopamのバージョンが古かったりするので、switchしてバージョンを最新のものにしてからinstallする。

opam switch 4.02.1

とか。

 

eliomでプロジェクト作成

eliomはocamlのフレームワーク?、とにかく新規のプロジェクトを以下で作成することができる。

適当なディレクトリを作って、その下で。

mkdir develop

cd develop

eliom-distillery -name hello

とやると、developの下にhelloディレクトリが作成されて、ファイルが作成される。

cd hello

でディレクトリに入り、

make test.byte

でコンパイルされ、ocsigenが起動する。

この状態で、ブラウザから

localhost:8080

とやると、

7RMPagga

って感じでブラウザに表示されます。

他に、Geanyというエディタを入れた。うーむ便利。

ただ、作業環境については探求の余地がまだまだあるので、今後探索していきたいと思います。

 

ここに至るまでにエラー出たりとかエラー出たりとか試行錯誤があったんだが、省略した。

大抵はメッセージを読めば、何かのパッケージが足りないかバージョンが古くて対応できないかという事が分かります。

 

以上、ocaml開発環境メモでした。このエントリは今後大幅に加筆修正される可能性が大です。

何かの間違いで読んでしまった技術者の皆様、

「チッ、このド素人が。」という感じで構いませんので、大目に見ていただけると幸いです。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です