Upgrading Vesta by Shipping a New Release

When a new release of Vesta becomes available, using the replicator to copy the sources over the Internet is almost always faster than downloading a binary kit. Because of Vesta's guarantee of precise build repeatability, once you have the sources replicated you can build the new Vesta release locally and upgrade your installation by having the evaluator ship it into place. This document describes how to do this.

Preparation

First of all, just in case it wasn't obvious, you must already have a working installation of Vesta to do this. (If you don't already have Vesta installed, see Getting Started with Vesta.)

The administrator user (normally named vadmin) must be the owner of the installation root (normally /vesta-srv) as well as the bin and man subdirectories.

Because the upgrade is performed as vadmin, some care must be taken to keep the setuid root tool_launcher program working. Specifically, you should to the following as vadmin:

  1. cd /vesta-srv/bin
  2. mv tool_launcher tool_launcher.suid
  3. ln -s tool_launcher.suid tool_launcher

You need to make sure that [Evaluator]DefaultMain is set such that the correct top-level model for your platform will be picked from the release. (For example, if you use Vesta on i686 Linux, then you could set [Evaluator]DefaultMain to "linux_i686.main.ves".)

Lastly, you'll need a small shell script named vshiprel which is used for doing upgrade. (It's name is linked to the script, so you can just save it to disk from your web browser.) Note that you will need to adjust the definition of iroot if you have Vesta installed at a path other than /vesta-srv.

Doing an Upgrade

First you need to replicate the new release to your repository. To do this you must know which release number you want to upgrade to, and which top-level model your platform uses. If you're upgrading to release/12 and you use Vesta on i686 Linux, then you would run the replicator like this:

vrepl -I -s pub.vestasys.org:21776 -e@ /vesta/vestasys.org/vesta/release/12/linux_i686.main.ves

Once the release is replicated to your repository, all you need to do is run vshiprel as vadmin with the release number as its single argument:

su vadmin
vshiprel 12

vshiprel will run the evaluator to build the release and then copy it into place. After it completes, restart your repository server, cache server, and RunToolServer.

If for any reason something goes wrong with the new release and you need to revert to the previously installed binaries, all you need to do is restore the ones preserved by vshiprel in the bin-old directory:

su vadmin
cd /vesta-srv
rm -rf bin
mv bin-old bin

Once you decide that the new release is working and you won't need to revert, you can delete the bin-old directory:

Limitations

vshiprel does not handle multi-platform installations. Extending it to do so is left as an exercise to the reader.


Back to the Vesta home page
Last modified: Tue Jun 29 14:58:11 EDT 2004