|
Packit |
06dd63 |
[![Build Status](https://travis-ci.org/hercules-team/augeas.svg?branch=master)](https://travis-ci.org/hercules-team/augeas)
|
|
Packit |
06dd63 |
|
|
Packit |
06dd63 |
Introduction
|
|
Packit |
06dd63 |
------------
|
|
Packit |
06dd63 |
|
|
Packit |
06dd63 |
Augeas is a library and command line tool that focuses on the most basic
|
|
Packit |
06dd63 |
problem in handling Linux configurations programmatically: editing actual
|
|
Packit |
06dd63 |
configuration files in a controlled manner.
|
|
Packit |
06dd63 |
|
|
Packit |
06dd63 |
To that end, Augeas exposes a tree of all configuration settings (well,
|
|
Packit |
06dd63 |
all the ones it knows about) and a simple local API for manipulating the
|
|
Packit |
06dd63 |
tree. Augeas then modifies underlying configuration files according to
|
|
Packit |
06dd63 |
the changes that have been made to the tree; it does as little modeling
|
|
Packit |
06dd63 |
of configurations as possible, and focuses exclusivley on transforming
|
|
Packit |
06dd63 |
the tree-oriented syntax of its public API to the myriad syntaxes of
|
|
Packit |
06dd63 |
individual configuration files.
|
|
Packit |
06dd63 |
|
|
Packit |
06dd63 |
This focus on editing sets Augeas apart from any other configuration tool
|
|
Packit |
06dd63 |
I know of. Hopefully, Augeas will form a more solid foundation on which
|
|
Packit |
06dd63 |
these tools can be built; with a clean, simple API these tools should
|
|
Packit |
06dd63 |
be able to focus more on their core concerns and less on the mechanics
|
|
Packit |
06dd63 |
of running sed, grep, awk, etc. to tweak a config file.
|
|
Packit |
06dd63 |
|
|
Packit |
06dd63 |
If all you need is a tool to edit configuration files, you only need to
|
|
Packit |
06dd63 |
concern yourself with the handful of public API calls that Augeas exposes
|
|
Packit |
06dd63 |
(or their equivalent language bindings). However, to teach Augeas about a
|
|
Packit |
06dd63 |
new file format, you need to describe that file format in Augeas's domain
|
|
Packit |
06dd63 |
specific language (a very small subset of ML) Documentation for that
|
|
Packit |
06dd63 |
language can be found on the Augeas website at http://augeas.net/ If you
|
|
Packit |
06dd63 |
do that, please contribute the description if at all possible, or include
|
|
Packit |
06dd63 |
it in the distribution of your software - all you need to do for that is
|
|
Packit |
06dd63 |
add a couple of text files, there is no need to change existing
|
|
Packit |
06dd63 |
code. Ultimately, Augeas should describe all config files commonly found
|
|
Packit |
06dd63 |
on a Linux system.
|
|
Packit |
06dd63 |
|
|
Packit |
06dd63 |
Non-goals
|
|
Packit |
06dd63 |
---------
|
|
Packit |
06dd63 |
|
|
Packit |
06dd63 |
Augeas is as much defined by the things it does _not_ try to accomplish
|
|
Packit |
06dd63 |
as by its goals:
|
|
Packit |
06dd63 |
|
|
Packit |
06dd63 |
* No abstraction from native config format, i.e. the organization of
|
|
Packit |
06dd63 |
the tree mirrors closely how the native config files are organized
|
|
Packit |
06dd63 |
* No cross-platform abstraction - what is logically the same value may
|
|
Packit |
06dd63 |
live in different places in the tree on different
|
|
Packit |
06dd63 |
distributions. Dealing with that should be left to a higher-level
|
|
Packit |
06dd63 |
tool
|
|
Packit |
06dd63 |
* No remote management support. Augeas is a local API, other ways of
|
|
Packit |
06dd63 |
access to Augeas should be built on top of it
|
|
Packit |
06dd63 |
* No (or very little) modelling. Augeas is focused on syntax
|
|
Packit |
06dd63 |
transformation, not on any higher-level understanding of
|
|
Packit |
06dd63 |
configuration.
|
|
Packit |
06dd63 |
|
|
Packit |
06dd63 |
The above non-goals are of course important concerns in
|
|
Packit |
06dd63 |
practice. Historically though, too many config mgmt projects have failed
|
|
Packit |
06dd63 |
because they set their sights too high and tried to address syntax
|
|
Packit |
06dd63 |
transformation, modelling, remote support, and scalable management all in
|
|
Packit |
06dd63 |
one. That leads to a lack of focus, and to addressing each of those goals
|
|
Packit |
06dd63 |
unsatisfactorily.
|
|
Packit |
06dd63 |
|
|
Packit |
06dd63 |
Building
|
|
Packit |
06dd63 |
--------
|
|
Packit |
06dd63 |
|
|
Packit |
06dd63 |
These instructions apply to building a released tarball. If you want to
|
|
Packit |
06dd63 |
build from a git checkout, see the file HACKING.
|
|
Packit |
06dd63 |
|
|
Packit |
06dd63 |
See the generic instructions in INSTALL. Generally,
|
|
Packit |
06dd63 |
|
|
Packit |
06dd63 |
./configure
|
|
Packit |
06dd63 |
make && make install
|
|
Packit |
06dd63 |
should be all that is needed.
|
|
Packit |
06dd63 |
|
|
Packit |
06dd63 |
You need to have readline-devel installed. On systems that support
|
|
Packit |
06dd63 |
SELinux, you should also install libselinux-devel.
|
|
Packit |
06dd63 |
|
|
Packit |
06dd63 |
Documentation
|
|
Packit |
06dd63 |
-------------
|
|
Packit |
06dd63 |
|
|
Packit |
06dd63 |
Documentation can be found on Augeas' website http://augeas.net/ The site
|
|
Packit |
06dd63 |
also contains information on how to get in touch, what you can do to help
|
|
Packit |
06dd63 |
etc.
|
|
Packit |
06dd63 |
|
|
Packit |
06dd63 |
License
|
|
Packit |
06dd63 |
-------
|
|
Packit |
06dd63 |
|
|
Packit |
06dd63 |
Augeas is released under the [Lesser General Public License, Version 2.1](http://www.gnu.org/licenses/lgpl-2.1.html)
|
|
Packit |
06dd63 |
See the file COPYING for details.
|