名前
Enbld - 開発環境構築のための、もう一つのパッケージマネージャー
概要
インストール
$ curl -L http://goo.gl/MrbDDB | perl
コンディション(条件)スクリプトの準備
$ cat conf_for_build.pl
#!/usr/bin/perl
use strict;
use warnings;
use lib "$ENV{HOME}/.enbld/extlib/lib/perl5/";
use Enbld;
enbld 'mydevenv' => build {
# 最新バージョンをインストール
target 'git' => define {
version 'latest';
};
# 指定バージョンをインストール
target 'perl' => define {
version '5.18.1';
};
};
perlのスクリプトとして実行
$ chmod +x conf_for_build.pl
$ ./conf_for_build.pl
-> スクリプトに定義された条件に従ってソフトウェアをインストールします。
説明
Enbldは、開発環境構築のための、もう一つのパッケージマネージャーです。
ソフトウェアインストールの条件(バージョン - 最新か指定のバージョン、テストは実行するか 等)をコンディション(条件)スクリプトに記述し、perlのスクリプトとして実行します。
Enbldはスクリプトの定義された条件に従って、ソフトウェアをインストールします。
特徴
- 1. インストール条件は、perlベースのDSLで定義
-
一度コンディションスクリプトを書けば、同じ環境を簡単に再現できます。
- 2. 指定したバージョンのインストールが可能
-
他のパッケージマネジメントシステム(Homebrew, MacPorts, APT, RPM, Yum など)と違い、Enbldはバージョンを固定しません。
インストールするバージョンは自由に指定できます。
また、バージョンを'latest'(最新)と指定することも可能です。この場合、自動的に最新バージョンを特定し、そのバージョンをインストールします。
- 3. 新しいバージョンのリリースをチェック可能
-
バージョンを'latest'(最新)と指定したソフトウェアは、より新しいバージョンがリリースされたか、チェックできます。
これにより、頻繁にアップデートされるソフトウェア(vim, git など)でも、常に最新バージョンを使うことができます。
- 4. 全てのソフトウェアは、ホームディレクトリにインストール
-
インストールにsudoコマンドは必要ありません。
バックアップや削除は、簡単にできます。
- 5. 全てのプログラミング言語に同一のインストールインタフェースを提供
-
他のプログラミング言語のバージョンマネージャーと違い、全てのプログラミング言語に同一のインストールインタフェースを提供します。
プログラミング言語ごとに異なる方法を習得する必要は有りません。
やらないこと
- 1. Enbldは完全なパッケージマネージャーは目指しません
-
Enbldがサポートするソフトウェアの基準は以下の通りです。
頻繁にアップデートされる開発作業用のソフトウェア
例: vim, git
プロジェクトによって特定のバージョンが指定されるソフトウェア
例:
プログラミング言語(perl, ruby, nodejs, scala 等)
ウェブサーバ (apache, nginx 等)
データベース (MySQL 等)
開発には必要だけど、OS Xではインストールされていないソフトウェア
例: tmux
上記の基準に該当しないソフトウェアはサポートしません。
- 2. Enbldは、プログラミング言語が提供するモジュールインストール機能と重複する機能は提供しません。
-
モジュールのインストールには、CPANや、Rubygemなど、プログラミング言語が提供する機能を使って下さい。
注意事項
Enbldは、全てのバージョンのビルドを保証するわけではありません。
ビルドが失敗した時にはログファイルが表示されますので、どうか解析してレポートを送って下さい :)
インストール方法
サポートするプラットフォーム
Enbldは、OS X Mavericksで動作検証を行っています。
ひょっとすると、Linux (Debian, Ubuntu など)でも動作するかもしれません。動かない時は、レポートをお待ちしております :)
動作環境
perl 5.12以上
注:Enbldは必ずsystem perl (
/usr/bin/perl
)を使います。make
コンパイラ (gccか、clang)
その他、ターゲットのソフトウェアごとに必要なもの(例:scalaにはJREが必要)
インストール
$ curl -L http://goo.gl/MrbDDB | perl
Enbldは全てのコンポーネントを「$HOME/.enbld」
ディレクトリにインストールします。そのため、EnbldがインストールしたソフトウェアのためにPATHを設定する必要があります。
PATHの設定
.bashrc
か、.bash_profile
に下記の設定を追加して下さい。
export $PATH=$HOME/.enbld/bin:$HOME/.enbld/extlib/bin:$PATH
export MANPATH=$HOME/.enbld/share/man:$HOME/.enbld/man:$MANPATH
Enbldを始める
最新バージョンのインストール
コンディションスクリプトの準備
$ cat samples/git_install.pl
#!/usr/bin/perl
use strict;
use warnings;
use lib "$ENV{HOME}/.enbld/extlib/lib/perl5/";
use Enbld;
enbld 'mydevenv' => build {
target 'git' => define {
version 'latest';
};
}
perlスクリプトとして実行
$ ./samples/git_install.pl
インストール完了
$ git --version
git version [latest version]
アップグレード
その後、より新しいバージョンがリリースされたら、もう一度スクリプトを実行して下さい。
$ ./samples/git_install.pl
最新バージョンがインストールされます。
指定バージョンのインストール
バージョンの指定は、コンディションスクリプトの中で行います。 -> version '5.18.1';
$ cat samples/specific_version_install.pl
#!/usr/bin/perl
use strict;
use warnings;
use lib "$ENV{HOME}/.enbld/extlib/lib/perl5/";
use Enbld;
enbld 'mydevenv' => build {
target 'perl' => define {
version '5.18.1';
};
};
'perl 5.18.1'がインストールされました。
$ perl -v
This is perl 5, version 18, subversion 1 (v5.18.1) built for ...
引数の追加
'arguments'関数は、'configure'スクリプトに引数を追加します。
target 'perl' => define {
version '5.18.1';
arguments '-Dusethreads';
};
perl 5.18.1は、スレッド付きでビルドされました。
$ perl -v
This is perl 5, version 18, subversion 1 (v5.18.1) built for darwin-thread-multi-2level
ユーティリティコマンド'enblder'
'enblder'は、Enbldの使い勝手を良くするためのユーティリティコマンドです。
主なコマンドを以下に示します。
全てのコマンドの解説は、perldoc enblder
で表示されます。
入手可能なソフトウェアの表示
サブコマンド'available'は、Enbldがインストールできるソフトウェアの一覧を表示します。
$ enblder available
コンディションスクリプトに指定するソフトウェアの名称は、この一覧に表示される名称を使います。
ソフトウェアのインストール
サブコマンド'install'は、指定したソフトウェアの最新バージョンをインストールします。
$ enblder install git
コンディションスクリプトを書かずに、ソフトウェアをインストールしたい時に使います。その後で'freeze'サブコマンドを使うと、そのインストールを反映したコンディションスクリプトを表示することができます。
インストール済みのソフトウェアの表示
サブコマンド'list'は、インストール済みのソフトウェアの一覧と、バージョンを表示します。
$ enblder list
コンディションスクリプトの表示
サブコマンド'freeze'は、インストール済みのソフトウェアを再現するコンディションスクリプトを表示します。
$ enblder freeze
表示された内容をテキストファイルにリダイレクトすれば、そのまま実行可能なperlのスクリプトになります。
$ enblder freeze > conditions.pl
$ chmod +x conditions.pl
$ ./conditions.pl
旧バージョンのソフトウェアの表示
サブコマンド'outdated'は、旧バージョンのソフトウェアの一覧を表示します。
$ enblder outdated
旧バージョンのソフトウェアをアップデート
サブコマンド'upgrade'は、旧バージョンになったソフトウェアをアップデートします。
$ enblder upgrade git
Enbldのお勧めの使い方
最後に、Enbldのお勧めの使い方を紹介します。
- 1 Enbldをインストールする。
-
$ curl -L http://goo.gl/MrbDDB | perl
- 2 利用可能なソフトウェアの一覧を表示する。
-
$ enblder available
- 3 常に最新バージョンを使いたいソフトウェアをインストールする。
-
$ enblder install git
- 4 コンディションスクリプトを作成する。
-
$ enblder freeze > my_conditions.pl $ chmod +x my_conditions.pl
- 5 指定したバージョンを使いたいソフトウェアを加える。
-
target 'perl' => define { version '5.18.1'; }
- 6 コンディションスクリプトを実行する。
-
$ ./conditions.pl
- 7 時々、より新しいバージョンのリリースをチェックする。
-
$ enblder outdated
- 8 古くなったソフトウェアをアップグレードする。
-
$ enblder upgrade git
- 9 きっとどこかでトラブルに遭遇するので、レポートか、パッチを送る :)
- 10 7から10を繰り返す
更なる情報
ウェブサイト
https://github.com/magnolia-k/Enbld
http://code-stylistics.net/enbld
問題のレポート
https://github.com/magnolia-k/Enbld/issues
コピーライト
copyright 2013- Magnolia <magnolia.k@me.com>
.
LICENSE
This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself.