Ubuntu 10.04 での Clojure + Emacs + Leiningen の環境構築
2011/12/29更新
時代遅れの手順になってしまいました。
Clojure+Emacsな開発環境を作る(late 2011) - λab's Blogを参照してください。
ネットブックにUbuntu 10.04 を入れたので emacs から Clojure を使う手順を最初の最初から書いてみる。2ヶ月ぐらい前にやったインストール方法だとだめでした。
環境 Ubuntu Netbook Edition 10.04 GNU Emacs 23.1.50.1 機種 HP mini 2140
- emacs をインストールする
emacs23とか22とかいろいろあるみたいですがよく分からないので最新っぽいのをインストール
$ sudo apt-get install emacs-snapshot $ sudo apt-get install emacs-snapshot-el $ sudo apt-get install anthy-el
- ELPA(Emacs Lisp Package Archive) を使えるようにする
ELPA(Emacs Lisp Package Archive) Installのemacs22の手順でやったが問題ないようだ。emacs の *scratch* バッファを開き (M-x buffer-menuで選択) 、以下をコピペ。
(let ((buffer (url-retrieve-synchronously "http://tromey.com/elpa/package-install.el"))) (save-excursion (set-buffer buffer) (goto-char (point-min)) (re-search-forward "^$" nil 'move) (eval-region (point) (point-max)) (kill-buffer (current-buffer))))
コピペしたらC-jで評価してやると .emacs が更新される。
emacsを再起動させて M-x package-list-package をやると package一覧が出てくる。swank-clojureのところで i を押して x でインストール。何かエラーが表示されるが気にしなくていいそうです。slime や clojure-mode は選択しなくてもok.多分。
↑ここを参考にしてsunのjavaを入れておきました。openjdkの違いとかはよく知らないです。
- Leiningen のインストール
今やClojureにはほぼ必須のLeiningenも入れておく。
http://github.com/technomancy/leiningen/raw/stable/bin/lein を実行権をつけて /usr/local/bin/ とかに置いておく。
$ wget http://github.com/technomancy/leiningen/raw/stable/bin/lein $ sudo mv lein /usr/local/bin $ sudo chmod +x /usr/local/bin/lein $ lein self-install
- 適当に新しいプロジェクトを作る
$ lein new emacs-test Created new project in: emacs-test $ cd emacs-test/ $ ls -l 合計 16 -rw-r--r-- 1 fatrow fatrow 120 2010-05-06 03:39 README -rw-r--r-- 1 fatrow fatrow 173 2010-05-06 03:39 project.clj drwxr-xr-x 3 fatrow fatrow 4096 2010-05-06 03:39 src drwxr-xr-x 3 fatrow fatrow 4096 2010-05-06 03:39 test
project.clj に以下を追加。
(defproject emacs-test "1.0.0-SNAPSHOT" :description "FIXME: write" :dependencies [[org.clojure/clojure "1.2.0"] [org.clojure/clojure-contrib "1.2.0"]] :dev-dependencies [[swank-clojure "1.2.1"]]) ;←追記
これがあると、emacsからREPLを使える。
- ライブラリを取ってくる
$ lein deps
- emacs からREPL を掴む。
ターミナル
$ lein swank user=> Connection opened on local port 4005 #<ServerSocket ServerSocket[addr=localhost/127.0.0.1,port=0,localport=4005]>
M-x slime-connect Host: 127.0.0.1 Port: 4005 Versions differ: nil (slime) vs. 20100404 (swank). Continue? (y or n) y
下記の方法はM-x package-list-package で swank-clojure をインストールした場合できるが、古いバージョンなので推奨されていない。
M-x swank-clojure-project ~/code/emacs-test
これで emacs の中に クラスパスが通った REPL が現れるはず!一回セットアップできたら後は快適です。
user> (use 'clojure.contrib.classpath 'clojure.contrib.pprint) nil user> (pprint (classpath)) (#<File /home/fatrow/code/emacs-test/test> #<File /home/fatrow/code/emacs-test/src> #<File /home/fatrow/code/emacs-test/classes> #<File /home/fatrow/code/emacs-test/lib/clojure-1.1.0.jar> #<File /home/fatrow/code/emacs-test/lib/clojure-contrib-1.1.0.jar> #<File /home/fatrow/code/emacs-test/lib/swank-clojure-1.2.0-20100502.112537-11.jar>) nil user>
あと、これは作業の途中で適当にやったが必要ないと思う。
M-x slime
Clojureをインストールするかと聞かれるのでy
参考
swank-clojure github UsageとInstallationの項目
Leiningen github Installationの項目
ELPA(Emacs Lisp Package Archive) Install
HP mini 2140 で無線LANを使うための設定