[2011-11-03 03:04:42]
>>>[commonlisp]
On Lispを読んでてわからないところが出てきたのでCommonLispの処理系を入れたりしてました.
- 作者: ポールグレアム,野田開,Paul Graham
- 出版社/メーカー: オーム社
- 発売日: 2007/03
- メディア: 単行本
- 購入: 10人 クリック: 146回
- この商品を含むブログ (128件) を見る
mac portsでsbclインストール失敗したので,Modern Common Lisp: 第1回 Common Lisp処理系のインストール を見ながらClozure-CLをインストールしました.
そのまま Modern Common Lisp 読んでたら,気づいたらサーバーでCommon Lispのウェブサーバ動かしてたので,それまでの手順を記録します.
長くなったので二つに分けました.Apache編
CGIって聞かなくなりましたね.
sbclのインストール
Clackとapacheの組み合わせはsbclじゃないといかんかったので,MacではClozure-CL,サーバーで動かす時はsbcl.ってことにしました.
yum install sbclは古すぎたので,本家から持ってきましょうバイナリ置くだけっぽいし.
ダウンロードはここから.Download - Steel Bank Common Lisp
この矢印のさしてる,表のセル一つ一つが対応するバイナリでした.気づきませんでした.
今回はLinux X86の1.0.52をダウンロードしました.ファイルはsbcl-1.0.52-x86-linux-binary.tar.bz2ですね
インストール手順はここ.Getting Started - Steel Bank Common Lisp
% wget http://prdownloads.sourceforge.net/sbcl/sbcl-1.0.52-x86-linux-binary.tar.bz2 % bzip2 -cd sbcl-1.0.52-x86-linux-binary.tar.bz2|tar xvf - % cd sbcl-1.0.52-x86-linux % sudo sh install.sh % sbcl --version SBCL 1.0.52
QuickLispのインストール
CommonLispではQuickLispっていうパッケージマネージャのようなものがあって,ライブラリ入れるのが楽です.Clackもここから入れられます.
手順とかは本家のこれとかそのままですがQuicklisp beta.
Modern CommonLispの方は詳しいです.Modern Common Lisp: 第2回 Quicklispによるライブラリ環境
これはsbclもClozure-CLも同じ手順やし,それ別々にインストールできる.
% wget http://beta.quicklisp.org/quicklisp.lisp % sbcl --load quicklisp.lisp ;; quicklispがロードされて,プロンプト"*"が表示されて止まるので以下のコードでインストールする ;; カレントディレクトリにquicklispディレクトリができる(~/quicklispかも) * (quicklisp-quickstart:install) ;; ;; インストールディレクトリを指定するならこっちでインストール ;; * (quicklisp-quickstart:install :path ".quicklisp/") ;; ばーーっといろいろダウンロードしたりコンパイルしたりして,インストールが完了したらプロンプトが戻ってくる ;; 最後に,sbcl(ccl)起動時にquicklispをロードする設定をsbcl(ccl)の設定ファイルに書き込む * (ql:add-to-init-file) ;; ここで,こんな内容を書き込むけどいいか?と聞かれるのでEnterをッターン ;; インストールできたからclackのインストール.これはインストール済みのものをロードする時も同じ関数を呼ぶ * (ql:quickload :clack) ;; sbclの終了 * (quit)
Clackをローカルで動かしてみる
Clack動かすだけならApache無しで動きます.
例えば~/lisp/clack.lispにこんな風に書きます.clack.lisp
そんでsbclで
(load "~/lisp/clack.lisp")
とかするとClackが起動するのでブラウザから http://localhost:5000/ にアクセスするとHello, Clack!と表示される訳ですね.
% w3m http://localhost:5000/
表示されなかったらどっかミスってるかも.@nitro_idiotさんに連絡すると親切に教えてくれると思います.@pecculでも聞いてくれればがんばります.