Skip to content

Instantly share code, notes, and snippets.

@athos
Last active August 29, 2015 14:15
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save athos/34c735adbe5c79fedd87 to your computer and use it in GitHub Desktop.
Save athos/34c735adbe5c79fedd87 to your computer and use it in GitHub Desktop.

Leiningenの導入(1): 概要とインストール

今回は、Clojureでの開発を始めるにあたって必須のツールであるLeiningenについて説明します。

Leiningenとは

Leiningenとは、ひとことで言えばClojure用のビルドツール兼パッケージ管理ツールです。「ライニンゲン」と読みます。

JavaのビルドツールであるMavenを下敷きにして構築されていて、Clojureコードのコンパイル、テストの実行、REPLの起動等、開発に必要なさまざまなことをLeiningenを通して実行することができ、非常に便利なツールです。

Clojure界隈では、これまでも同様のツールがいくつか現れたり消えたりしていますが、この記事の執筆時点(2015年2月現在)ではLeiningenがデファクトスタンダードな位置づけになっています。

Leiningenは、Clojureでプラグインを書くことによって機能を拡張することができます。現在、Clojureの多くの開発支援ツールがLeiningenプラグインとして実現されていることも、LeiningenがClojureの開発でよく使われている理由のひとつといえるでしょう。Leiningenのプラグインにどういうものがあるかは、たとえば以下のWikiページから確認することができます。

https://github.com/technomancy/leiningen/wiki/Plugins

インストール

それでは、Leiningenのインストール方法について見てみましょう。 LeiningenはClojureを内部にもつため、Clojureを使い始める際にはLeiningenさえ環境にインストールされていれば、Clojureを別途インストールする必要はありません。

以下に、それぞれの環境でのインストール方法を示します。

Mac OS Xの場合

Mac OS Xでパッケージ管理にHomebrewを使っている場合は、Homebrewからインストールするのがお手軽です。

$ brew install leiningen

それ以外の場合には、「Linuxその他の場合」を参考に手動でインストールします。

Windowsの場合

使っている環境がWindowsの場合は、以下のページにWindows用のインストーラが用意されているのでダウンロードし、インストーラにしたがってインストールします。

http://leiningen-win-installer.djpowell.net/

Linuxその他の場合

使っている環境のパッケージマネージャがLeiningenの2.xに対応していれば、まずそちらを使ってインストールするのが手っ取り早い方法です。 パッケージマネージャがLeiningen 2.xに対応していない場合は、以下の手順にしたがって手動でLeiningenをインストールします。

  1. 下のURLからleinスクリプトをダウンロードします
  2. ダウンロードしたleinスクリプトをパスの通った場所に置きます
  3. leinスクリプトに実行権限を付与して実行します

上記手順は、たとえば~/binにパスが通った環境では次のようなコマンドになるでしょう。

$ wget https://raw.githubusercontent.com/technomancy/leiningen/stable/bin/lein
$ mv lein ~/bin
$ chmod u+x ~/bin/lein
$ lein

Leiningenが正しくインストールできていれば、leinコマンドでLeiningenを起動することができます。

$ lein version

おわりに

今回は、Leiningenの概要を紹介し、インストールの仕方を説明しました。次回はLeiningenの基本的な使い方について紹介します。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment