Linux Install/Setup Notes


In places this document is specific to RedHat 7.2 on MSKCC's twin-chip Pentium4 Xeons. But much of it will map to other architectures/versions - it pays to be circumspect. Most of this works still on 8.0. Formal RedHat support for 7.2 and 8.0 ceases as of end of 2003, although this appears to mean that "no more program fixes will be posted" rather than them removing the actual software. Formal RedHat support for 9.0 ended in spring 2004, although 9.0 is very similar to 8.0 in many respects.

Documentation

There's a lot of Linux experience and documentation out there, but it's not all centralized and certain features are documented poorly by (e.g.) Red Hat. I often just Google for the appropriate question. The Linux Documentation Project has some useful stuff, as does the Red Hat Documentation. My standard location for RPMs is RPMFind.net which has nearly always proved a better resource than Red Hat itself.
Table of Contents: arranged somewhat chronologically.



Just a little hardware summary:
What HP XW6000 Compaq W8000
Chip Xeon 2.4 GHz Xeon 2.0 GHz
SCSI Ultra 320 Ultra 160
Controller Adaptec 7902 Adaptec 7899
SCSI Max # TWO THREE
IDE Ultra ATA/100 Ultra ATA/100
USB USB 2.0 (#=4) USB 1.0 (#=4)
Firewire no via PCI card
Graphics Nvidia 980 XGL Nvidia 740 XGL
Issues related to the XW6000 graphics workstations are on this related page. Both SCSI and IDE drives can exist in the same machine, although sometimes the BIOS needs to be reset in these cases since PCs tend to like booting of IDE drives in preference to SCSI drives.

Boot Up

Insert the first RedHat installation CD in the CD drive
Reboot the machine

Usually the machine will read the CD-ROM drive before the system drive by default, so it will override any copies of Micro$loth operating systems on there. If not the boot order can be changed my the PROM options at boot-time (F10 on Compaq), although this is vendor-specific how you actually change this.

Operating System Install

Elect to use the graphical installation method (default)
English language
Generic 105 key keyboard
US English layout
Enable dead keys
Logitech Mouseman mouse

Select workstation install
Automatic configuration of disk partitioning
Drives set automatically to /dev/sda and /dev/sdb
Remove ALL partitions (not just all Linux partitions) for pure Linux install
Select /dev/sda as the install disk
Review the partitioning
Default partition is 47 Mb boot, 33 Gb /, 2Gb swap (2*memory)
GRUB boot loader in /dev/sda, record in Master Boot Record /dev/sda2 is ext3 partition with default boot image

Depending on options it may be /dev/sda3 - it's the one with /. If you select only /dev/sda for partitioning, you get / in /dev/sda2, BUT if you select both /dev/sda and /dev/sdb it puts / on /dev/sdb so you will need to manually change the default configuration (using Edit). It doesn't seem possible to make ext3 filesystems by partitioning the drives later (under RedHat 7.2), so some futzing is advantageous at this stage. In the upgrade to RedHat 8.0 there's usually an option to convert ext2 filesystems to ext3. Ext3 is closely related to ext2 but with the additional of journalling.

Set GRUB password the same as the root password.

Initial Configuration

IP: 140.163.178.208 (this is for xray1)
Netmask: 255.255.255.0
(Network and Broadcast values set by default from the above values)
Hostname: xray1
Gateway: 140.163.179.1
Primary DNS: 140.163.9.254
Secondary DNS: 140.163.1.254
Ternary DNS: 140.163.96.254 (this probably doesn't exist anymore)

NO firewall
No additional languages
Set root password
Set geographic location
Install ALL packages
X config - automatically identifies NVIDIA GeForce 3 MX with 32 Mb RAM

INSTALL STARTS (takes about 15-20 mins, needs a couple of CDs)

Kernel is 2.4.7-10

Monitor: default OK for flat screen, specifically set ViewSonic PF790 for others
TrueColor (24 bit) 1280x1024 with KDE Desktop

Reboot after install
Accept SMP version of kernel at reboot

Post-install Configuration

Most of the subsequent steps are found duplicated in ~xtal/ROOT_CONFIG in the file BOOTSTRAP and some other script files. What remains here is taken from this setup directory. This file was created to avoid having to type too many commands over and over but is not ready as an executible step.

SCSI

The servers have external SCSI connections. They look like HD68 SCSI connectors and the controller is Ultra160 via Adaptec 7899 (Ultra320 is the newer standard). There are three internal SCSI drives in the internal brackets, which is all the physical space and power connections that are available. The disks appear to mount as /dev/sda, /dev/sdb, /dev/sdc.

See this useful set of links answering many SCSI questions.

Adding new hard drives

The SCSI-2.4 HOWTO is a rather useful, if technical, guide to the SCSI and pseudo-SCSI interface on Linux.

Shut down the system ("shutdown now" as root and then "halt" at the single user mode prompt).

Install the hard drive in the third slot above the other two. There is a 3rd power connector and more than enough SCSI connectors for it. If the drive does not automatically pick up its SCSI ID via the SCSI bus (most drives don't, some drives do) you will have to manually configure the SCSI ID. Hopefully you'll already know the SCSI IDs of the other drives (often 0 and 1). Consult the instructions that came with (or were printed on) the 3rd hard drive and set the jumpers across the pins for something like SCSI ID 4. Yes, you do this sort of thing in hardware still.

Close up the chassis and boot. If you view the boot prom messages you should see the 3rd hard drive being recognised. Linux calls SCSI drives /dev/sda, /dev/sdb, /dev/sdc etc. So hopefully your 3rd drive is /dev/sdc.

cat /proc/scsi/scsi will give you a basic idea of what the SCSI interfaces are, and which drives are attached. egrep 'sd[abcde]' /var/log/dmesg will also give you clues as the which partitions are mounted as which devices. The kernel log file /var/log/dmesg is somewhat useful in this regard. Linux calls the adaptor number the "host", the channel number the "bus", the scsi id of the drive the "id" and the logical unit # "lun" which is unlikely to ever be anything other than zero. Information on the adaptor can be found in /proc/scsi/aic7xxx directories (under controller #). On the XW6000's it would be /proc/scsi/aic79xx. The command:

echo "scsi log error " > /proc/scsi/scsi
where n=0 (none) to 6 (verbose) - DO NOT USE n=7 - affects the way error logging is done for SCSI errors (/var/log/messages). /var/log/messages can also be useful to track problems with SCSI devices or emulated SCSI devices (USB or Firewire drives). This URL on Performance, Tests and Debugging Tools may ultimately prove useful.

Note that some user pulled the connection for a mounted firewire drive out of xray6 and caused persistent SCSI errors (mounted as SCSI via the emulation layer). In this case I manually did:

  echo "scsi remove-single-device 2 0 0 0" > /proc/scsi/scsi
to attempt to deactivate the device since it seemed to be causing problems with xray6. The host/channel/id/lun was obtained from /var/log/messages:
Jun 29 13:20:23 xray6 kernel:  I/O error: dev 08:31, sector 6
Jun 29 13:20:23 xray6 kernel: SCSI disk error : host 2 channel 0 id 0 lun 0 return code = 10000
and the identity of the drive confirmed using cat /proc/scsi/scsi and comparing IDs and host adaptors.

Partition it using fdisk using the "p" partition, "n" new partion and "w" write configuration options:

fdisk /dev/sdc
p
n
p
1
[return for default start point]
[return for default end point]
w
q
which, cryptically, prints the current partitions (there should be none) creates a new one (primary, partition #1 with default start point and extent) and the finally writes it to disk.

Now create a Linux ext3 filesystem on the new partition:

mkfs -t ext3 /dev/sdc1
Add the disk details in /etc/fstab:
/dev/sdc1            /usr2                   ext3    defaults        1 2
then create the mount point and mount the disk:
mkdir /usr2
mount /usr2
If you want to export the disk you'll want to add the entry into /etc/exports and issue exportfs -a

See this tutorial for more information.

On helium, I added a new large ATA drive as follows: Insert it into the brackets below the CD-ROM drive. Attach power cables and the ATA cable that also connects to the CD-ROM drive. Reboot. Look in /var/log/messages for "hd" and we see the information:

Jul 19 18:07:09 helium kernel: hdc: Lite-On LTN486 48x Max, ATAPI CD/DVD-ROM drive
Jul 19 18:07:09 helium kernel: hdd: Maxtor 6B120P0, ATA DISK drive
Jul 19 18:07:10 helium kernel: hdd: attached ide-disk driver.
Jul 19 18:07:10 helium kernel: hdd: host protected area => 1
Jul 19 18:07:10 helium kernel: hdd: 240121728 sectors (122942 MB) w/8192KiB Cache, CHS=238216/16/63, UDMA(100)
Jul 19 18:07:10 helium kernel:  hdd: unknown partition table
Jul 19 18:07:10 helium kernel: SCSI device sda: 35566478 512-byte hdwr sectors (18210 MB)
Jul 19 18:07:10 helium kernel: SCSI device sdb: 35566478 512-byte hdwr sectors (18210 MB)
which indicates that the new partitionless hard drive is at /dev/hdd with the CD-ROM drive at /dev/hdc and the SCSI hard drives at /dev/sda and /dev/sdb.

To add partitions use fdisk on /dev/hdd as given above for the SCSI drives. The only variation is that we use mkfs -t ext2 /dev/hdd1 to make the new file system since the rather venerable RedHat 7.2 does not support ext3. Do a mkdir /usr/people5, add the appropriate entry in /etc/fstab, mount the drive and edit /etc/exports.

NFS Mount Points

A typical Linux /etc/fstab looks like:
LABEL=/                 /                       ext3    defaults        1 1
LABEL=/boot             /boot                   ext3    defaults        1 2
none                    /dev/pts                devpts  gid=5,mode=620  0 0
none                    /proc                   proc    defaults        0 0
none                    /dev/shm                tmpfs   defaults        0 0
/dev/sda2               swap                    swap    defaults        0 0
/dev/sdb1               /usr1                   ext2    defaults        0 0
/dev/cdrom              /mnt/cdrom              iso9660 noauto,owner,kudzu,ro 0 0
/dev/fd0                /mnt/floppy             auto    noauto,owner,kudzu 0 0
where the LABEL= syntax is atypical but apparently the result of configuration at install. In this case LABEL=/usr1 is not present because this was recovered after a system disk crash. We add the usual NFS mounts to /etc/fstab using the conventional syntax:
xray2:/usr     /xray2/usr     nfs rw,bg,soft 0 0
xray3:/usr     /xray3/usr     nfs rw,bg,soft 0 0
xtreme1:/usr   /xtreme1/usr   nfs rw,bg,soft 0 0
xtreme1:/usr1  /xtreme1/usr1  nfs rw,bg,soft 0 0
xtreme1:/usr3  /xtreme1/usr3  nfs rw,bg,soft 0 0
xtreme2:/usr   /xtreme2/usr   nfs rw,bg,soft 0 0
xtreme2:/usr1  /xtreme2/usr1  nfs rw,bg,soft 0 0
xtreme2:/usr2  /xtreme2/usr2  nfs rw,bg,soft 0 0
xtreme3:/usr   /xtreme3/usr   nfs rw,bg,soft 0 0
xtreme3:/usr1  /xtreme3/usr1  nfs rw,bg,soft 0 0
xtreme3:/usr2  /xtreme3/usr2  nfs rw,bg,soft 0 0
xtreme4:/usr   /xtreme4/usr   nfs rw,bg,soft 0 0
xtreme4:/data2   /xtreme4/data2   nfs rw,bg,soft 0 0
xtreme4:/data3   /xtreme4/data3   nfs rw,bg,soft 0 0
xtreme5:/usr   /xtreme5/usr   nfs rw,bg,soft 0 0
xtreme5:/data1 /xtreme5/data1  nfs rw,bg,soft 0 0
xtreme6:/data1 /xtreme6/data1  nfs rw,bg,soft 0 0
xtreme6:/usr   /xtreme6/usr   nfs rw,bg,soft 0 0
ximpact1:/usr1  /ximpact1/usr1  nfs rw,bg,soft 0 0
ximpact1:/usr2  /xtreme4/usr1  nfs rw,bg,soft 0 0
ximpact2:/usr1  /ximpact2/usr1  nfs rw,bg,soft 0 0
ximpact2:/usr2  /ximpact2/usr2  nfs rw,bg,soft 0 0
ximpact2:/usr3  /ximpact2/usr3  nfs rw,bg,soft 0 0
ximpact3:/usr  /ximpact3/usr  nfs rw,bg,soft 0 0
ximpact3:/usr1 /ximpact3/usr1 nfs rw,bg,soft 0 0
ximpact4:/usr  /ximpact4/usr  nfs rw,bg,soft 0 0
ximpact4:/usr1 /ximpact4/usr1 nfs rw,bg,soft 0 0
#xray1:/home     /xray1/home   nfs rw,bg,soft 0 0
#xray1:/usr1     /xray1/usr1  nfs rw,bg,soft 0 0
xray4:/usr      /xray4/usr   nfs rw,bg,soft 0 0
xray4:/usr1     /xray4/usr1  nfs rw,bg,soft 0 0
xray4:/usr2     /xray4/usr2  nfs rw,bg,soft 0 0
xray4:/usr3     /xray4/usr3  nfs rw,bg,soft 0 0
xray5:/usr      /xray5/usr   nfs rw,bg,soft 0 0
xray5:/usr1     /xray5/usr1  nfs rw,bg,soft 0 0
xray6:/home     /xray6/home   nfs rw,bg,soft 0 0
xray6:/usr1     /xray6/usr1  nfs rw,bg,soft 0 0
xray7:/home     /xray7/home   nfs rw,bg,soft 0 0
xray7:/usr1     /xray7/usr1  nfs rw,bg,soft 0 0
xray8:/home     /xray8/home   nfs rw,bg,soft 0 0
xray8:/usr1     /xray8/usr1  nfs rw,bg,soft 0 0
xray9:/home     /xray9/home   nfs rw,bg,soft 0 0
xray9:/usr1     /xray9/usr1  nfs rw,bg,soft 0 0
Note the NFS mounts for the self machine are commented out.

Then edit the /etc/hosts file to add the relevant hosts. Make sure you remove the self machine from 127.0.0.1 but leave localhost in there:

140.163.179.207 xtreme6 xtreme6.ski.mskcc.org
140.163.179.206 xtreme5 xtreme5.ski.mskcc.org
140.163.179.205 xtreme4 xtreme4.ski.mskcc.org
140.163.179.204 xtreme3 xtreme3.ski.mskcc.org
140.163.179.203 xtreme2 xtreme2.ski.mskcc.org
140.163.179.202 xtreme1 xtreme1.ski.mskcc.org
140.163.179.214 ximpact4        ximpact4.ski.mskcc.org
140.163.179.213 ximpact3        ximpact3.ski.mskcc.org
140.163.179.212 ximpact2        ximpact2.ski.mskcc.org
140.163.179.211 ximpact1        ximpact1.ski.mskcc.org
140.163.179.221 xray9   xray9.ski.mskcc.org
140.163.179.220 xray8   xray8.ski.mskcc.org
140.163.179.219 xray7   xray7.ski.mskcc.org
140.163.179.218 xray6   xray6.ski.mskcc.org
140.163.179.217 xray5   xray5.ski.mskcc.org
140.153.179.216 xray4   xray4.ski.mskcc.org
140.163.179.210 xray3   xray3.ski.mskcc.org
140.163.179.209 xray2   xray2.mskcc.org xray2.ski.mskcc.org
140.163.179.208 xray1   xray1.ski.mskcc.org
127.0.0.1               localhost.localdomain localhost
Again, the localhost entry must exist or the machine will not work.

Make the relevant NFS mount directories:

mkdir /xtreme1 /xtreme1/usr /xtreme1/usr1 /xtreme1/usr2
mkdir /xtreme2 /xtreme2/usr /xtreme2/usr1 /xtreme2/usr2
mkdir /xtreme3 /xtreme3/usr /xtreme3/usr1 /xtreme3/usr2
mkdir /xtreme4 /xtreme4/usr /xtreme4/usr1 /xtreme4/usr2
mkdir /xtreme5 /xtreme5/usr /xtreme5/usr1 /xtreme5/usr2
mkdir /xtreme6 /xtreme6/usr /xtreme6/usr1 /xtreme6/usr2
mkdir /ximpact1 /ximpact1/usr /ximpact1/usr1 /ximpact1/usr2
mkdir /ximpact2 /ximpact2/usr /ximpact2/usr1 /ximpact2/usr2
mkdir /ximpact3 /ximpact3/usr /ximpact3/usr1 /ximpact3/usr2
mkdir /ximpact4 /ximpact4/usr /ximpact4/usr1 /ximpact4/usr2
mkdir /xray1 /xray1/usr /xray1/usr1 /xray1/home
mkdir /xray2 /xray2/usr /xray2/usr1 /xray2/usr2
mkdir /xray3 /xray3/usr /xray3/usr1 /xray3/usr2
mkdir /xray4 /xray4/usr /xray4/usr1 /xray4/usr2 /xray4/usr3
mkdir /xray5 /xray5/usr /xray5/usr1 /xray5/home
mkdir /xray6 /xray6/usr /xray6/usr1 /xray6/home
mkdir /xray7 /xray7/usr /xray7/usr1 /xray7/home
mkdir /xray8 /xray8/usr /xray8/usr1 /xray8/home
mkdir /xray9 /xray9/usr /xray9/usr1 /xray9/home
mkdir /xtreme4/data2 /xtreme4/data3 /xtreme5/data1 /xtreme6/data1
set the domain name appropriately:
domainname ski.mskcc.org
And then actually mount the NFS disks (note that the source machines have to have added the host machine as a valid export in /etc/exports and issued exportfs -a).
mount -a
Edit the /etc/exports file so it looks something like the following:
# EXPORTS FILE FOR XRAY4
#
#
/home    xray2(rw) xray3(rw) xray4(rw) xray5(rw) xray6(rw) xray7(rw) xray8(rw) xray9(rw) \
         ximpact1(rw) ximpact2(rw) ximpact3(rw) ximpact4(rw) \
         xtreme1(rw) xtreme2(rw) xtreme3(rw) xtreme4(rw) xtreme5(rw) xtreme6(rw)
/usr     xray2(ro) xray3(ro) xray4(ro) xray5(ro) xray6(ro) xray7(ro) xray8(ro) xray9(ro) \
         ximpact1(ro) ximpact2(ro) ximpact3(ro) ximpact4(ro) \
         xtreme1(ro) xtreme2(ro) xtreme3(ro) xtreme4(ro) xtreme5(ro) xtreme6(ro)
/usr1    xray2(rw) xray3(rw) xray4(rw) xray5(rw) xray6(rw) xray7(rw) xray8(rw) xray9(rw) \
         ximpact1(rw) ximpact2(rw) ximpact3(rw) ximpact4(rw) \
         xtreme1(rw) xtreme2(rw) xtreme3(rw) xtreme4(rw) xtreme5(rw) xtreme6(rw)
These days I often do not export/mount /usr since no user data sits on it (it's all in /home). Note that all NFS exports are to explicitly-named machines to reduce the security risk, and that ideally those machines are defined in /etc/hosts. Of course this doesn't eliminate e.g. IP spoofing, but it's a fairly major advance over exporting it to every machine on the internet.

Change the /etc/group file so that the following entries exist:

user:x:20:
brains:x:90:
gold:x:91:
You may need to change the entry for group 20 (games?). This is a hangover of the SGI defining new users as group 20, and that group not being the same on Linux boxes.

Automated SSH Logins

Linux disables RSH and TELNET for many sources of login and this can be a certain pain in the neck if you're trying to automated things. You can set up Linux to do automated logins via ssh, which will automate transfers using ssh and scp. Ssh and scp are encrypted transfers and considerably more secure than the older rsh and rcp counterparts.

mkdir ~/.ssh
chmod go-rwx ~/.ssh
cd ~/.ssh
ssh-keygen -t dsa
[hit enter several times]
Just enter through the password prompts and whatnot.
scp id_dsa.pub some.remote.machine.address:~/
ssh some.remote.machine.address
mkdir ~/.ssh
chmod go-rwx ~/.ssh
cp id_dsa.pub .ssh/authorized_keys2
These last 3 steps are obviously on the remote machine that you ssh'd to.

If looks like you can append multiple keys to ~/.ssh/authorized_keys2 to allow automated ssh logins from multiple machines (which obviously have different ssh keys). Test it using:

ssh some.remote.machine.address
You should get no password prompt.

RPM installs

. By default RedHat leaves out a rather large range of useful products. I install these as RPMs. You need to download these RPMs (or other relevant ones) from
www.rpmfind.net. Then issue:
rpm -iv blt-2.4u-7.i386.rpm
rpm -iv f2c-20000510-5.i386.rpm
rpm -iv fort77-1.18-7.noarch.rpm
rpm -iv fsplit-5.5-1.i386.rpm
rpm -iv gkrellm-1.2.8-1.i686.rpm
rpm -iv gqmpeg-0.12.0-1.i686.rpm
rpm -iv netatalk-1.5.0-2rh7.i386.rpm
#rpm -Uv openssh-2.9p2-12.i386.rpm      (commented out)
rpm -iv openssh-server-2.9p2-12.i386.rpm
rpm -iv telnet-server-0.17-18.i386.rpm
rpm -iv tmpwatch-2.8.1-1.src.rpm
rpm -iv wu-ftpd-2.6.1-16.i386.rpm
rpm -Uv xcdroast-0.98alpha9-1.i386.rpm
rpm -Uv rsh-server-0.17-2.5.i386.rpm
Then do:
chkconfig atalkd on
chkconfig atalk on
chkconfig wu-ftpd on
chkconfig telnetd on
chkconfig telnet on
chkconfig ssh on
chkconfig sshd on
chkconfig atalk on
chkconfig nfs on
chkconfig nfsd on
chkconfig rsync on
chkconfig rsh on
chkconfig rlogin on
killall -USR2 xinetd
which might start most of the services, although I dare say I haven't remembered every single one. The killall statement just makes xinetd re-read the configurations file(s).

Note that other RPMs may be required to upgrade to new versions of Python etc. These RPMs may not all be in the same place (use the rpm command to get a list of installed rpms). Then install a specific Java implementation for SnB into user local:

cd /usr/local
tar xvjf /xray1/home/xtal/ROOT_CONFIG/jre*.bz
tar xvjf /xray1/home/xtal/ROOT_CONFIG/jdk*.bz
Then upgrade the graphics drivers to the proprietary optimized ones from Nvidia - note that after doing this, doing further kernel upgrades can serious mess with the X server. If you don't want optimal graphics performance you can skip this step. Check the NVIDIA website for the most recent drivers.
rpm -ivh NVIDIA_kernel-1.0-2313.rh72smp.i686.rpm
rpm -ivh NVIDIA_GLX-1.0-2313.i386.rpm
emacs /etc/X11/XF86Config-4
# in the file /etc/X11/XF86Config-4
# replace Driver "nv" with Driver "nvidia"
# check for Load "glx" and comment out Load "dri" and Load "GLcore" 
Note that the current NVIDIA driver install mechanism is a little different to this

Then most of the install is done - you can add users by:

useradd -d /home/xtal -g 500 -m -s /bin/tcsh -u 1113 -n xtal
chmod a+rx ~xtal
Keeping the same UID and GID as on the SGI boxes. Remember that Linux creates user accounts (e.g. /home/xtal) without group or world search privelege - need to do chmod a+rx /home/xtal after creating the username

Since presumably you will set up the account via multiple machines, you should use the -m (make home dir) flag for the first (parent) machine and the -M (do not make home dir) flag for the other machines, i.e.

useradd -d /home/xtal -g 500 -M -s /bin/tcsh -u 1113 -n xtal
Then set the password to something dummy using:
passwd xtal
Don't set it to the final password, since the first time a user logs into the system it seems to make them change their password. RedHat is also pretty cranky about known words in passwords. It is a lot less liberal than the SGIs. It does not appear to be possible to "cut and paste" encrypted passwords between /etc/shadow or /etc/passwd files on different machines.

Note that I've hacked /etc/group to make it such that we can use the existing SGI-style groups under Linux.

Setting up RSYNC mirroring from xtremes to xray1

: make sure that /usr1/xtreme5/data1, /usr1/xtreme6/data1 and /usr1/xtreme4/data2 exist. Make a soft link from /usr1/xtreme4/data3 to /usr/xtreme4/data3 because otherwise there isn't enough space on the disks. Try issuing the commands:
rsync -azv --delete /xtreme5/data1/ /usr1/xtreme5/data1/.
rsync -azv --delete /xtreme6/data1/ /usr1/xtreme6/data1/.
rsync -azv --delete /xtreme4/data2/raxis/ /usr1/xtreme4/data2/raxis/.
rsync -azv --delete /xtreme4/data3/raxis/ /usr1/xtreme4/data3/raxis/.

or for things like entire disk backups (as root)

rsync -azv --delete /xtreme1/usr3/ /usr1/RSYNC/xtreme1/usr3/.
Note that we don't mirror /xtreme4/data2/archived/. Make a crontab entry for all this and store it in ~raxis/.crontab:
##
##  RSYNC
##
0,30 * * * *  rsync -azv --delete /xtreme5/data1/ /usr1/xtreme5/data1/.
5,35 * * * *  rsync -azv --delete /xtreme6/data1/ /usr1/xtreme6/data1/.
10,40 * * * *  rsync -azv --delete /xtreme4/data2/raxis/ /usr1/xtreme4/data2/raxis/.
20,50 * * * *  rsync -azv --delete /xtreme4/data3/raxis/ /usr1/xtreme4/data3/raxis/.
Activate the cron job using crontab -l .crontab. All files will/are owned by raxis.

Setting up XTAL mirroring of PDB on xray6 : use the package MIRROR to make a copy of PDB on /xray6/usr1/Databases/pdb/ via a simple ~xtal/MIRROR script and this crontab entry (.crontab.xray6 in ~xtal):

##
##
##  MIRROR
##
##
0 3 * * 0 csh /xray1/home/xtal/MIRROR
Actually building the mirror in the first place took quite a lot of effort to avoid downloading the entire PDB in one chunk (this might piss off the RCSB servers). I did it by running mirror manually and interrupting it every so often.

Setting up NTP time clamping : use the package NTP to synchronize clocks with a stable remote machine. On each machine do:

chkconfig ntpd on
emacs /etc/ntp.conf
#insert a server line e.g. server ntp.ctr.columbia.edu
#at the top of the file, comment out other server lines
/etc/init.d/ntpd start
To check, use ntpq -n and issue pe and rv lines. Servers should be ntp.ctr.columbia.edu for xray1, and xray1.ski.mskcc.org for xray6/7/8/9. All other servers should be commented out. The jitter and offset entries in the rv output should be small, after enough time to even the clocks out.

Printers, Chooser and PAPD

An AppleTalk daemon can, in principle, let you talk to AppleTalk printers on the network and also let someone access their home directory via the Chooser from a MAC (SAMBA attempts to do the same thing from a PC). The actual implementation seems to fail in our hands for mysterious reasons related to an obscure but in RedHat 7.2 that I never got to the bottom of, nevertheless the config goes as follows:

Get netatalk-1.5.0-2rh7.i386.rpm from www.rpmfind.net not from RedHat.

rpm -ivv netatalk-1.5.0-2rh7.i386.rpm
chkconfig atalk on
/etc/rc.d/init.d/atalk status
/etc/rc.d/init.d/atalk start
does the basic install and starts atalkd.

/usr/bin/getzones       gets all zones
/usr/bin/getzones -m    shows current zone (should be StructureBio)
/usr/bin/nbplkup        shows all printers
/usr/bin/papstatus -p "(RRL-217) The Beast"
/usr/bin/papstatus -p "rrl 221 - hp color lj 4550n"
/usr/bin/pap -p "(RRL-217) The Beast" < doc.ps
     -or-
/usr/bin/pap -p "rrl 221 - hp color lj 4550n" < doc.ps
lpq -P lp   queries for lobs
lprm ###    removes jobs
Bear in mind that the IP addresses reported by nbplkup seem to be WRONG. The script xray0/bin/print does some safety checks and prints to The Beast. The error that prevented AppleTalk printing from working in RedHat 7.2 appears to be fixed in 8.0 and 9.0.

More on Linux Printing

(This is the current config as of Nov 2003, but the directory locations are perhaps a little non-standard). Works on 8.0 but resolutely refuses to work on 7.2, despite identical configuration and a great deal of poking around. Must be a REALLY cryptic bug.

getzones
nbplkup
These help you detect where you are on Appletalk.
cd /var/spool
mkdir lp
chown root.lp lp             . . . .   Change the ownership of the just created directory.    
chmod 775 lp                 . . . .   Sets the right priorities.    
cd /dev                      . . . .   Go to the directory to set up the printer.    
mkdir atalk                  . . . .   Create the directory.    
chown root.lp atalk          . . . .   Change the ownership of the just created directory.    
chmod 775 atalk              . . . .   Sets the right priorities.    
touch atalk/lp               . . . .   Creates the printer device.    
chown root.lp atalk/lp       . . . .   Change the ownership of the just created directory.    
chmod 664 atalk/lp           . . . .   Sets the right priorities.    
touch /var/tmp/lpd-errs      . . . .   Create the file to store error messages.    
mkdir /usr/lib/atalk
mkdir /usr/lib/atalk/filters
cd /usr/lib/atalk/filters    . . . .   Move to the directory to create the filters.    
ln -s /usr/sbin/psf ifpap    . . . .   Create the different filters.    
ln -s /usr/sbin/psf ifpaprev . . . .   Create the different filters.    
ln -s /usr/sbin/psf dfpap    . . . .   Create the different filters.    
ln -s /usr/sbin/psf dfpaprev . . . .   Create the different filters.    
ln -s /usr/sbin/psf tfpap    . . . .   Create the different filters.    
ln -s /usr/sbin/psf tfpaprev . . . .   Create the different filters.    
ln -s /usr/sbin/psf ofpap    . . . .   Create the different filters.
These commands create locations for the printer and printer spool directories that you will define in /etc/printcap. Now add a definition in /etc/printcap and /etc/printcap.local. Add this:
lp|LJ4200:\
    :lp=/dev/atalk/lp:\
    :sd=/var/spool/lp:\
    :px#3060:py#3960:sh:sf:rw:\
    :lf=/var/tmp/lpd-errs:\
    :if=/usr/lib/atalk/filters/ifpap:\
    :tf=/usr/lib/atalk/filters/tfpap:\
    :df=/usr/lib/atalk/filters/dfpap:\
    :of=/usr/lib/atalk/filters/ofpap:
Now define the printer for pap to use, via the .paprcfile:
cd /var/spool/lp
echo "(RRL-217) The Beast" > .paprc
NOTE THAT THE QUOTES SHOULD NOT APPEAR IN THE FILE. Now (re)start the lp daemon:
/etc/init.d/lpd stop
/etc/init.d/lpd start
Try printing with e.g.:
lpr -P lp /etc/hosts
and monitor the fun with lpstat

For more in-depth discussion see AppleTalk printer installation and How to setup the printer using AppleTalk .

Setting up SAMBA

By default on RedHat 7.2, samba is not installed. So go get the rpm samba-2.2.1a-4.i386.rpm and install it. Then edit /etc/samba/smb.conf, and make a few modifications:
workgroup = MSKCC
hosts allow = 140.163.179.
For Windows NT and Windows 2000 you have to run password encryption:
encrypt passwords = yes
smb passwd file = /etc/samba/smbpasswd
Now, having minimally edited /etc/samba/smb.conf, start/restart samba using. I'm not sure if chkconfig makes much difference here.
service smb restart
chkconfig smb on
Create the password file using mksmbpasswd.sh. This is a blank dummy password and you have to change the passwords manually using smbpasswd username:
cat /etc/passwd | mksmbpasswd.sh > /etc/samba/smbpasswd
chmod 600 /etc/samba/smbpasswd
See the URL on RedHat about
Samba Configuration

Burning CDs and DVDs

Apparently you can only do this as root because of device protections. This tends to be somewhat of a thorny issue under Linux. Possible modifications to /etc/fstab might allow this more transparently.

Linux loads CD-RW and DVD+-RW drives in a scsi emulation level. If you look at /etc/grub.conf you typically see something like:

kernel /vmlinuz-2.4.20-24.8smp ro root=LABEL=/ hda=ide-scsi
which means that the IDE drive /dev/hda is emulated under an ide-scsi layer. On xray9, which has both CD-RW (master) and DVD-RW (slave) in it's secondary IDE controller, the line is:
kernel /vmlinuz-2.4.20-24.8smp ro root=LABEL=/ hdc=ide-scsi hdd=ide-scsi
where the CD-RW is /dev/hdc and the DVD-RW as /dev/hdd. No, I don't have any idea why they aren't /dev/hda and /dev/hdb, which is what they are in xray1 (hda==CD-RW, hdb==DVD-RW). Anyway, these two devices seem to be emulated as /dev/scd0 and /dev/scd1 which is a nice complement to the three true SCSI drives, /dev/sda, /dev/sdb and /dev/sdc.

To write CD-RW disks
To look for the drives, to cdrecord -scanbus. Use the device number to write to the CD-RW drive, e.g.:

/usr/bin/mkisofs -J -R /some/FILES | /usr/bin/cdrecord -v -speed=4 -dev=2,0,0 -
seems to work OK. Be aware that since the buffer must be kept full to avoid CD-RW corruptions, the machine should be as lightly used as practical. The default is 4 Mb.

To quote the cdrecord webpage: To copy an audio CD in the most accurate way, first run

/usr/bin/cdda2wav -v255 -D2,0 -B -Owav
and then run
/usr/bin/cdrecord -v dev=2,0 -dao -useinfo  *.wav
Possibly you might use -speed=2 or -speed=4 but check first using -dummy to see if cdrecord can handle that, i.e.:
/usr/bin/cdrecord -v -dummy -speed=4 dev=2,0 -dao -useinfo  *.wav
But I haven't checked the process of making audio CD's on Linux yet.

To write DVD-RW disks:
Note that CDRECORD and DVDRECORD do not work even though they claim to support DVD recording. (The newer ProDVD versions allegedly work). What you need to use is DVD+RW-Tools which I have installed in ~xtal for convenience. Use the program growisofs which is the counterpart to mkisofs in the above example. (However you do need mkisofs from the cdrecord package to run DVD+RW-Tools, I think).

~xtal/dvd+rw-tools-5.14.4.7.4/growisofs -Z /dev/scd1 -J -R /some/FILES
Which obviously assumes the DVD-R is on /dev/scd1. Perhaps run -dummy first to check everything is OK. Note the potential for confusion: drive /dev/sdc1 is the 1st partition on the third SCSI hard drive but /dev/scd1 is the DVD+RW drive.

The drive /dev/scd1 works OK using cdrecord and CD-R media. It works OK using growisofs and DVD+R media (works OK on DVD-R also), writing about 3.3 Gb in ~10 minutes. That's really fast.

To make ISO images from a CD-ROM:

Insert the CD
umount /dev/cdrom
dd if=/dev/cdrom of=meaningfulname.iso
eject

Up2date

Red Hat allows admins to automatically update the systems to the latest modifications for the particular Red Hat OS version, via the program up2date. This is actually a fairly sophisticated program that lets you check, download and install updates/bug fixes over the network. Unfortunately unless you purchase support ("entitlements") you can have only one machine licensed at any given time. I seem to have created about 3 user accounts, partially because of typos. They are:

Note that there are specific up2date versions for specific OS releases so they are not completely interchangeable. The old up2date's certificate has expired so you need to update up2date by the following procedure:

This has been done on xray1, xray6, xray7, xray8 and xray9.

Graphics Card Upgrades

Physically, replacing the graphics card is just a question of swapping out the AGP card on the PCI bus. The more complex thing is getting the X11 software configured correctly. First of all you want to get the best drivers in place. So far I have exclusively used Nvidia graphics cards made by PNY. They have their own proprietary drives, which can be got from the driver section of the Nvidia website.

In order to install an Nvidia driver you must not have X windows running. With a heavily modified installation it may not work anyway, but if you have a "working" configuration you have to do the following:

Edit /etc/inittab and change the 

id:5:initdefault:

to read 

id:3:initdefault:
and reboot. This boots Linux into multiuser without X-windows. Then do the Nvidia install:
sh NVIDIA-Linux-x86-1.0-4496-pkg2.run
(or whatever NVIDIA driver package you've installed from their website). Once the Nvidia driver is installed you must edit /etc/X11/XF86Config-4 to reflect the new configuration. This tends to be a somewhat messy and cryptic file to play with, so I tend to do cut and paste from existing configurations:

These configurations include specs for the graphics card and the monitor, and perhaps could still be optimized although they are fairly close. The file /etc/X11/XF86Config seems to compete with the XF86Config-4 file, so I usually rename it to avoid conflicts. The 750XGL are hardware-stereo-enabled graphics cards that work well with Nuvision's 60GX-T1 emitter that plugs straight into the card and works well with Nuvision and Stereographics glasses. The Nvidia 750XGL is a very fast graphics card.

Once you've got the drivers in place and everything configured, just change the id:3:initdefault: line in /etc/inittab back to id:5:initdefault and reboot the machine (the command startx will do in a pinch, but will not restart X after you log off).

Upgrading to RedHat 8.0

Select upgrade, go get coffee. I did find that it chkconfig'd atalk off, so I had to re-enable it. Also programs compiled under 8.0 do not run under 7.2. However 7.2 programs run under 8.0. Go figure. Bill Barton's upgrade went OK until we changed the kernel to a newer version, so it's possible that Grub/Lilo modifications can screw you throroughly. Make sure you do backups first.

Changing Kernel Version

To try and get firewire working I "upgraded" the kernel from 2.4.18 to 2.4.20 under RedHat 8.0. This went relatively smoothly except that it broke the NVIDIA graphics drivers. Moreover there is no precompiled version of the drivers for 2.4.20-24.8, which is what I was using. So I had to
 
Get kernel-source-2.4.20-24.8.i386.rpm kernel sources from rpmfind.net
rpm -Uv kernel-source-2.4.20-24.8.i386.rpm
Let the NVIDIA install script recompile the drivers with the kernel headers 
Pray to God that it all worked 
And it did seem to, despite a little whining about it all. O seems to work and stereo seems (kinda) to work. Not tested on xray9, however, which actually has bona fide stereo capability. The latest Nvidia drivers apparently get rid of the slow-on-mono bug which previously existed. The most recent driver as of Dec 2003 was 4496, which was the driver version I was using during the 750XGL upgrades.

Firewire seems to work under RedHat 8.0 kernel 2.4.20-24.8 with the Adaptec FireConnect 4300 cards. It sticks the firewire drive next in the list after the SCSI hard drives. On my Linux boxes this would be /dev/sdd (/dev/sda, /dev/sdb, /dev/sdc are the internal SCSI drives, /dev/scd0 and /dev/scd1 for the ide-scsi fudges for the optical drives). Literally plug and play, although I haven't tested it's performance under reboot.

An out-of-the-box Firewire drive seems to come formatted as FAT32. To whit, fdisk /dev/sdd shows the following partition info on a 120 Gb Western Digital:

/dev/sdd1             1     14593 117218241    c  Win95 FAT32 (LBA)
To mount this I do:
mkdir /fire1
mount /dev/sdd1 /fire1
The /etc/mtab entry is:
/dev/sdd1 /fire1 vfat rw 0 0
The larger 200Gb disk is partitioned into two partitions, /dev/sdd1 and /dev/sdd2 and is mounted on /fire1 and /fire2. I do not put these entries in /etc/fstab since I have no idea if the firewire drives will live on the machine permanently or not, and also no idea if it handles reboot OK with them attached.. Consequently they would need to be explicitly mounted after reboot. Experience with older IDE controllers is that they don't address more than 120Gb so there may be some advantage of making multiple partitions with big external firewire drives. I assume fdisk can do this.

However: if the disk is handled this way, rsync seems to experience some issues setting ownership on files. This is not a big deal for a backup disk for which things are going to be copied to, but it's a much bigger deal for rsync. So I repartitioned the disk to create a Linux partition, did

mkfs -t ext3 /dev/sdd1
mount -t ext3 /dev/sdd1 /fire1
The disk stubbornly refused to mount properly as ext3 without the -t flag in mount, but it could just be Linux remembering the previous format (by default it mounted is as vfat). Newly partitioned as Linux and with an ext3 filesystem, rsync seems to work ok:
mkdir /fire1/usr2
rsync -azv --delete /usr2/ /fire1/usr2/.
mkdir /fire1/home
rsync -azv --delete /home/ /fire1/home/.
I assume that if you add a second firewire drive it will go in as /dev/sde but I have not tested this yet.

Remote PC Disk Shares

The actual motivation for this was to mount disks from the loaner PC onto xray1 and xray10, but this should work OK for other PC disks (I hope). You need to enable sharing for the PC volume in question on the PC:
mkdir /xtreme7
mkdir /xtreme7/data
    and then either
smbmount //xtreme7/Data /xtreme7/Data/ -o username=ADMINISTRATOR
    or
mount -t smbfs -o username=ADMINISTRATOR //xtreme7/Data /xtreme7/Data/
It prompts for a password. I guess there's a way to put it in /etc/fstab, too. The file ownership seems to be mapped to root.

At Princeton on xray8, I have created the /collect directory so as root you can specify:

smbmount //xray7/data /collect -o username=raxis%password
where "password" means the NT raxis password you specify at login

Network Stuff

mii-tool prints the current ethenet controller settings. The -v option gives more detail. Apparently you can force the speed on the interface using mii-tool -F 100baseTx-FD eth0 if you were so inclined. arp gives the relationship between IP address and ethernet address for recently-contacted machines - useful for figuring out MAC addresses if you don't already have it.

Weird GConf Errors

Logging in simultaneously from multiple workstations tends to cause problems with some apps (e.g. gedit). I traced the error message back to GConf and as per the
Gconf system config pages made the following changes:

Created /etc/orbitrc:

ORBIIOPIPv4=1

Created /etc/profile.d/gconf-lockfile-hack.sh:

GCONF_LOCAL_LOCKS=1
#
# see http://www.gnome.org/projects/gconf/
These profile.d files appear to be sourced by /etc/profile.

It was the latter hack that seemed to work, although there is a denial of service potential in this particular change. It's slightly galling that since we run KDE rather than Gnome, GConf isn't exactly the most important app we have ever seen.

Sendmail and Fetchmail

Usage:
fetchmail -u jeffreyp pop3.mskcc.org

	-c check (and do nothing)
	-k keep  (keep messages on server)
	-K nokeep
	-s silent
	-v verbose
	-a fetchall  (retreive old and new messages)
	-f flush (nuke old messages)
	-p protocol
Put:
poll pop3.mskcc.org user jeffreyp pass PASSWORD_HERE
into .fetchmailrc
chmod 600 ~/.fetchmailrc
to make fetchmail work "automatically"

Need to RECONFIGURE SENDMAIL:

rpm -Uv sendmail-cf-8.12.8-9.80.i386.rpm
and add:
sendmail: ALL
to /etc/hosts.allow

By default sendmail has delivery from external hosts turned off, so to re-activiate, edit /etc/mail/sendmail.mc to change the line:

   From: DAEMON_OPTIONS(`Port=smtp,Addr=127.0.0.1, Name=MTA')
   To:   dnl DAEMON_OPTIONS(`Port=smtp,Addr=127.0.0.1, Name=MTA')
which effectively comments it out.

then do:

 m4 /etc/mail/sendmail.mc > /etc/mail/sendmail.cf
 /etc/init.d/sendmail restart
which should be enough. THERE NEEDS TO BE A FULLY QUALIFIED DOMAIN NAME IN /etc/hosts

I note that Mail -v pjeffrey@hotmail.com "looks" different outgoing on xray10 and xray2, namely on xray10 it cites 127.0.0.1 (localhost relay?) whereas on xray2 it cites mx.hotmail.com. The Linux boxes appear to relay off themselves (127.0.0.1) on the way out. Tested using Mail -v. Internal email only necessary, nevertheless they can deliver email directly to the outside world (e.g. hotmail) because they are their own SMTP servers. They probably cannot receive email directly.

TCP Wrappers

Enabled on Linux by default. Create /etc/hosts.allow and /etc/hosts.deny to manage this (a "sensible" hosts.allow doesn't appear to allow for vpn connections, however).

/etc/hosts.allow:

#
# hosts.allow   This file describes the names of the hosts which are
#               allowed to use the local INET services, as decided
#               by the '/usr/sbin/tcpd' server.
#
#ALL: LOCAL .mskcc.org 140.163.
ALL: .princeton.edu, .redhat.com
sendmail: ALL

/etc/hosts.deny:

#
# hosts.deny    This file describes the names of the hosts which are
#               *not* allowed to use the local INET services, as decided
#               by the '/usr/sbin/tcpd' server.
#
# The portmap line is redundant, but it is left to remind you that
# the new secure portmap uses hosts.deny and hosts.allow.  In particular
# you should know that NFS uses portmap!

ALL: ALL

FTP Access Control

The file /etc/ftpaccess, which appears to be a new feature, controls FTP permissions to the Linux wu-ftpd demon. By default the lines:
allow-uid ftp
allow-gid ftp
inhibit FTP access for anyone other than user/group ID FTP. So I changed them to:
allow-uid *
allow-gid *
Note in particular the deny lines in this file:
deny-uid %-99 %65534-
deny-gid %-99 %65534-
which you may have to modify for other purposes.

OTHER STUFF

A "full" list of RPMs

At the bottom of all this since the list is rather long ;) From xray1 running RedHat 8.0 kernel 2.4.20-24.8. Use rpm -qa | sort for your own list. If you use rpm -qa -list you get a list of every single file. Valid as of Dec 21st 2003.
a2ps-4.13b-24
abiword-1.0.2-6
alchemist-1.0.24-4
anacron-2.3-23
apmd-3.0.2-12
ark-3.0.3-3
arts-1.0.3-1
arts-devel-1.0.3-1
ash-0.3.8-5
aspell-0.33.7.1-16
at-3.1.8-31
atk-1.0.3-1
audiofile-0.2.3-3
audiofile-devel-0.2.3-3
aumix-2.7-12
authconfig-4.2.12-3
autoconf-2.53-8
autofs-3.1.7-33
automake-1.6.3-1
autorun-3.3-3
awesfx-0.4.3a-11
balsa-1.2.4-8
basesystem-8.0-1
bash-2.05b-5.1
bc-1.06-10
bdflush-1.5-21
bind-utils-9.2.1-9
binutils-2.13.90.0.2-2
bison-1.35-4
bitmap-fonts-0.2-2
blt-2.4u-7
bonobo-1.0.20-3
bonobo-activation-1.0.3-2
bonobo-devel-1.0.20-3
bug-buddy-2.2.0-2
byacc-1.9-22
bzip2-1.0.2-5
bzip2-devel-1.0.2-5
bzip2-libs-1.0.2-5
Canna-3.5b2-70
Canna-libs-3.5b2-70
cdda2wav-1.10-14
cdecl-2.5-25
cdlabelgen-2.3.0-3
cdp-0.33-25
cdparanoia-alpha9.8-11
cdparanoia-libs-alpha9.8-11
cdrecord-1.10-14
cdrecord-devel-1.10-14
chkconfig-1.3.6-3
chkfontpath-1.9.6-3
chromium-0.9.12-20
cipe-1.4.5-11
compat-db-3.3.11-2
compat-libstdc++-7.3-2.96.110
compat-pwdb-0.61.2-3
comps-8.0-0.20020910
comps-extras-8.0-3
control-center-2.0.1-8
cpio-2.4.2-28
cpp-3.2-7
cracklib-2.7-18
cracklib-dicts-2.7-18
crontabs-1.10-4
ctags-5.2.3-4
cups-libs-1.1.15-10
curl-7.9.8-1
curl-devel-7.9.8-1
cvs-1.11.2-5
cyrus-sasl-2.1.10-1
cyrus-sasl-devel-2.1.10-1
cyrus-sasl-md5-2.1.10-1
cyrus-sasl-plain-2.1.10-1
db4-4.0.14-14
db4-devel-4.0.14-14
db4-utils-4.0.14-14
ddd-3.3.1-19
desktop-backgrounds-basic-2.0-10
desktop-file-utils-0.3-3
dev-3.3.1-2
dev86-0.16.3-4
dhcpcd-1.3.18pl8-13
dia-0.90-8
dialog-0.9b-20020519.1
diffstat-1.28-4
diffutils-2.8.1-3
docbook-dtds-1.0-14
docbook-style-dsssl-1.76-6
docbook-utils-0.6.11-2
docbook-utils-pdf-0.6.11-2
dos2unix-3.1-12
dosfstools-2.8-3
doxygen-1.2.14-8
dump-0.4b28-4
e2fsprogs-1.27-9
e2fsprogs-devel-1.27-9
ed-0.2-28
ee-0.3.12-5
eel-1.0.2-2
eel2-2.0.6-1
efax-0.9-16
eject-2.0.12-7
ElectricFence-2.2.2-11
elinks-0.3.2-1
emacs-21.2-18
eog-1.0.2-3
esound-0.2.28-1
esound-devel-0.2.28-1
exmh-2.4-5
expat-1.95.4-1
expat-devel-1.95.4-1
extace-1.5.1-3
f2c-20000510-5
fam-2.6.8-4
fam-devel-2.6.8-4
fetchmail-5.9.0-21.8.0
file-3.39-9
file-roller-2.0.0-1
filesystem-2.1.6-5
fileutils-4.1.9-11.2
findutils-4.1.7-7
finger-0.17-14
firewall-config-0.95-4
flex-2.5.4a-26
fontconfig-2.0-3
foomatic-1.9-1.20020617.6
fort77-1.18-7
fortune-mod-1.0-24
freeciv-1.13.0-2
freetype-2.1.2-7
freetype-devel-2.1.2-7
fsplit-5.5-1
ftp-0.17-15
gail-0.17-2
gaim-0.59.1-2
gal-0.19.2-4
galeon-1.2.5-6
gawk-3.1.1-4
gcc-3.2-7
gcc-c++-3.2-7
gcc-g77-3.2-7
gcc-objc-3.2-7
GConf-1.0.9-6
GConf2-1.2.1-3
GConf-devel-1.0.9-6
gd-1.8.4-9
gdb-5.2.1-4
gdbm-1.8.0-18
gdbm-devel-1.8.0-18
gd-devel-1.8.4-9
gdk-pixbuf-0.18.0-4
gdk-pixbuf-devel-0.18.0-4
gdk-pixbuf-gnome-0.18.0-4
gdm-2.4.0.7-14
gedit-2.0.2-5
gettext-0.11.4-3
gftp-2.0.13-5
ghostscript-7.05-20.1
ghostscript-fonts-5.50-7
giftrans-1.12.2-15
gimp-1.2.3-9
gimp-devel-1.2.3-9
gimp-print-4.2.1-5
gkrellm-1.2.13-1
glade-0.6.4-7
glib-1.2.10-8
glib2-2.0.6-2
glibc-2.3.2-4.80.8
glibc-common-2.3.2-4.80.8
glibc-devel-2.3.2-4.80.8
glibc-kernheaders-2.4-7.20
glib-devel-1.2.10-8
Glide3-20010520-19
glut-3.7-8
gmc-4.5.51-36
gmp-4.1-4
gmp-devel-4.1-4
gnome-applets-2.0.1-6
gnome-audio-1.4.0-4
gnome-audio-extra-1.4.0-4
gnome-desktop-2.0.6-4
gnome-games-2.0.3-2
gnome-libs-1.4.1.2.90-22
gnome-libs-devel-1.4.1.2.90-22
gnome-media-2.0.0-9
gnome-mime-data-2.0.0-9
gnome-panel-2.0.6-9
gnome-pim-1.2.0-13
gnome-pim-devel-1.2.0-13
gnome-print-0.35-8
gnome-python2-1.99.11-8
gnome-python2-bonobo-1.99.11-8
gnome-python2-canvas-1.99.11-8
gnome-python2-gtkhtml2-1.99.11-8
gnome-session-2.0.5-7
gnome-system-monitor-2.0.0-2
gnome-terminal-2.0.1-5
gnome-user-docs-2.0.0-1
gnome-utils-2.0.2-5
gnome-vfs-1.0.5-6
gnome-vfs2-2.0.2-5
gnome-vfs-extras-0.2.0-3
gnuchess-5.02-9
gnumeric-1.0.9-2
gnupg-1.0.7-14
gnupg-1.0.7-8
gphoto-0.4.3-13
gpm-1.19.3-23
gpm-devel-1.19.3-23
gq-0.4.0-3
gqmpeg-0.12.0-1
gqview-1.0.2-2
grep-2.5.1-4
groff-1.18-6
groff-perl-1.18-6
grub-0.92-7
gsm-1.0.10-3
gsm-devel-1.0.10-3
gtk+-1.2.10-22
gtk2-2.0.6-8
gtk+-devel-1.2.10-22
gtk-engines-0.11-13
gtkhtml-1.0.4-3.1
gtkhtml2-2.0.1-2
guile-1.4-8
gv-3.5.8-18
gzip-1.3.3-5
hdparm-5.2-1
hesiod-3.0.2-21
hotplug-2002_04_01-13
htdig-3.2.0-7.20020505
htmlview-2.0.0-6
httpd-2.0.40-8
hwbrowser-0.6-1
hwdata-0.47-1
ical-2.2-25
ImageMagick-5.4.7-5
imlib-1.9.13-9
imlib-cfgeditor-1.9.13-9
imlib-devel-1.9.13-9
indent-2.2.8-3
indexhtml-8.0-1
info-4.2-5
initscripts-6.95-1
intel-ifc-5.0.1-82
intel-ldb-5.0.1-118
intltool-0.22-3
ipchains-1.3.10-16
iproute-2.4.7-7.80.1
iptables-1.2.8-8.80.2
iputils-20020124-8
isdn4k-utils-3.1-58
jadetex-3.12-6
joystick-1.2.15-13
kaboodle-3.0.3-4
kbd-1.06-26
kbdconfig-1.9.16-1
kcalc-3.0.3-3
kcharselect-3.0.3-3
kcoloredit-3.0.3-5
kdbg-1.2.4-9
kdeaddons-kate-3.0.3-1
kdeaddons-kicker-3.0.3-1
kdeaddons-konqueror-3.0.3-1
kdeaddons-noatun-3.0.3-1
kdeadmin-3.0.3-3
kdeartwork-3.0.3-3
kdeartwork-locolor-3.0.3-3
kdebase-3.0.3-13
kdebindings-3.0.3-1
kdebindings-kmozilla-3.0.3-1
kdegames-3.0.3-3
kdelibs-3.0.3-8.3
kdelibs-devel-3.0.3-8.3
kdemultimedia-arts-3.0.3-4
kdemultimedia-kfile-3.0.3-4
kdemultimedia-libs-3.0.3-4
kdenetwork-libs-3.0.3-3.2
kdepasswd-3.0.3-3
kdepim-3.0.3-3
kdesdk-devel-2.2.2-1
kdesdk-kapptemplate-3.0.3-2
kdesdk-kbabel-3.0.3-2
kdesdk-kbugbuster-3.0.3-2
kdesdk-kmtrace-3.0.3-2
kdesdk-kompare-3.0.3-2
kdesdk-kspy-3.0.3-2
kdessh-3.0.3-3
kdetoys-3.0.3-1
kdeutils-laptop-3.0.3-3
kdevelop-2.1.3-3
kdf-3.0.3-3
kdict-3.0.3-3
kdoc-3.0.0-2.cvs20020321.3
kdvi-3.0.3-5
kedit-3.0.3-3
kernel-2.4.18-14
kernel-smp-2.4.20-24.8
kernel-source-2.4.20-24.8
kfax-3.0.3-5
kfloppy-3.0.3-3
kfract-3.0.3-5
kghostview-3.0.3-5
khexedit-3.0.3-3
kiconedit-3.0.3-5
kit-3.0.3-3.2
kjots-3.0.3-3
kljettool-3.0.3-3
klpq-3.0.3-3
klprfax-3.0.3-3
kmail-3.0.3-3.2
kmid-3.0.3-4
kmidi-3.0.3-4
kmix-3.0.3-4
knewsticker-3.0.3-3.2
knode-3.0.3-3.2
koffice-1.2-0.rc1.4
korn-3.0.3-3.2
kpaint-3.0.3-5
kpf-3.0.3-3.2
kppp-3.0.3-3.2
kpppload-1.04-43
krb5-devel-1.2.5-15
krb5-libs-1.2.5-15
krbafs-1.1.1-6
krbafs-devel-1.1.1-6
kregexpeditor-3.0.3-3
kregexpeditor-devel-3.0.3-3
kruler-3.0.3-5
kscd-3.0.3-4
ksirc-3.0.3-3.2
ksnapshot-3.0.3-5
ksymoops-2.4.5-1
ktalkd-3.0.3-3.2
ktimer-3.0.3-3
kudzu-0.99.69-1
kudzu-devel-0.99.69-1
kuickshow-3.0.3-5
kview-3.0.3-5
kviewshell-3.0.3-5
kxmlrpcd-3.0.3-3.2
less-358-28
lesstif-0.93.18-5
lesstif-devel-0.93.18-5
lha-1.14i-7
libacl-2.0.11-2
libao-0.8.3-1
libao-devel-0.8.3-1
libart_lgpl-2.3.10-1
libattr-2.0.8-3
libbonobo-2.0.0-4
libbonoboui-2.0.1-2
libcap-1.10-12
libcapplet0-1.4.0.1-9
libelf-0.8.2-2
libesmtp-0.8.12-2
libf2c-3.2-7
libgal19-0.19.2-4
libgal7-0.8-6
libgcc-3.2-7
libgcj-3.2-7
libghttp-1.0.9-5
libghttp-devel-1.0.9-5
libglade-0.17-8
libglade2-2.0.0-2
libglade-devel-0.17-8
libgnome-2.0.2-5
libgnomecanvas-2.0.2-1
libgnomeprint-1.116.0-2
libgnomeprint15-0.35-8
libgnomeprintui-1.116.0-1
libgnomeui-2.0.3-3
libgtop-1.0.12-11
libgtop2-2.0.0-3
libgtop-devel-1.0.12-11
libIDL-0.8.0-3
libjpeg-6b-21
libjpeg-devel-6b-21
libkscan-3.0.3-5
libmng-1.0.4-1
libmng-devel-1.0.4-1
libobjc-3.2-7
libogg-1.0-1
libogg-devel-1.0-1
libole2-0.2.4-4
libpcap-0.6.2-16
libpng10-1.0.13-6
libpng-1.2.2-8
libpng-devel-1.2.2-8
librep-0.16-3
librep-devel-0.16-3
librpm404-4.0.4-8x.27
librsvg-1.0.2-5
librsvg2-2.0.1-1
libstdc++-3.2-7
libstdc++-devel-3.2-7
libtermcap-2.0.8-31
libtermcap-devel-2.0.8-31
libtiff-3.5.7-7
libtiff-devel-3.5.7-7
libtool-1.4.2-12
libtool-libs-1.4.2-12
libungif-4.1.0-13
libungif-devel-4.1.0-13
libunicode-0.4-9
libunicode-devel-0.4-9
libusb-0.1.6-1
libuser-0.51.1-2
libvorbis-1.0-1
libvorbis-devel-1.0-1
libwnck-0.17-1
libwvstreams-3.70-5
libxml-1.8.17-5
libxml2-2.4.23-1
libxml2-python-2.4.23-1
libxml-devel-1.8.17-5
libxslt-1.0.19-1
licq-1.2.0a-2
licq-gnome-1.2.0a-2
licq-kde-1.2.0a-2
lilo-21.4.4-20
linc-0.5.2-2
linuxdoc-tools-0.9.20-3
lisa-3.0.3-3.2
lm_sensors-2.6.3-2
lockdev-1.0.0-20
lockdev-devel-1.0.0-20
logrotate-3.6.5-2
logwatch-2.6-8
lokkit-0.50-18
losetup-2.11r-10
LPRng-3.8.9-6
lrzsz-0.12.20-14
lsof-4.63-2
ltrace-0.3.10-12
lv-4.49.4-7.80.1
lvm-1.0.3-9
m4-1.4.1-11
Maelstrom-3.0.5-5
magicdev-1.1.3-1
mailcap-2.1.12-1
mailx-8.1.1-26
make-3.79.1-14
MAKEDEV-3.3.1-2
man-1.5k-0.8x.0
man-pages-1.53-1
mc-4.5.55-12
memprof-0.5.0-2
Mesa-demos-3.4.2-10
metacity-2.4.0.92-5
metamail-2.7-28
micq-0.4.6.p1-2
mikmod-3.1.6-17
mingetty-1.00-3
minicom-2.00.0-6
mkbootdisk-1.4.8-1
mkinitrd-3.4.28-1
mkisofs-1.10-14
mktemp-1.5-16
mm-1.1.3-1
mm-devel-1.1.3-1
modutils-2.4.18-2
mount-2.11r-10
mouseconfig-4.26-1
mozilla-1.0.1-24
mozilla-mail-1.0.1-24
mozilla-nspr-1.0.1-24
mozilla-nss-1.0.1-24
mozilla-psm-1.0.1-24
mpage-2.5.2-4
mpg321-0.2.9-2.5
mtools-3.9.8-5
mutt-1.4.1-0.8.x
nautilus-2.0.6-6
ncftp-3.1.3-6
ncompress-4.2.4-31
ncurses-5.2-28
ncurses-devel-5.2-28
netatalk-1.5.3.1-4
netcdf-3.5.0-1
netconfig-0.8.12-3
netpbm-9.24-9.80.2
netpbm-devel-9.24-9.80.2
netpbm-progs-9.24-9.80.2
netscape-common-4.78-2
netscape-communicator-4.78-2
net-snmp-5.0.1-6
net-tools-1.60-7
newt-0.51.0-1
newt-devel-0.51.0-1
nfs-utils-1.0.1-2.80
njamd-0.9.2-5
nkf-1.92-11
nmap-3.00-1
nmap-frontend-3.00-1
nmh-1.0.4-15
noatun-3.0.3-4
nscd-2.2.93-5
nss_ldap-198-3
ntp-4.1.1a-9
ntsysv-1.3.6-3
Numeric-22.0-1
oaf-0.6.9-2
oaf-devel-0.6.9-2
Omni-0.7.0-6
Omni-foomatic-0.7.0-6
openjade-1.3.1-9
openldap-2.0.25-1
openldap-clients-2.0.25-1
openldap-devel-2.0.25-1
openmotif-2.2.2-12
openssh-3.4p1-7
openssh-askpass-3.4p1-7
openssh-askpass-gnome-3.4p1-7
openssh-clients-3.4p1-7
openssh-server-3.4p1-7
openssl-0.9.6b-35.8
openssl-devel-0.9.6b-35.8
ORBit-0.5.13-5
ORBit2-2.4.1-1
ORBit-devel-0.5.13-5
orbit-python-1.99.0-4
pam-0.75-46.8.0
pam-devel-0.75-46.8.0
pam_krb5-1.56-1
pam_smb-1.1.6-9.8
pan-0.13.4-1
pango-1.1.1-1
parted-1.4.24-6
passwd-0.67-3
patch-2.5.4-14
pax-3.0-4
pciutils-2.1.10-2
pciutils-devel-2.1.10-2
pcre-3.9-5
pcre-devel-3.9-5
perl-5.8.0-88.3
perl-CGI-2.81-88.3
perl-CPAN-1.61-88.3
perl-DateManip-5.40-27
perl-DB_File-1.804-88.3
perl-Filter-1.28-9
perl-HTML-Parser-3.26-14
perl-HTML-Tagset-3.03-25
perl-libwww-perl-5.65-2
perl-libxml-enno-1.02-25
perl-libxml-perl-0.07-25
perl-Parse-Yapp-1.05-26
perl-SGMLSpm-1.03ii-6
perl-URI-1.21-3
perl-XML-Dumper-0.4-22
perl-XML-Encoding-1.01-20
perl-XML-Grove-0.46alpha-21
perl-XML-Parser-2.31-12
perl-XML-Twig-3.05-3
pidentd-3.0.14-8
pilot-link-0.11.3-3
pilot-link-devel-0.11.3-3
pine-4.44-19.80.0
pinfo-0.6.4-7
pkgconfig-0.12.0-3
playmidi-2.4-16
pmake-1.45-8
pnm2ppa-1.04-5
popt-1.7-1.06
portmap-4.0-46
povray-3.1g-8
ppp-2.4.1-7
procinfo-18-5
procmail-3.22-7
procps-2.0.7-25
psgml-1.2.3-5
psmisc-20.2-6
pspell-0.12.2-14
psutils-1.17-17
pygnome-1.4.1-3
pygnome-libglade-1.4.1-3
pygtk-0.6.8-3
pygtk2-1.99.12-7
pygtk2-libglade-1.99.12-7
pygtk-libglade-0.6.8-3
pyOpenSSL-0.5.0.91-1
python-2.2.1-17
python2-tkinter-2.2.1-1
python-devel-2.2.1-17
python-docs-2.2.1-17
python-mmtk-2.2-1
python-numeric-17.3.0-1
python-optik-1.3-2
python-popt-0.8.8-7.x.2
python-scientific-2.4-1
python-tools-2.2.1-17
python-xmlrpc-1.5.1-7.x.3
pyxf86config-0.3.1-2
PyXML-0.7.1-6
qt2-2.3.1-8
qt-3.0.5-17
qt-designer-3.0.5-17
qt-devel-3.0.5-17
quota-3.06-5
radvd-0.7.1-3
raidtools-1.00.2-3.3
rcs-5.7-18
rdate-1.2-5
readline-4.3-3
readline-devel-4.3-3
redhat-artwork-0.47-3
redhat-config-date-1.5.2-10
redhat-config-kickstart-2.3.3-3
redhat-config-language-1.0.1-6
redhat-config-network-1.1.20-1
redhat-config-packages-1.0.1-1
redhat-config-printer-0.4.24-1
redhat-config-printer-gui-0.4.24-1
redhat-config-services-0.8.2-1
redhat-config-users-1.1.1-2
redhat-config-xfree86-0.6.7-1
redhat-logos-1.1.6-2
redhat-menus-0.26-1
redhat-release-8.0-8
reiserfs-utils-3.6.2-2
rep-gtk-0.16.0.90-4
rhn-applet-2.0.0-28
rhnlib-1.0-1
rhpl-0.51-1
rmt-0.4b28-4
rootfiles-7.2-4
rpm404-python-4.0.4-8x.27
rpm-4.1-1.06
rpm-build-4.1-1.06
rpm-devel-4.1-1.06
rpm-python-4.1-1.06
rp-pppoe-3.4-7
rsh-0.17-10
rsh-server-0.17-10
rsync-2.5.7-0.8
rusers-0.17-21
rwho-0.17-16
samba-2.2.7-5.8.0
samba-client-2.2.7-5.8.0
samba-common-2.2.7-5.8.0
sane-backends-1.0.8-5.2
sane-backends-devel-1.0.8-5.2
sane-frontends-1.0.8-4
sawfish-2.0-4
ScientificPython-2.4-1
screen-3.9.11-10
scrollkeeper-0.3.10-7
SDL-1.2.4-5
SDL_image-1.2.2-3
SDL_mixer-1.2.4-5
SDL_net-1.2.4-3
sed-3.02-13
sendmail-8.12.8-9.80
sendmail-cf-8.12.8-9.80
setserial-2.17-9
setup-2.5.20-1
setuptool-1.10-1
sgml-common-0.6.3-12
shadow-utils-20000902-12.8
sharutils-4.2.1-12
sh-utils-2.0.12-3
slang-1.4.5-11
slang-devel-1.4.5-11
slocate-2.6-4
smpeg-0.4.4-3
sndconfig-0.69-1
sox-12.17.3-7
splint-3.0.1.6-3
stat-3.3-4
statserial-1.1-30
strace-4.4-8
stunnel-3.26-1.8.0
sudo-1.6.6-1
swig-1.1p5-20
switchdesk-3.9.8-9
switchdesk-gnome-3.9.8-9
switchdesk-kde-3.9.8-9
symlinks-1.2-16
sysklogd-1.4.1-10
syslinux-1.75-3
SysVinit-2.84-5
talk-0.17-17
tar-1.13.25-8
tcl-8.3.3-74
tcp_wrappers-7.6-23
tcsh-6.12-2
telnet-0.17-23
telnet-server-0.17-23
termcap-11.0.1-13
tetex-1.0.7-57.1
tetex-afm-1.0.7-57
tetex-dvilj-1.0.7-38.2
tetex-dvips-1.0.7-57.1
tetex-fonts-1.0.7-57
tetex-latex-1.0.7-57
tetex-xdvi-1.0.7-57
texinfo-4.2-5
textutils-2.0.21-5
time-1.7-19
timeconfig-3.2.9-1
timidity++-2.11.3-4
tix-8.2.0b1-74
tk-8.3.3-74
tkinter-2.2.1-17
tmpwatch-2.8.4-3
traceroute-1.4a12-6
tree-1.2-20
ttfonts-1.0-4
ttfonts-ja-1.2-16
tuxracer-0.61-16
umb-scheme-3.2-25
units-1.74-4
unix2dos-2.2-17
unzip-5.50-32
up2date-3.0.7.2-1
up2date-gnome-3.0.7.2-1
urw-fonts-2.0-26
usbutils-0.9-7
usbview-1.0-7
usermode-1.63-1
usermode-gtk-1.63-1
utempter-0.5.2-10
util-linux-2.11r-10
VFlib2-2.25.6-8
VFlib2-devel-2.25.6-8
vim-common-6.1-14
vim-minimal-6.1-14
vixie-cron-3.0.1-69
vorbis-tools-1.0-1
vte-0.8.19-1
w3c-libwww-5.4.0-1
watanabe-vf-1.0-8
wget-1.8.2-5
which-2.14-1
whois-1.0.10-4
wine-20030813-1rh8winehq
words-2-20
wu-ftpd-2.6.2-12
wvdial-1.53-7
Xaw3d-1.5-16
Xaw3d-devel-1.5-16
xawtv-3.74-4
xbill-2.0-15
xboard-4.2.6-3
xcdroast-0.98alpha9-1
xchat-1.8.10-8
xdelta-1.1.3-7
XFree86-100dpi-fonts-4.2.1-23
XFree86-4.2.1-23
XFree86-75dpi-fonts-4.2.1-23
XFree86-base-fonts-4.2.1-23
XFree86-devel-4.2.1-23
XFree86-font-utils-4.2.1-23
XFree86-ISO8859-15-100dpi-fonts-4.2.1-23
XFree86-ISO8859-15-75dpi-fonts-4.2.0-72
XFree86-libs-4.2.1-23
XFree86-Mesa-libGL-4.2.1-23
XFree86-Mesa-libGLU-4.2.1-23
XFree86-tools-4.2.1-23
XFree86-truetype-fonts-4.2.1-23
XFree86-twm-4.2.1-23
XFree86-xauth-4.2.1-23
XFree86-xdm-4.2.1-23
XFree86-xfs-4.2.1-23
Xft-2.0-1
xinetd-2.3.11-1.8.0
xinitrc-3.31-1
xisdnload-1.38-58
xloadimage-4.1-24
xml-common-0.6.3-12
xmms-1.2.7-13.p
xpdf-1.01-12
xpilot-4.3.2-2
xsane-0.84-8
xscreensaver-4.05-6
xsnow-1.42-8
xsri-2.1.0-3
yelp-1.0.2-2
ymessenger-0.99.19-1
ypbind-1.11-2
yp-tools-2.7-3
zip-2.3-14
zlib-1.1.4-8.8x
zlib-devel-1.1.4-8.8x
4Suite-0.11.1-10