Etckeeper lets you keep /etc under version control.
Get AUR.AUR from the
The main config file is
You can set things such as the VCS to use in this file.
Once you've set your preferred VCS (the default is git), you can initialize the /etc repository by running
# etckeeper init
Etckeeper supports using pacman as a
LOWLEVEL_PACKAGE_MANAGER in etckeeper.conf.
Support for using pacman as a
HIGHLEVEL_PACKAGER_MANAGER is not yet added,
so you'll need to either commit changes manually or use one of the stopgap solutions below.
There is a cron script in the source distribution at
You can use this script to automatically commit changes on a schedule.
To make it run daily, for example, make sure you have cron installed and enabled,
then simply copy the script from the srcdir where you built etckeeper to /etc/cron.daily
and make sure it's executable (e.g.
chmod +x /path/to/script).
In order to emulate the auto-commit functionality that etckeeper has on other systems,
you could place a script such as the one below somewhere in your PATH, make it executable,
and use it instead of
pacman -Syu to update your system.
#!/bin/bash etckeeper pre-install pacman -Syu etckeeper post-install
Alternatively you can add a quick alias to
alias pkg-update='sudo etckeeper pre-install && sudo pacman -Syu && sudo etckeeper post-install'
As an alternative to the above, you could set up incron to automatically commit changes using etckeeper whenever a file in /etc is modified.
Automatic push to remote repo
Whilst having a local backup in
/etc/.git is a good first step, etckeeper can automatically push your changes on each commit to a remote repository such as Github. Create an executable file
#!/bin/sh set -e if [ "$VCS" = git ] && [ -d .git ]; then cd /etc/ git push origin master fi
etc/.git and add your remote Github repository:
# git remote add origin https://github.com/user/repo.git
Now each time you run your wrapper script or alias from above, changes will be automatically commited to your Github repo.