wiki:Development/Templates/ClientSideDepsCheck

Version 3 (modified by /C=IE/O=Grid-Ireland/OU=cs.tcd.ie/L=RA-TCD/CN=Stephen O. Childs, 17 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 Quattor repository, you will need to define YUM files describing the repository. These must have the same names in YUM and Quattor." The easiest thing is to let checkdeps generate these for you for the profile you're trying to check. If you pass checkdeps the -g flag it will do this for you.

Get checkdeps

checkdeps is available in the QWG tree at

Note: See TracWiki for help on using the wiki.