読者です 読者をやめる 読者になる 読者になる

A Log In The Life.

May The Code Be With You !

Install Clojure with Leiningen

clojure

install clojure with leinigen

Clojure の環境の作り方は 2 つあります。

  1. Clojure の jar ファイルをダウンロードして起動スクリプトを書く
  2. Leinigen で clojure 本体もインストールする

1 については以前書きました。 Install Clojure with Homebrew 今日は 2 についてです。

2つの方法の比較

clojure の repl を立ち上げるだけならば、1 でいいのですが、clojure-contrib やその他のいろいろなライブラリを利用しようとすると、少し面倒です。

一方、leinigen を利用した場合、project.clj に必要なライブラリを書くと、lein deps コマンドで必要なライブラリをダウンロードしてくれます。

他の言語のパッケージマネージャーと違い、clojure 自体さえもダウンロードしてくれます。

これは、プロジェクト毎に依存関係が独立しているので、プロジェクト毎に違うバージョンを用いたい場合などには便利です。

Install Leinigen

多くのパッケージマネージャーで用意してあるので、お使いのパッケージマネージャーでも利用できるでしょう。

Homebrew の場合はこんな感じです。

$ brew install leiningen

もしくは、インストールスクリプトをダウンロードしてインストールします。

$ wget https://raw.github.com/technomancy/leiningen/preview/bin/lein
$ chmod +x lein
$ ./lein self-install

Leinigen の使い方

チュートリアルがあるので、斜め読みするとだいたい把握できると思います。

Leinigen のコマンドは lein です。サブコマンドがいろいろとありますが、はじめに押さえておくべきなのはnew deps repl あたりでしょう。

プロジェクトをはじめるときには new サブコマンドを使います。

$ lein new my-project
Created new project in: /path/to/the/dir/my-project
Look over project.clj and start coding in my_project/core.clj

こんな感じでファイルが自動で作られます。

$ tree my-project
my-project
├── README
├── project.clj
├── src
│   └── my_project
│       └── core.clj
└── test
    └── my_project
        └── test
            └── core.clj

5 directories, 4 files

project.clj に必要なパッケージを書いて、lein deps を実行すると指定されたバージョンのパッケージがインストールされます。

たとえば、JSON encoder の Cheshire をいれてみましょう。

(defproject my-project "1.0.0-SNAPSHOT"
  :description "FIXME: write description"
  :dependencies [[org.clojure/clojure "1.4.0"]
                 [cheshire "4.0.4"]])

:dependencies に書くだけです。

$ cd my-project
$ lein deps
…
$ tree ./
./
├── README
├── lib
│   ├── cheshire-4.0.4.jar
│   ├── clojure-1.4.0.jar
│   ├── jackson-core-2.1.0.jar
│   └── jackson-dataformat-smile-2.1.0.jar
├── project.clj
├── src
│   └── my_project
│       └── core.clj
└── test
    └── my_project
        └── test
            └── core.clj

6 directories, 8 files

こんな感じで my-project/lib 下に必要な jarファイルがインストールされます。 ここで repl を立ち上げるとインストールしたパッケージが利用できます。

$ lein repl
REPL started; server listening on localhost port 32435
user=> (ns myns (:use [cheshire.core]))

とりあえず、インストールと簡単な使い方はこんなところです。

Appendix