Envy - A comprehensive multi-dimensional environment manager
Unfortunately, installation takes a bit more work beyond simply typing 'make'. Big returns can involve negotiating big obstacles. :-/
To try envy, you need to determine the type of your login shell. In the Unix world, there are mainly two types of shells. You can find out which one you have with:
echo $SHELL
The following covers installation for most shells:
SH, KSH, BASH, ZSH, Etc.
envy() { eval `envy.pl $*`; }
CSH, TCSH, Etc.
alias envy 'envy.pl -csh \!* > /tmp/t$$; source /tmp/t$$; /bin/rm -f /tmp/t$$'
Now type 'envy help' and take a look around the menus.
Full installation is not exactly straightforward because to achieve the greatest benefit, you'll need to let envy manage your system-wide login scripts.
Because envy could solve some of your long standing, tenacious problems!
REUSE
Envy allows the centralization of configuration files. When new versions of software come out, it is easy to globally publish new configuration files for a gradual, controlled migration. Instead of being locked into backward compatibility, you can gently nudge users towards change.
CHOICE
Each user can customize their environment exactly to the degree they prefer instead of being forced into a global environment or splintering into an entirely custom (home directory based :-) setup.
DEPENDENCIES
Envy makes dependencies between packages explicit and visible.
STARTING APPLICATIONS
The 'launche' script makes it easy to isolate application from their configuration and log usage.
CRON JOBS
Cron jobs will no longer fail unexpectedly due to missing or mistaken environment variables. The 'launche' script mimics the precise execution environment for crontab so test runs are a breeze.
Before you 'make install', be sure to customize ./Conf.pm.
$prefix
This will default to the same place where perl is installed.
%env0
These variables are hardcoded into various scripts. You should keep the minimum environment necessary to run envy.
@path
On startup, envy will search these paths to find the $startup envy.
$startup
You'll need to write a startup .env file to set up the initial login environment. At a minimum, you'll need to set $ENVY_PATH. $ENVY_PATH is a colin separated list of paths where envy searches for .env files. You may also like to require a few other envies by default.
To determine how to modify your global startup scripts (profile, login) see the examples in etc/login. You should be able to cut & paste to get things going. The minimum you'll need is the following in profile:
eval `/full/path/to/envy.pl load $startup`
or in login:
$ENVY -csh load $startup > /tmp/mod.$$ source /tmp/mod.$$ if ($?debug) cat /tmp/mod.$$ /bin/rm /tmp/mod.$$
where $startup is replaced with the appropriate envy for your site. You'll also need the envy function/alias as mentioned in the TRIAL section (above).
Envy is written entirely in perl and is designed to be used as a library as well as a command-line tool. One possible project is a graphical front end to help navigate the environment. Also see the TODO file.
Send email to envy@listbox.com.
For a comparison of unix shells:
http://www.faqs.org/faqs/unix-faq/shell/shell-differences/index.html
And for why you should *not* do shell programming in csh:
http://www.faqs.org/faqs/unix-faq/shell/csh-whynot/
To install Envy::UI, copy and paste the appropriate command in to your terminal.
cpanm
cpanm Envy::UI
CPAN shell
perl -MCPAN -e shell install Envy::UI
For more information on module installation, please visit the detailed CPAN module installation guide.