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'; }; };
$ chmod +x conf_for_build.pl $ ./conf_for_build.pl -> スクリプトに定義された条件に従ってソフトウェアをインストールします。
Enbldは、開発環境構築のための、もう一つのパッケージマネージャーです。
ソフトウェアインストールの条件(バージョン - 最新か指定のバージョン、テストは実行するか 等)をコンディション(条件)スクリプトに記述し、perlのスクリプトとして実行します。
Enbldはスクリプトの定義された条件に従って、ソフトウェアをインストールします。
一度コンディションスクリプトを書けば、同じ環境を簡単に再現できます。
他のパッケージマネジメントシステム(Homebrew, MacPorts, APT, RPM, Yum など)と違い、Enbldはバージョンを固定しません。
インストールするバージョンは自由に指定できます。
また、バージョンを'latest'(最新)と指定することも可能です。この場合、自動的に最新バージョンを特定し、そのバージョンをインストールします。
バージョンを'latest'(最新)と指定したソフトウェアは、より新しいバージョンがリリースされたか、チェックできます。
これにより、頻繁にアップデートされるソフトウェア(vim, git など)でも、常に最新バージョンを使うことができます。
インストールにsudoコマンドは必要ありません。
バックアップや削除は、簡単にできます。
他のプログラミング言語のバージョンマネージャーと違い、全てのプログラミング言語に同一のインストールインタフェースを提供します。
プログラミング言語ごとに異なる方法を習得する必要は有りません。
Enbldがサポートするソフトウェアの基準は以下の通りです。
頻繁にアップデートされる開発作業用のソフトウェア
例: vim, git
プロジェクトによって特定のバージョンが指定されるソフトウェア
例:
プログラミング言語(perl, ruby, nodejs, scala 等)
ウェブサーバ (apache, nginx 等)
データベース (MySQL 等)
開発には必要だけど、OS Xではインストールされていないソフトウェア
例: tmux
上記の基準に該当しないソフトウェアはサポートしません。
モジュールのインストールには、CPANや、Rubygemなど、プログラミング言語が提供する機能を使って下さい。
Enbldは、全てのバージョンのビルドを保証するわけではありません。
ビルドが失敗した時にはログファイルが表示されますので、どうか解析してレポートを送って下さい :)
Enbldは、OS X Mavericksで動作検証を行っています。
ひょっとすると、Linux (Debian, Ubuntu など)でも動作するかもしれません。動かない時は、レポートをお待ちしております :)
perl 5.10.1以上
注:Enbldは必ずsystem perl (/usr/bin/perl)を使います。
/usr/bin/perl
GNU Make
コンパイラ (gccか、clang)
その他、ターゲットのソフトウェアごとに必要なもの(例:scalaにはJREが必要)
Enbldは全てのコンポーネントを「$HOME/.enbld」ディレクトリにインストールします。そのため、EnbldがインストールしたソフトウェアのためにPATHを設定する必要があります。
「$HOME/.enbld」
.bashrcか、.bash_profileに下記の設定を追加して下さい。
.bashrc
.bash_profile
export PATH=$HOME/.enbld/bin:$HOME/.enbld/extlib/bin:$PATH export MANPATH=$HOME/.enbld/share/man:$HOME/.enbld/man:$MANPATH
$ 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'; }; }
$ ./samples/git_install.pl
$ git --version git version [latest version]
その後、より新しいバージョンがリリースされたら、もう一度スクリプトを実行して下さい。
最新バージョンがインストールされます。
バージョンの指定は、コンディションスクリプトの中で行います。 -> 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
OS XでEnbldを使う場合、ソフトウェア間の依存関係も自動的に解決します。
例えば、wgetにはlibidnライブラリが必要ですが、Enbldはwgetをインストールする際、自動的にlibidnもインストールします。
$ enblder install wget =====> Start building target 'wget'. =====> Found dependencies. --> Dependency 'libidn'. --> libidn is not installed yet. =====> Start building target 'libidn'.
OS X以外の、Linuxや、BSDといったOSでは依存関係の解決パターンが多いので、必要なソフトウェアは、OSのパッケージ管理マネージャーを使って解決して下さい。
'enblder'は、Enbldの使い勝手を良くするためのユーティリティコマンドです。
主なコマンドを以下に示します。
全てのコマンドの解説は、perldoc enblderで表示されます。
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のお勧めの使い方を紹介します。
$ enblder freeze > my_conditions.pl $ chmod +x my_conditions.pl
target 'perl' => define { version '5.18.1'; }
$ ./conditions.pl
https://github.com/magnolia-k/Enbld/issues
Enbld::Tutorial
enblder
https://github.com/magnolia-k/Enbld
http://code-stylistics.net/enbld
copyright 2013- Magnolia <magnolia.k@me.com>.
<magnolia.k@me.com>
This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself.
To install Enbld, copy and paste the appropriate command in to your terminal.
cpanm
cpanm Enbld
CPAN shell
perl -MCPAN -e shell install Enbld
For more information on module installation, please visit the detailed CPAN module installation guide.