3.8 Additional portage tools

etc-update

etc-update is a tool designed to update system files such as ._cfg0000_<name>. It provides an interactive merging setup and can also auto-merge trivial changes. ._cfg0000_<name> files are generated by Portage when it wants to overwrite a file in a directory protected by the CONFIG_PROTECT variable.

Running etc-update is simple:

etc-update

After merging the trivial changes, you will be prompted with a list of protected files that have an update waiting. At the bottom you are greeted by the possible options:

Please select a file to edit by entering the corresponding number.
              (-1 to exit) (-3 to auto merge all remaining files)
                           (-5 to auto-merge AND not use 'mv -i'):

If you enter -1, etc-update will exit and discontinue any further changes. If you enter -3 or -5, all listed configuration files will be overwritten with the newer versions. It is therefore very important to first select the configuration files that should not be automatically updated. This is simply a matter of entering the number listed to the left of that configuration file.

For example, let us update the /etc/pear.conf configuration file:

Beginning of differences between /etc/pear.conf and /etc/._cfg0000_pear.conf
...
End of differences between /etc/pear.conf and /etc/._cfg0000_pear.conf
1) Replace original with update
2) Delete update, keeping original as is
3) Interactively merge original with update
4) Show differences again

You can now see the differences between the two files. If you believe that the updated configuration file can be used without problems, enter 1. If you believe that the updated configuration file is not necessary, or does not provide any new or useful information, enter 2. If you want to interactively update your current configuration file, enter 3.

There is no point in further elaborating the interactive merging here. For completeness sake, we will list the possible commands you can use while you are interactively merging the two files. You are greeted with two lines (the original one, and the proposed new one) and a prompt at which you can enter one of the following commands:

ed:     edit then use both versions, each decorated with a header
eb:     edit then use both versions
el:     edit then use the left version
er:     edit then use the right version
e:      edit a new version
l:      edit the left version
r:      edit the right version
s:      silently include common lines
v:      verbosely include common lines
q:      exit

When you have finished updating the important configuration files, you can now automatically update all the other configuration files. etc-update will exit if it does not find any more updateable configuration files.

dispatch-conf

With dispatch-conf, you can merge updates to your configuration files while keeping track of all changes. dispatch-conf stores the differences between the configuration files as patches or by using the RCS revision system.

As well as with etc-update, you can ask to keep the configuration file as-is, use the new configuration file, edit the current one or merge the changes interactively. dispatch-conf also has some nice additional features:

  • automatically merge configuration file updates that only contain updates to comments
  • automatically merge configuration files which only differ in the amount of whitespaces

Make certain you edit /etc/dispatch-conf.conf first and create the directory referenced by the archive-dir variable.

For more information, check out the dispatch-conf man page.

quickpkg

With quickpkg, you can create archives of the packages that are already merged on your system. These archives can be used as prebuilt packages. Running quickpkg is straightforward: just add the names of the packages you want to archive.

For instance, to archive curl, arts, and procps:

quickpkg curl arts procps

The prebuilt packages will be stored in $PKGDIR/All (/var/calculate/remote/packages by default). The symlinks pointing to them are placed in $PKGDIR/<category>.

Thank you!