久々にClojureを使ってみようと思いまして、基本的なことからやり直したいと思います。まずは、インストールからですかね。
ダウンロードページから、バイナリを取得。
ダウンロードページ
http://clojure.org/downloads
現時点での最新安定版は、1.5.1です。
「clojure-1.5.1.zip」をダウンロードします。
これを適当なところに展開します。自分は、/usr/localの下に入れることにしているので
$ cd /usr/local/ $ sudo mkdir clojure $ cd clojure/ $ sudo cp [clojure-1.5.1.zipのダウンロード場所] ./. $ sudo unzip clojure-1.5.1.zip $ sudo rm clojure-1.5.1.zip $ sudo ln -s clojure-1.5.1/clojure-1.5.1.jar clojure.jar
としました。現在のclojure-[X.Y.Z].jarに、clojure.jarという別名を与えることにしています。
これに、以下のページを参考に起動スクリプトを用意。
The REPL and main entry points
http://clojure.org/repl_and_main
clj
#!/bin/bash declare -a ARGS APPEND_CLASSPATH= while [ "$1" != "" ]; do if [ "$1" == "-cp" ]; then shift APPEND_CLASSPATH="$1" else ARGS=("${ARGS[@]}" "$1") fi shift done ${JAVA_HOME}/bin/java -cp `dirname $0`/clojure.jar:"${APPEND_CLASSPATH}" clojure.main ${ARGS[*]}
クラスパスくらいは通せるように、アレンジを入れました。
権限変更。
$ sudo chmod a+x clj
ディレクトリ自体も、ちょっと微妙だったので…。
$ sudo find clojure-1.5.1 -type f | xargs sudo chmod 644 $ sudo find clojure-1.5.1 -type d | xargs sudo chmod 755
あとは、作った/usr/local/clojureにパスを通して終了。.bashrcにでも。
export CLOJURE_HOME=/usr/local/clojure PATH=${CLOJURE_HOME}:${PATH}
同じターミナル上で操作する場合は、再評価を忘れずに。
$ . .bashrc
REPLを起動。
$ clj Clojure 1.5.1 user=> (println "Hello Clojure!!") Hello Clojure!! nil user=>
簡単なスクリプトを作って、
hello.clj
(println "Hello Clojure!!")
実行。
$ clj hello.clj Hello Clojure!!
今は、こちらから取得するみたいですね。
clojure-mode
https://github.com/clojure-emacs/clojure-mode
このファイル
https://github.com/clojure-emacs/clojure-mode/blob/master/clojure-mode.el
ダウンロードしてきたclojure-mode.elをsite-lispにでも置いて、.emacsに以下を追加。
;; clojure-mode (require 'clojure-mode) (autoload 'clojure-mode "clojure-mode" "Clojure editing mode." t) (add-to-list 'auto-mode-alist '("\.clj$" . clojure-mode))
自分は、clojure-modeの時はタブも無効に。
;; clojure-modeの場合はタブを無効 (add-hook 'clojure-mode-hook '(lambda () (setq indent-tabs-mode nil)))
こんなところで。
ただ、最近はREPLを使うのにもClojureのランタイムをわざわざインストールするということは、やらないのでしょうかね?次回はLeiningenをもう1度。