yacm
is another configuration manager for your systems that aims to be so
simplistic it is almost useless. Most of yacm’s functionality can be learned by
diving into the help menu’s defined in the application: yacm help
. With yacm
users can define a profile for each system that the user wants to configure with
yacm. Profiles can be created and managed with yacm itself or with a simple text
editor.
There are a couple of ways to currently install yacm.
You can download yacm directly from github and place it in your $PATH
with a
command similar to:
curl -fLo /usr/local/bin/yacm https://github.com/maker2413/yacm/raw/master/yacm && chmod a+x /usr/local/bin/yacm
Or to download the latest release a command similar to:
curl -fLo /usr/local/bin/yacm https://github.com/maker2413/yacm/releases/latest/download/yacm && chmod a+x /usr/local/bin/yacm
Of course you can alter the file paths in the above commands to match your
current setup for $PATH
.
You can of course also clone the repository to your local system and setup a
symlink to a directory currently in your $PATH
. It could be done with the
following:
git clone https://github.com/maker2413/yacm.git ~/.yacm-project
ln -s ~/.yacm-project/yacm ~/bin/yacm
Of course again the above can be altered to match your current setup for
$PATH
. The pros of installing yacm with this method is you can update yacm by
doing a git pull in the repo you cloned down or tag it to a specific version by
checking out a tag in that repo.
To begin using yacm after installation simply type: yacm init
. This will
create a profile if none are currently present or prompt the user to set a
default profile for the current system. After a default profile has been set the
system can be bootstrapped by just running: yacm bootstrap
.
Any other functionality yacm provides can be learned from its built in help menus:
echo "yacm has built in help menus for all of its features:"
./yacm help
echo -e "\nBootstrapping functionality:"
./yacm bootstrap help
echo -e "\nSystem initialization:"
./yacm init help
echo -e "\nProfile management:"
./yacm profile help
Assuming the user defines idempotent executables the bootstrap can be run over
and over to add additional configurations to your system. It is also worth
noting that since yacm assumes you are defining a profile for each of your
systems you can easily check in all of your system profiles and executables into
a repository to have an easy way to redeploy any of your systems. By default
profiles and executables will be stored in $HOME/.config/yacm/
so these can be
checked into a repository where you store your dotfiles if you do that.