Handling of Config Files

To update a gentoo system the command emerge does the job. But it does not update the config files automatically to not destroy the customized settings. If it is the first time that a config file is put on the system an entry is added to /var/lib/portage/config that contains a checksum of the config file. Next time if a config file has to be put on the system and it does have an other checksum the characters ._cgg0000_ are put in front of the new config file and emerge tells you that updates are necessary or available. To see whats there on your system type find /etc -name ._cfg*.

Run cat /var/lib/portage/config | grep /etc/conf.d/modules to see the registered checksum and run md5sum /etc/conf.d/modules if you have modified it, it has an other checksum.

Inside the cascading profiles (see /usr/portage/profiles/base/make.defaults holds the two variables CONFIG_PROTECT that says that in /etc files shall not be overwritten except the ones defined by the variable CONFIG_PROTECT_MASK.

To resolve different versions of those config files some programs are available:


etc-update can be used to do the update. A general rule is, whatever you never touched can be updated, what you have updated should be saved before the update or merged with the update. etc-update has also the possibility to review the differences and merge it. Type in the number of the file to be updated, then you see the difference. When done, press Q and you will be asked for further actions as ignore the update for this file.

Alternatively the files can be merged manually using a regular editor and tools as diff.


dispatch-conf is an improved alternative to etc-update that saves old versions of the configuration files

It has a configuration file /etc/dispatch-conf.conf where the directory to archive replaced config files can be specified


Other behavior can be configured as auto merge files that differ just with comments and white space


Or auto merge files that the user never has modified


to get colored output

emerge colordiff

To put all your changes under a revision control system to not loose the contents of your older config files (maybe the config files that worked) the use-rcs variable has to be set in /etc/dispatch-conf.conf

# Use rcs for storing files in the archive directory?
# (yes or no)

and emerge rcs the Revision Control System that is a standalone package. The directory /etc/config-archive is where the stuff goes.


cfg-update is a GUI alternative to etc-update or/and dispatch-config.

Linurs Hosttech startpage