venus
—
A functional package manager
The software venus is actually a set of tools that are used together to power a
redo(1) scheme to manage packages in an atomic and
reproducible manner.
The store is where the main scheme to manage the systems are, it
has the following directory hierarchy:
- config
- A directory where the configuration files are contained, each file is
encoded with venus-conf(5) and declares the system's
state of same name.
- modules
- A directory where each directory represents a module.
- sys
- A directory where each directory is a system with its state set by a
config file of same name.
It also has the following rules meant to use:
- clean.do
- A rule to clean all the cache.
- sync.do
- A rule to sync the all the systems states with their config file and
collect garbage.
The modules are redo(1) schemes to support
repositories and packages format. Each module is mostly free to set rules
and its hierarchy according to its needs, the only rules expected are:
- cache/clean.do
- A rule to clean the cache.
- default.progs.do
- A rule to create a directory populated with a sub-directory for each
package listed on “packages” at
“${module-name}” in the configuration file passed through
the environmental variable
VENUS_CONFIG_FILE
encoded in venus-conf(5).