実用 Common Lisp (1):ASDF-install
Common Lispでrubygems,CPANのようなモジュールの管理ができるかどうか調べてみた。いまいち歯切れの悪い説明しかないので,まだ確信が持てていないのだが,Debian系のLinuxではCommon Lisp Controller というパッケージがまさにそれをやるらしい。そうでない場合は,どうやら ASDF-install が良さげ。SBCLではこれが標準っぽい。CLOCCは未調査。
やるべきことはREPLにて
CL-USER> (require :asdf-install) CL-USER> (asdf-install:install :library-name)
を打つだけ。その後
Install where? 1) System-wide install: System in /opt/local/lib/sbcl/site-systems/ Files in /opt/local/lib/sbcl/site/ 2) Personal installation: System in /Users/xoinu/.sbcl/systems/ Files in /Users/xoinu/.sbcl/site/ -->
のようにインストール先を聴いてくる。あまりこのシステムを信用していないので,取りあえず 2 を選択した。今日のところは,Common Lispユーザの心が清いことを仮定して,鍵の認証などはスキップしてしまった。asdf-install で利用可能なモジュールは全て CLiki-Install にリストアップされているという。ここが一次情報源だとすると,CLikiはCommon Lisp界ではかなり中心的なサイトということなのか。
ちなみに,アンインストールは
CL-USER> (asdf-install:uninstall :library-name)
でオッケー。(whew)
原理的には,tar玉にパッケージの定義ファイルが入っていて,その定義ファイルとローカルのデータベースをもとに,依存関係の解決,ビルド,インストールを行うという仕組み。以下のチュートリアル(まだ書きかけだそうです)に,ローカルファイルからのインストール,カスタマイズの方法など,もっと詳しいことが書かれています。
とりあえず,cffi と S-XML を入れてみた。パッケージのダウンロードって何でこんなに楽しいんだろう。ドラえもんから道具をもらう,のび太みたいだ…。