@peccul is peccu

(love peccu '(emacs lisp cat outdoor bicycle mac linux coffee))

= Clackを動かす.CommonLispでWebアプリ(CGI?)動かせるようになるまで(ローカルで動かす編)

[2011-11-03 03:04:42]
>>>[commonlisp]

On Lispを読んでてわからないところが出てきたのでCommonLispの処理系を入れたりしてました.

On Lisp

On Lisp

mac portssbclインストール失敗したので,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でも聞いてくれればがんばります.