opamを導入してみた・・・ら大変だった
OCamlにおけるパッケージマネージャのスタンダードとなりつつあるopamを、そろそろ導入してみようかと思いましたので、導入してみました。
が、どうにも上手くいかなかったので、誰かが困っているといけないので、とりあえずの回避方法をメモっておきます。
いや、forkしてpull requestすればいいじゃんと、言われればそれまでですが、どうも問題がダウンロード先にあるようなものだったので・・・。
opamのインストール
opamはGithubで公開されています。どっちかというとbrewみたいなもんでしょうか。ソースベースというのもそれっぽいですし。
https://github.com/OCamlPro/opam
さて、実際にはすでにインストールのためのスクリプトが用意されているので、それを実行すればいいです。
wget https://raw.github.com/OCamlPro/opam/master/shell/install.sh && sh ./install.sh
Quick installと書かれているとおり、git cloneからconfigure、makeまで全部やってくれます。
・・・が、ここで私は落ちました。なんでかを調べてみると、以下の外部パッケージがtarで解凍できないためでした。
- cudf
- dose
どっちもINRIAforceというところから落としてきていましたが、実際にブラウザでリンクを踏んでみると、バイナリ文字列が画面いっぱいに・・・。text/htmlで要求して、text/htmlで返ってきてました。どうもサーバー側の設定ミス?っぽいです。
なのでこれはどうしようもない、ということで、Makefileをちょっと書き換えて、必要なものをcloneしてくることにしました。
Makefileの差分はこんなところです。
% git diff diff --git a/src_ext/Makefile b/src_ext/Makefile index 29a9dc6..4c0e0ba 100644 --- a/src_ext/Makefile +++ b/src_ext/Makefile @@ -7,13 +7,7 @@ depends.ocp: depends.ocp.boot clone: cudf.stamp extlib.stamp ocaml-re.stamp ocamlgraph.stamp dose.stamp cmdli ner.stamp -cudf-0.6.3.tar.gz: - $(FETCH) -k https://gforge.inria.fr/frs/download.php/31543/cudf-0.6.3.ta r.gz - -cudf.stamp: cudf-0.6.3.tar.gz - tar xfz cudf-0.6.3.tar.gz - rm -rf cudf - mv cudf-0.6.3 cudf +cudf.stamp: + git clone git://scm.gforge.inria.fr/cudf/cudf.git @touch $@ extlib-1.5.3.tar.gz: @@ -33,13 +27,7 @@ dose3-git: git clone --depth 1 git://scm.gforge.inria.fr/dose/dose.git dose; \\ fi -dose3-3.1.2.tar.gz: - $(FETCH) https://gforge.inria.fr/frs/download.php/31595/dose3-3.1.2.tar. gz - -dose.stamp: dose3-3.1.2.tar.gz - tar xfz dose3-3.1.2.tar.gz - rm -rf dose - mv dose3-3.1.2 dose +dose.stamp: + git clone git://scm.gforge.inria.fr/dose/dose.git @touch $@ cmdliner-0.9.2.tbz:
後は、opamディレクトリに戻ってmakeするだけです。上手くいけばOKです。
cd ../
make
sudo make install
後は、色々なところで紹介されているようにやっていけば大丈夫・・・だと思います。絶賛開発中なので、毎日のように色々と修正が入っているようです。私もこれからopamを使っていこうかと思います。まずはMacにもこれを導入するところからですが。