wiki:Development/Templates/ClientSideDepsCheck

Version 2 (modified by /C=IE/O=Grid-Ireland/OU=cs.tcd.ie/L=RA-TCD/CN=Stephen O. Childs, 16 years ago) (diff)

--

One of the annoying things about Quattor is that you can't check that a package set defined in a profile is consistent, i.e. that it doesn't require any more packages added to resolve dependencies. This can result in a frustrating sequence of "tweak package list, deploy profiles, run SPMA, check for dependency errors". The problem is that dependency information is not available when compiling profiles.

However, there is a tool that's very good at resolving dependency problems, and it's called YUM. The following recipe gives details of using YUM and

Create YUM repositories

You will need to turn your existing Quattor repositories into YUM repositories. Make sure that createrepo is installed on your repository server and then issue this command for every directory used as a target for a Quattor software repository:

createrepo <repository root

For example, to convert the repository ca rooted at /var/www/html/ca issue this command:

createrepo /var/www/html/ca

Set up YUM on your development machine

Install YUM

If YUM isn't installed, you will need to install it on the machine where you normally develop Quattor profiles. Note that that checkdeps.py has been tested with YUM version 3.2.8 (as used in Fedora 8).

Set up a directory for YUM

You will need to create a directory for YUM to store its metadata in. Any directory will do. This will be passed in to checkdeps as its working directory.

Create a YUM config file

This can be very basic. The minimum we need is the location of the directory where the YUM templates describing the repositories are stored.

[main]
reposdir=/home/username/yumroot
installroot=/home/myusername/yumroot

Generate YUM repository files

For each

Get depchecks

depchecks is available in the QWG tree at