Introduction
A DIYDICE machine is a Linux PC or server which is managed by an end-user using the same tool as used to managed normal DICE machines. This tool is called
LCFG (
introduction,
book).
A DIYDICE machine, by default, is almost identical to a DICE machine. You can login with your normal DICE
password and, if your DICE home directory is on AFS, your home directory will be as for DICE. However, you can change all this by changing LCFG
resources.
General Management of a Machine
Most aspects of a machine's setup are controlled from its LCFG profile. The source to your machine's profile should be put in your LCFG source directory in
~/LCFG/source
. The
diysubmit
command is then used to submit any changed profile sources to the DIY DICE LCFG server for compilation.
If you wish to see other peoples' machine profiles, you can view these in the directory
/diyhome/{username}/lcfg/source
on the machine
diydice.inf.ed.ac.uk.
Once submitted, a profile should compile within a minute or so. Once it has you will be able to see the profile's status on the LCFG status web page at
http://diydice.inf.ed.ac.uk/. Click on "DIY DICE LCFG Status Pages" to see the current LCFG status of each DIY DICE machine, then click on a machine's name for further details. The machine's LCFG status includes whether the machine's LCFG profile has successfully been made or if it contains illegal resources, thus preventing the new profile from being used. You should check the status every time you upload a new version of an LCFG source file. An LCFG profile with compilation errors will not affect the machine, which will simply carry on using the last successfully-made profile until it receives a new one.
If you have made a mistake in the profile, error messages or warnings and some coloured insect icons will appear on the machine's profile status web page. All errors must be eliminated before a new profile will be compiled and supplied to the machine.
Before making changes to a source file consult the LCFG book, which you can find on the LCFG site at
http://www.lcfg.org/lcfgbook.html.
LCFG Include Files
LCFG source files are run through "cpp", giving you the opportunity to use separate header files to hide clutter and share settings between machines.
Such files are allowed to contain the same sort of LCFG resources that are allowable in normal LCFG files. They should have a name ending in
.h
and should be put in your
~/LCFG/include
directory.
Copy them to the LCFG server using the
diysubmit
command.
A file
mysettings.h
which you had created and uploaded in this way would be included in your machine's LCFG profile by putting this line in your machine's profile source file:
#include <fred/mysettings.h>
where "fred" stands for your DICE username.
To add an RPM software package
The "updaterpms" LCFG component controls the installation of software (in RPM package files) on the machine. "man lcfg-updaterpms" gives details. It uses the "updaterpms" utility - "man updaterpms" has details on that.
updaterpms consults a pre-defined list of RPM files, and will install and delete RPMs on your machine until it matches this list. The set of software will differ according to what header files you have put at the top of your LCFG source file. (The basic SL5 set gives you all of Scientific Linux 5; an Edinburgh set gives you all of SL5 plus extra software, much of it for research or teaching; and a DICE machine is an Edinburgh machine with Informatics-specific software added.)
To add extra software packages, do this:
1. Put the RPM file in your
~/LCFG/packages
directory, then use "diysubmit".
2. Set various resources to your machine's LCFG profile as follows. Change all instances of the string "username" to your DICE username to make these resources work.
/* Make updaterpms look for RPMs in your own LCFG packages directory */
!updaterpms.rpmpath mPRECONCAT(http://diy.rpms.inf.ed.ac.uk/username,)
/* Install an RPM file named whizzo-7.2.1-1.i386.rpm */
!profile.packages mADD(+whizzo-7.2.1-1)
/* Install another RPM, this time with a version wildcard */
!profile.packages mADD(+fabbo-*-*)
3. Upload an "rpmlist" file (using "diysubmit" again) to your LCFG packages directory. The "rpmlist" file should be called "rpmlist" and should contain a list of the names of the package files in your packages directory, one per line. The updaterpms software needs this.
To Manage Many RPM Packages
To keep track of a large number of software packages, and to save having to mention each one in your machine's LCFG profile, you can instead list them in a package list file.
Package list files in your packagelist directory will be noticed by the
LCFG server as long as their names end in .pkgs or .rpms.
The format of a package list file is described in "man updaterpms" in the "RPMCFG file format" section. Package list files must end in
.pkgs
or
.rpms
.
To avoid filename collisions please make your username part of the name of your package list files, because at the moment ALL users' packagelist directories are searched by LCFG!
--
StephenQuinney - 05 Oct 2007
--
AlastairScobie - 03 Oct 2008