metatilitiesのインストール
CL勉強会の予習のために、metatilitiesというライブラリを読んでみようとしています。
ここで、metatilitiesをダウンロードしてきて展開してソースを斜め読みしはじめたんですが、結構今の自分には難易度が高くて、とてもじゃないけどインストールして動かしながらじゃないと、感じがつかめないと思いました。
なんか、lispboxのasdfは、設定がどうなってるか良くわからなかったけど、試しに、(asdf:operate ‘asdf:load-op :cl-ppcre) として cl-ppcre をロードしてみたら、下のパスから読んでいるみたいでした。
/usr/local/lispbox-0.7/portableaserve-20051204.214932/libs/cl-ppcre/cl-ppcre.asd
試しに、metatilities を /usr/local/lispbox-0.7/portableaserve-20051204.214932/libs の配下にラ
イブラリを配置してみました。
配置後、(asdf:operate ‘asdf:load-op :metatilities)を実行すると、次は以下のエラーが。
component :ASDF-SYSTEM-CONNECTIONS not found, required by #1=#<SYSTEM "metatilities" #x204290A6> [Condition of type MISSING-DEPENDENCY]
ということでインストール。
$ cd /usr/local/lispbox-0.7/portableaserve-20051204.214932/libs $ wget http://common-lisp.net/project/asdf-system-connections/asdf-system-connections.tar.gz $ tar xfz asdf-system-connections.tar.gz
配置後、(asdf:operate ‘asdf:load-op :metatilities)を実行すると、次は以
下のエラーが。
component :METABANG-BIND not found, required by #1=#<SYSTEM "metatilities" #x2042EC56> [Condition of type MISSING-DEPENDENCY]
続いてMETABANG-BINDのインストール。なんか、依存地獄に入っちゃったか
な?
$ wget http://common-lisp.net/project/metabang-bind/metabang-bind_latest.tar.gz $ tar zxf metabang-bind_latest.tar.gz
あと、何回かこんなことを繰り返しました。
$ wget http://common-lisp.net/project/cl-containers/cl-containers_latest.tar.gz $ tar zxf cl-containers_latest.tar.gz $ wget http://common-lisp.net/project/metatilities-base/metatilities-base.tar.gz $ tar zxf metatilities-base.tar.gz $ wget http://common-lisp.net/project/cl-containers/moptilities/moptilities_latest.tar.gz $ tar zxf moptilities_latest.tar.gz $ wget http://common-lisp.net/project/closer/ftp/closer-mop_latest.tar.gz $ tar zxf closer-mop_latest.tar.gz
ようやく、metatilitiesをロードできました。
CL勉強会までにコードを眺めようとしたんですが、インストールして終わっちゃった。
今の状態は、本当にインストールしただけで、使うところまで行ってません。使うには、use-packageでいいんだっけ?
デフォルトのパッケージで(use-package :metatilities)してみると、find-itemがダブってるというようなエラーが出たので、テスト用のパッケージを作って、そこへuse-packageしたら、とりあえず、use-packageは成功しました。
CL-USER> (defpackage :metatest (:use common-lisp)) #<PACKAGE METATEST> CL-USER> (in-package :metatest) #<PACKAGE METATEST> METATEST> (use-package :metatilities) T
asdf-installを入れれば、依存関係の解決もしてくれるらしいので、導入すべきですね。