空想犬猫記

※当日記では、犬も猫も空想も扱っておりません。(旧・エト記)

実用 Common Lisp (1):ASDF-install

Common LisprubygemsCPANのようなモジュールの管理ができるかどうか調べてみた。いまいち歯切れの悪い説明しかないので,まだ確信が持てていないのだが,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 を入れてみた。パッケージのダウンロードって何でこんなに楽しいんだろう。ドラえもんから道具をもらう,のび太みたいだ…。