Clojure: Macの環境構築をする

12/12開催のClojure ワークショップ(仮)参加にあたって、OS X 10.11 El CapitanにClojure環境を構築した際の備忘録。

  • Clojure単体(REPL)のインストールだけならとっても簡単。

Clojure公式サイトダウンロードページからClojure 1.7.0のリンクをクリックするとclojure-1.7.0.zipがダウンロードされ、/Users/ユーザ名/Downloads/clojure-1.7.0/フォルダに展開されるので、このフォルダをドラッグ&ドロップで適当な場所にコピーします。(私の場合は、/Applications にコピーしました。以下その前提で記述します。)
REPLの起動は、ターミナルを起動して

$ java -cp /Applications/clojure-1.7.0/clojure-1.7.0.jar clojure.main

とやればOK。

  • Leiningenのインストール

Leiningen公式サイトのInstallの記述に従います。
1. Download the lein script (or on Windows lein.bat)
のリンクを踏むとSafariの場合ブラウザにスクリプトが表示されてしまうので、リンク上で右クリック(二本指クリック)でコンテキストメニューを表示し、「リンク先のファイルを別名でダウンロード...」を選択して任意の場所にlein.txtファイルをダウンロードします。(私の場合は/Users/ユーザ名/の直下にダウンロードしました。以下その前提で記述します。)

2. Place it on your $PATH where your shell can find it (eg. ~/bin)
ターミナルでPATHが通っている場所を確認して、

$ env|grep PATH
PATH=/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin

何れかにleinスクリプトを移動します。(私の場合は/usr/local/binに移動しました。以下その前提で記述します。)
ターミナルで、

$ cd ~
$ sudo mv lein.txt /usr/local/bin/lein
Password: パスワードを入力

とやります。

3. Set it to be executable (chmod a+x ~/bin/lein)
leinスクリプトに実行権限を与えます。ターミナルで

$ cd /usr/local/bin/
$ sudo chmod a+x lein
Password: パスワードを入力
$ ls -la lein
-rwxr-xr-x@ 1 ユーザ名  501  12713 12 13 11:54 lein

とやります。(自分しか使わないマシンならchmod u+xで実行権限を絞っても問題ないと思います)

4. Run it (lein) and it will download the self-install package
ターミナルで

$ lein self-install

とやると、/Users/ユーザ名/.lein/self-install/ ディレクトリにLeiningenがインスールされます。

Manual self-install is deprecated; it will run automatically when necessary.
Downloading Leiningen to /Users/ユーザ名/.lein/self-installs/leiningen-2.5.3-standalone.jar now...
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100   605    0   605    0     0    434      0 --:--:--  0:00:01 --:--:--   434
100 15.0M  100 15.0M    0     0   798k      0  0:00:19  0:00:19 --:--:-- 1010k

最後に /Users/ユーザ名/.lein/profiles.clj を以下の内容で作成します。
「EmacsでモダンClojure開発環境構築」の記述を拝借しました。

{:user {:dependencies [[org.clojure/tools.nrepl "0.2.7"]
                       [slamhound "RELEASE"]
                       [org.clojure/tools.trace "RELEASE"]]
        :aliases {"slamhound" ["run" "-m" "slam.hound"]}
        :plugins [[lein-kibit "RELEASE"]
                  [cider/cider-nrepl "0.10.0-SNAPSHOT"]]}}
  • Emacsのインストール

MacにはEmacsが最初からインストールされていますが、ターミナルでemacsを起動すると

GNU Emacs 22.1.1 (mac-apple-darwin)
 of 2015-11-14 on osx233.apple.com
Copyright (C) 2007 Free Software Foundation, Inc.

と表示され、バージョンが古くてCIDERを使うのに不都合があるので、MacEmacs JPサイトからデスクトップアプリケーション版をインストールします。
ダウンロードサイトからEmacs-24.3-with-inline-patch.dmgをダウンロードします。
/Users/ユーザ名/Downloads/Emacs-24.3-with-inline-patch.dmgにダウンロードされたファイルをダブルクリックしてディスクイメージをマウントします。
ディスクイメージ内のEmacsファイル(Emacs.app)をアプリケーションフォルダ(/Applications/)にドラッグ&ドロップでコピーします。
Emacsを起動するとGatekeeperによって実行が制限されていますので、
f:id:soutoku:20151213125953p:plain
実行許可を与えます。
Emacsが起動したら、Ctl-x Ctl-cで終了させます。

「Clojure 完全マスター with Emacs/Cider-mode」の記事を参考にさせて頂きました。
既存の設定を拝借しました。gitからクローンする前に、.emacs.dディレクトリが既に存在する場合は念のため退避しておきます。

$ cd ~
$ mv .emacs.d .emacs.d.old
$ git clone https://github.com/flyingmachine/emacs-for-clojure .emacs.d
Cloning into '.emacs.d'...
remote: Counting objects: 723, done.
remote: Total 723 (delta 0), reused 0 (delta 0), pack-reused 723
Receiving objects: 100% (723/723), 1.99 MiB | 846.00 KiB/s, done.
Resolving deltas: 100% (243/243), done.
Checking connectivity... done.

以上で設定は完了です。

次回は、上記と違った設定をした際のトラブルシューティングについて書きたいと思います。