Enbld - Yet another package manager for building development environment
$ curl -L http://goo.gl/MrbDDB | perl
$ cat conditions_for_build.pl #!/usr/bin/perl use strict; use warnings; use lib "$ENV{HOME}/.enbld/extlib/lib/perl5/"; use Enbld; enbld 'mydevenv' => build { # install latest version target 'git' => define { version 'latest'; }; # install specific version target 'perl' => define { version '5.18.1'; }; };
$ chmod +x conditions_for_build.pl $ ./conf_for_build.pl -> Installs software according to the conditions which are defined at script.
Enbld is yet another package manager for building development environment.
Write conditions of software installation (a version - latest or specific version , the execution of a test code etc.) to a conditions script, and run as perl script.
Then Enbld installs software according to the conditions which is defined in script.
Once it writes a conditions script, the same environment will become reproducible easily.
Unlike other package management systems, Enbld does not fix a version.
The version to install can be specified freely.
And version 'latest' also can be specified. In this case the latest version is decided automatically, and it be installed.
The software specified version 'latest' can check release of the newer version.
So the software upgraded frequently (vim, git, etc.) can always use the latest version.
There is not require sudo for installation.
Backup and remove is easy.
Unlike other programing language version manager, the same interface of installatin is offered for all programing languages.
You do not need to learn a different way for every programming language.
The selection plan of the software to support by Enbld is as follows.
The software for development updated frequently
e.g. vim, git
The Software which has a specific version specified by the projects.
e.g.
programming language (perl, ruby, nodejs, scala etc.)
Web Server (apache, nginx etc.)
Database (MySQL etc.)
The software required for a developer although not installed in OS X
e.g. tmux
The software which does not correspond to the above-mentioned base does not support.
CPAN, Rubygem, etc. should use for a module install features which a programming language offers.
Enbld does not gurantee success of building of all the versions.
Since log file is displayed when building goes wrong, please analyze and send report:)
Enbld is performing verification of running on OS X Mavericks.
Probably, it may operate also on Linux (Debian, Ubuntu etc.). When not running, it is waiting for the report :)
perl 5.10.1 or above
Enbld certainly use the system perl (`/usr/bin/perl`).
GNU Make
compiler (gcc or clang)
other stuff required for individual target software (e.g. JRE for scala)
Enbld installs all the components in a $HOME/.enbld directory. Therefore, it is necessary to set the PATH of the software which Enbld installed.
$HOME/.enbld
In .bashrc or .bash_profile, add below setting.
.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]
Then, if the newer version is released, please run script again.
The latest version will be installed.
A specific version is specified in a conditions script. -> 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' is installed.
$ perl -v This is perl 5, version 18, subversion 1 (v5.18.1) built for ...
'arguments' method adds an additional arguments to 'configure' script.
target 'perl' => define { version '5.18.1'; arguments '-Dusethreads'; };
perl 5.18.1 with thread is builded.
$ perl -v This is perl 5, version 18, subversion 1 (v5.18.1) built for darwin-thread-multi-2level
When using Enbld at OS X, Enbld also solve the dependencies between softwares automatically.
For example, when the is equal to which needs a libidn library for wget, and Enbld install wget, they also install libidn automatically.
$ enblder install wget =====> Start building target 'wget'. =====> Found dependencies. --> Dependency 'libidn'. --> libidn is not installed yet. =====> Start building target 'libidn'.
Please solve the software which needs the fix patterns of a dependencies at that of a many using the package Management manager of operating system in operating system of Linux and BSD(s) other than OS X.
Enbld installs utility command 'enblder'.
The main commands are shown below.
The description of all commands are shown by perldoc enblder.
perldoc enblder
Subcommand 'available' displays software list that can install by Enbld.
$ enblder available
The name displayed on this list is used for the name of the Software which I specify as a condition script.
subcommand 'install' installs the latest version of the software.
Use to install Software, without writing a condition script.
Then the 'freeze' subcommand is used, displays the conditions script reflecting the installation.
Subcommand 'list' displays software list that is installed.
$ enblder list
Subcommand 'freeze' displays the condition script reproducing the software of an installed.
$ enblder freeze
If the displayed content is redirected to a text file, it will become a script of perl which can be performed as it is.
$ enblder freeze > conditions.pl $ chmod +x conditions.pl $ ./conditions.pl
Subcommand 'outdated' displays outdated software list.
$ enblder outdated
Subcommand 'upgrade' upgrade outdated software.
$ enblder upgrade git
I introduce how to use recommendation of Enbld for the the last.
$ enblder install git
$ 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.