NAME
Enbld - Yet another package manager for building development environment
SYNOPSIS
Installation
$ curl -L http://goo.gl/MrbDDB | perl
Prepare a conditions script
$ 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';
};
};
Run as perl script
$ chmod +x conditions_for_build.pl
$ ./conf_for_build.pl
-> Installs software according to the conditions which are defined at script.
DESCRIPTION
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.
FEATURES
- 1. The conditions of installation are defined by perl-based DSL
-
Once it writes a conditions script, the same environment will become reproducible easily.
- 2. The specified versions can install
-
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.
- 3. The release of the newer version can check
-
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.
- 4. The all software are installed in a home directory.
-
There is not require sudo for installation.
Backup and remove is easy.
- 5. The same interface of installation is offered for all programing languages
-
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.
ANTI FEATURES
- 1. Enbld does NOT aim at perfect package manager
-
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.
- 2. Enbld does not offer the features which overlaps with the module install features in which a programming language offers.
-
CPAN, Rubygem, etc. should use for a module install features which a programming language offers.
CAUTION
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:)
INSTALLATION
SUPPORTED PLATFORMS
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 :)
REQUIREMENTS
perl 5.12 or above
Enbld certainly use the system perl (`/usr/bin/perl`).
make
compiler (gcc or clang)
other stuff required for individual target software (e.g. JRE for scala)
INSTALL
$ curl -L http://goo.gl/MrbDDB | perl
Enbld installs all the components in a $HOME/.enbld
directory. Therefore, it is necessary to set the PATH of the software which Enbld installed.
SET PATH
In .bashrc
or .bash_profile
, add below setting.
export $PATH=$HOME/.enbld/bin:$HOME/.enbld/extlib/bin:$PATH
export MANPATH=$HOME/.enbld/share/man:$HOME/.enbld/man:$MANPATH
GETTING STARTED Enbld
INSTALL LATEST VERSION
Ready conditions script
$ 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';
};
}
Run as perl script
$ ./samples/git_install.pl
Finish installation
$ git --version
git version [latest version]
Upgrade
Then, if the newer version is released, please run script again.
$ ./samples/git_install.pl
The latest version will be installed.
INSTALL SPECIFIC VERSION
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 ...
ADD ARGUMENTS
'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
UTILITY COMMAND 'enblder'
Enbld installs utility command 'enblder'.
The main commands are shown below.
The description of all commands are shown by perldoc enblder
.
Displays available software
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.
Install the software
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.
Displays installed software
Subcommand 'list' displays software list that is installed.
$ enblder list
Displays conditions script
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
Displays outdated software
Subcommand 'outdated' displays outdated software list.
$ enblder outdated
Upgrade outdated software
Subcommand 'upgrade' upgrade outdated software.
$ enblder upgrade git
HOW TO USE RECOMMENDATION OF Enbld
I introduce how to use recommendation of Enbld for the the last.
- 1 Install Enbld
-
$ curl -L http://goo.gl/MrbDDB | perl
- 2 Display available software list
-
$ enblder available
- 3 Install software to always use the latest version.
-
$ enblder install git
- 4 Make conditions script
-
$ enblder freeze > my_conditions.pl $ chmod +x my_conditions.pl
- 5 Add a software to use a specific version
-
target 'perl' => define { version '5.18.1'; }
- 6 Run a conditions script
-
$ ./conditions.pl
- 7 Sometimes check the release of the newer version
-
$ enblder outdated
- 8 Upgrade outdated software
-
$ enblder upgrade git
- 9 Since a trouble is surely encountered by somewhere, please send me a report or a Patch :)
- 10 Repeat 7 -> 10
SEE ALSO
WEB SITE
https://github.com/magnolia-k/Enbld
http://code-stylistics.net/enbld
ISSUE REPORT
https://github.com/magnolia-k/Enbld/issues
COPYRIGHT
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.