これまでは習慣で asdf:load-system で自前のプロジェクトをロードしとったんよ。
必要なライブラリは人力で ql:quickload したりしとったんじゃけど、まぁそんとには不便は感じとらんかったんよ。
やっとったんは asdf:*central-registry*
に自分プロジェクト用のディレクトリを追加しとって、そこにプロジェクトのシンボリックリンクを作成して asdf:load-system
するやりかた。
.sbclrc に以下のラインを追加しとって ~/.asdf-install-dir/
にシンボリックリンクを作成しとくん。
;; .sbclrc (push #P"~/.asdf-install-dir/" asdf:*central-registry*)
でも、そろそろ自前のプロジェクトも ql:quickload しよう思ぉてね。
関連ライプラリも勝手にロードしてくれるしね。
やりかたを調査
ほいじゃけぇ調べたいね。
そしたら Quicklisp beta FAQ ちゅうページに説明があったいね。
Can I load a local project that isn't part of Quicklisp? のセクションなんじゃけどね。
ここにゃぁ二つのやりかたが書いてあってどちらでもイケるみたい。
asdf:*central-registry*
を使う場合。~/quicklisp/local-projects
ディレクトリを使う場合。
簡単じゃけぇ、どちらもやってみるけぇ。
asdf:*central-registry*
を使う場合。
まずはこちらから。
こっちのやり方の方が今のやり方の延長線上にあるけぇ。
Quicklisp beta FAQ には、こんとな感じで書いとる。
同じようにやってみるけぇ。
(push #p"/projects/my-project/" asdf:*central-registry*) (ql:quickload "my-project")
最初の行の (push #p"/projects/my-project/" asdf:*central-registry*)
はもうやっとるけぇ内容の確認のみにしとくわ。
> asdf:*central-registry* (#P"/home/yanqirenshi/quicklisp/quicklisp/" #P"~/.asdf-install-dir/")
ほいじゃぁ、まずテスト用のサンプルプロジェクトを作成するけぇ。
僕は自分プロジェクトは ~/prj
で管理しとるんよ。
じゃけぇ、その下にプロジェクト用のディレクトリ sample-pj
を作成。
んで、そこに cl-project
でプロジェクトを生成。
CL-USER> (cl-project:make-project #p"/home/yanqirenshi/prj/sample-pj/" :author "yanqirenshi" :email "yanqirenshi@gmail.com" :license "LLGPL" :depends-on '()) writing /home/yanqirenshi/prj/sample-pj/.gitignore writing /home/yanqirenshi/prj/sample-pj/README.markdown writing /home/yanqirenshi/prj/sample-pj/README.org writing /home/yanqirenshi/prj/sample-pj/sample-pj-test.asd writing /home/yanqirenshi/prj/sample-pj/sample-pj.asd writing /home/yanqirenshi/prj/sample-pj/src/sample-pj.lisp writing /home/yanqirenshi/prj/sample-pj/t/sample-pj.lisp T
次に ~/.asdf-install-dir
に sample-pj.asd
のシンボリックリンクを作成。
/home/yanqirenshi/.asdf-install-dir: lrwxrwxrwx 1 yanqirenshi users 39 1月 28 00:10 sample.asd -> /home/yanqirenshi/prj/sample/sample.asd
これで ql:quickload
でプロジェクトをロードする。
っと成功しとるね。
CL-USER> (ql:quickload "sample-pj") To load "sample-pj": Load 1 ASDF system: sample-pj ; Loading "sample-pj" [package sample-pj] ("sample-pj") CL-USER> (in-package :sample-pj) #<PACKAGE "SAMPLE-PJ"> SAMPLE-PJ>
~/quicklisp/local-projects ディレクトリを使う場合。
次はこちらをやってみるけぇ。
Quicklisp beta FAQ には、こんとな感じで書いとる。
$ cd ~/quicklisp/local-projects/ $ git clone git://github.com/xach/format-time.git
quicklisp には 自分プロジェクト用のディレクトリが用意されとるんじゃね。
~/quicklisp
の下に出来とる local-projects
にプロジェクトを作成しときゃぁエエみたい。
ほいじゃぁやってみるけぇ。
とりあえず、プロジェクト用のディレクトリを作成。
/home/yanqirenshi/quicklisp/local-projects: drwxr-xr-x 2 yanqirenshi users 6 1月 28 21:58 sample-pj-lp
んで、cl-project
でプロジェクト作成。
SAMPLE-PJ> (cl-project:make-project #p"/home/yanqirenshi/quicklisp/local-projects/sample-pj-lp/" :author "yanqirenshi" :email "yanqirenshi@gmail.com" :license "LLGPL" :depends-on '()) writing /home/yanqirenshi/quicklisp/local-projects/sample-pj-lp/.gitignore writing /home/yanqirenshi/quicklisp/local-projects/sample-pj-lp/README.markdown writing /home/yanqirenshi/quicklisp/local-projects/sample-pj-lp/README.org writing /home/yanqirenshi/quicklisp/local-projects/sample-pj-lp/sample-pj-lp-test.asd writing /home/yanqirenshi/quicklisp/local-projects/sample-pj-lp/sample-pj-lp.asd writing /home/yanqirenshi/quicklisp/local-projects/sample-pj-lp/src/sample-pj-lp.lisp writing /home/yanqirenshi/quicklisp/local-projects/sample-pj-lp/t/sample-pj-lp.lisp T
んで、このままで ql:quickload
イケるはず。
っとイケとるね。
SAMPLE-PJ> (ql:quickload "sample-pj-lp") To load "sample-pj-lp": Load 1 ASDF system: sample-pj-lp ; Loading "sample-pj-lp" [package sample-pj-lp] ("sample-pj-lp")
まとめ
まぁ、何っちゅうか、どぉっちゅう事はなかったね。
もう少し早よぉ調べときゃぁよかったいね。
二つ方法はあるけど、各々で好きなほう選べばエエんじゃなかろうか。