Skip to content
This repository


Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP

A configuration editing tool and API

This branch is 0 commits ahead and 0 commits behind master

Fetching latest commit…


Cannot retrieve the latest commit at this time

Octocat-spinner-32 .gnulib @ cabce6b Update gnulib to commit cabce6b8 July 18, 2012
Octocat-spinner-32 build
Octocat-spinner-32 doc Add Known_Hosts lens February 08, 2014
Octocat-spinner-32 examples * examples/fadot.c: accept -h option to print usage August 08, 2011
Octocat-spinner-32 lenses Add Known_Hosts lens February 08, 2014
Octocat-spinner-32 man Add --echo alias to augtool manpage May 17, 2013
Octocat-spinner-32 src
Octocat-spinner-32 tests Add Known_Hosts lens February 08, 2014
Octocat-spinner-32 .gitignore * .gitignore: ignore test result files (*.trs) January 23, 2013
Octocat-spinner-32 .gitmodules Use gnulib from a submodule July 19, 2010
Octocat-spinner-32 .hgignore Ignore files based on .hgignore October 02, 2008
Octocat-spinner-32 .hgtags Added tag release-0.3.1 for changeset 803c17b1833a September 04, 2008
Octocat-spinner-32 .travis.yml Notify #augeas channel July 28, 2012
Octocat-spinner-32 AUTHORS Add Xymon_Alerting lens to NEWS, update AUTHORS January 23, 2014
Octocat-spinner-32 COPYING Autotools support for building November 26, 2007
Octocat-spinner-32 HACKING
Octocat-spinner-32 INSTALL Autotools support for building November 26, 2007
Octocat-spinner-32 Rename build/aux to build/ac-aux January 27, 2014
Octocat-spinner-32 build: support for running with libfailmalloc preloaded September 30, 2009
Octocat-spinner-32 Makefile.maint Version 1.1.0 June 14, 2013
Octocat-spinner-32 NEWS Update NEWS February 08, 2014
Octocat-spinner-32 README Add README as a symlink to to make autogen relax May 24, 2013
Octocat-spinner-32 Update May 17, 2013
Octocat-spinner-32 acinclude.m4
Octocat-spinner-32 Add %check to RPM spec, fix download URL January 27, 2014
Octocat-spinner-32 Rename build/aux to build/ac-aux January 27, 2014
Octocat-spinner-32 bootstrap Rename build/aux to build/ac-aux January 27, 2014
Octocat-spinner-32 Version 1.2.0 January 27, 2014


Augeas is a library and command line tool that focuses on the most basic problem in handling Linux configurations programmatically: editing actual configuration files in a controlled manner.

To that end, Augeas exposes a tree of all configuration settings (well, all the ones it knows about) and a simple local API for manipulating the tree. Augeas then modifies underlying configuration files according to the changes that have been made to the tree; it does as little modeling of configurations as possible, and focuses exclusivley on transforming the tree-oriented syntax of its public API to the myriad syntaxes of individual configuration files.

This focus on editing sets Augeas apart from any other configuration tool I know of. Hopefully, Augeas will form a more solid foundation on which these tools can be built; with a clean, simple API these tools should be able to focus more on their core concerns and less on the mechanics of running sed, grep, awk, etc. to tweak a config file.

If all you need is a tool to edit configuration files, you only need to concern yourself with the handful of public API calls that Augeas exposes (or their equivalent language bindings). However, to teach Augeas about a new file format, you need to describe that file format in Augeas's domain specific language (a very small subset of ML) Documentation for that language can be found on the Augeas website at If you do that, please contribute the description if at all possible, or include it in the distribution of your software - all you need to do for that is add a couple of text files, there is no need to change existing code. Ultimately, Augeas should describe all config files commonly found on a Linux system.


Augeas is as much defined by the things it does not try to accomplish as by its goals:

  • No abstraction from native config format, i.e. the organization of the tree mirrors closely how the native config files are organized
  • No cross-platform abstraction - what is logically the same value may live in different places in the tree on different distributions. Dealing with that should be left to a higher-level tool
  • No remote management support. Augeas is a local API, other ways of access to Augeas should be built on top of it
  • No (or very little) modelling. Augeas is focused on syntax transformation, not on any higher-level understanding of configuration.

The above non-goals are of course important concerns in practice. Historically though, too many config mgmt projects have failed because they set their sights too high and tried to address syntax transformation, modelling, remote support, and scalable management all in one. That leads to a lack of focus, and to addressing each of those goals unsatisfactorily.


These instructions apply to building a released tarball. If you want to build from a git checkout, see the file HACKING.

See the generic instructions in INSTALL. Generally,

  make && make install

should be all that is needed.

You need to have readline-devel installed. On systems that support SELinux, you should also install libselinux-devel.


Documentation can be found on Augeas' website The site also contains information on how to get in touch, what you can do to help etc.


Augeas is released under the Lesser General Public License, Version 2.1 See the file COPYING for details.

Something went wrong with that request. Please try again.