View source | Discuss this page | Page history | Printable version   

Release Management/Managing servers

Release Management/Internal



The Release Management Team is in charge of managing various servers, mostly powered by Gentoo Linux. This document explains how to keep the servers up to date.

List of servers

These are the production servers RM manages:

Update process

We use portage to perform the updates. Firstly, get the latest changes in the portage tree:

$ emerge --sync

Then, update the packages in the world:

$ emerge -avquDN world

While doing this check if any thing has to be backed up (configurations, directories with vital data, etc)

The world contains the list of packages explicitly installed by us at some point, excluding the dependencies. For example, if we install package-1, as ass dependency this installs package-2 and package-3 as well, only package-1 is part of the world. That is, it's a list of the packages we want to have in the system. We not interested in package-2 per se, but because we want to have package-1.

Used options:

Some of the updates included might include updates in the configuration files, typically in /etc. Portage notifies the user about this at the end of the update process. Example:

* IMPORTANT: 1 config files in '/etc' need updating.
* See the CONFIGURATION FILES section of the emerge
* man page to learn how to update config files

We use the dispatch-conf utility for this purpose:

$ dispatch-conf

This tool presents the required files, one by one. So when dispatch-conf finds a config file that has a new update the user is provided with a menu of options for how to handle the update. These are the most useful options:

It is usual that the newly upgraded versions of the packages have more or less dependencies than the previous releases. In those cases where it now depends on less packages, we want to get rid of those packages. Portage provides this functionality:

$ emerge -a --depclean

It may also happen that a newly upgraded version of a package breaks another package, because it was built against the old version of that package. As an example, imagine that package-1 installs package-2 as a dependency. At some point package-2 gets an update, and package-1 does not work any more. It would need to be rebuilt to make it work again. For this purpose we use the revdep-rebuild utility, part of the gentoolkit package:

$ revdep-rebuild -- -a

Finally, eix is a program that provides indexed search to the portage tree, many times faster than using emerge -s. The only downside is that it requires updating the database from time to time. It is a short operation and the benefit is higher, so we run it:

$ eix-update

Retrieved from ""

This page has been accessed 3,343 times. This page was last modified on 17 May 2012, at 09:46. Content is available under Creative Commons Attribution-ShareAlike 2.5 Spain License.