University of Manchester
Department of Computer Science

JTL's Red Hat Resources


This page is home to a small mixed bag of Red Hat Linux (http://www.redhat.com) resources and tips.

Contents


AnotherLevelUp fvwm2 configuration

AnotherLevelUp is a much improved replacement for Red Hat's popular AnotherLevel desktop. Go here for details.


Startx Server fix and automatic display choice

/usr/X11R6/bin/startx has recently had bugs fixed, but is still not right (you cannot specify a server on the command line, if one is set already in system or user files, or you cannot specify both a server and a display...). The current version (from RH6.2) is a bug fix for a version (RH6.0) which was a bug fix from the previous... Doh!! I guess it's the usual story: we all underestimate the sting of simple roses, while we put our effort into grasping the nettles. Errr, yes.

Meanwhile, here is a version of /usr/X11R6/bin/startx which actually works as it should (I think...). In addition, it has the nice feature of choosing the next available display if one is not specified (rather than always going for display :0). This makes it easy as pie to have more than one X login in at once from different virtual consoles. Get it here, and copy it over /usr/X11R6/bin/startx.


Fvwm2 FvwmTaskBar fix

This is only interesting if you want a bug fixed replacement for FVWM2 for Red Hat 6.2 -- later distributions have this bug already fixed.

Here are RPMs for a bug-fixed fvwm2-2.2.4 installation (compared with the Red Hat 6.2 distribution). The bugs fixed pertain to FvwmTaskBar.

The new RPMs have been made using a patch file, and a new spec file, available from the table below. You can use the patch, with the supplied new spec file, to build these RPMs yourself (simply copy the spec file to /usr/src/redhat/SPECS, and the patch file to /usr/src/redhat/SOURCES; and then run rpm -ba /usr/src/redhat/SPECS/fvwm2.spec). Or, you can download the RPMs directly from here. (BTW, the fvwm2-icons-2.2.4-4jtl.i386.rpm should not be any different from the fvwm2-icons-2.2.4-4.i386.rpm already installed in Red Hat 6.2; so you probably can skip that one without worrying).

fvwm-2.2.4-jtl.patch
fvwm2.spec
fvwm2-2.2.4-4jtl.i386.rpm
fvwm2-icons-2.2.4-4jtl.i386.rpm
fvwm2-2.2.4-4jtl.src.rpm


Netscape Wrapper

This is a simple wrapper script mainly for cleaning up after netscape leaves lock and core files. But it can be used to wrap any program. When this script receives a signal 1, 2, 3 or 15; it will send that signal and then signals 1, 2, 3, 15 and 9 (except for the signal sent first) at 3 second intervals to the wrapped program, until it dies. Then it will clean up a lock file, if required, and a core file, if required.

Get it from here.

Note: this script is included in the M.U.C.S. dotfiles package below.

Usage

Place the script in a directory anywhere earlier in the PATH than the program you want it to wrap, and give it the same name. /usr/local/bin is an obvious place for many setups, but make sure that really is earlier than the real program. You can find this out by typing, for example

echo $PATH
which netscape
Any other programs you also want it to wrap can simply each have a symbolic link to this file, of the same name as the wrapped program. This wrapper should find the real program to wrap from $0 and by manipulating $PATH to temporarily remove the place where this wrapper is put. The wrapped program must appear on the PATH, and no other copy of the wrapper may appear in the PATH (that would lead to recursive calls!)

M.U.C.S. Standard Dotfiles

Here are RPMs for getting the Manchester University, Department of Computer Science, standard dotfiles set up on your own Linux machine. This version is suitable for a file store which is used for Linux only (although it may still contain some of the SunOs and Solaris files).

Latest version 090909-2 (a date).

No-arch RPM (32K)

Source RPM (32K)

Once you have installed this, you will need each user to run the following command in order to get the new dotfiles.

/usr/local/bin/copybashdotfiles

The user should then log out and back in again.

Please note: this package requires you to have installed AnotherLevelUp -- Get it from here. You can override this (with --nodeps) but it will then not work completely correctly (e.g. the switchdesk will offer AnotherLevelUp, but deliver only Red Hat's AnotherLevel at best).


Tip: automatic login on boot up

Have you ever wondered if you could get linux to log you in immediately after booting up, so you could switch on your machine, go to the kettle, and come back ready to work?

Interesting idea, but isn't it insecure? Well that depends. If your machine is your own, and there is no insecure access to the console, then what is the problem? If you have a lap top, then its a very good idea to enable the bios bootup password. So, assuming (within reason) that only you can get a boot prompt, then that should be enough security for a console login.

Okay, so how can you do it? Here's the simple way, to always login a specified user on virtual console 1. This works fine with text logins which is always my preferred setup thanks to the flexibility. I don't know how to do it if you're using X logins.

In the file /etc/inittab find the line

1:2345:respawn:/sbin/mingetty tty1
comment it out (#), and add the following line instead (replacing jtl with your username).
1:2345:respawn:/usr/bin/open -c 1 -w -- /bin/login -f jtl

Now, on reboot it will log that user in automatically without the need for a password. If you use the standard M.U.C.S. dotfiles, you'll probably also want to disable window manager prompting on login, for that user. Create or edit the file $HOME/.my_bash_profile_prelude.linux to contain the line:

LinuxOfferWindowManagerChoice=False

We can go one better than this. What if sometimes you want to boot up without the automatic login, sometimes with automatic login as one user, sometimes as another etc.? This can be achieved by having several lilo entries in your /etc/lilo.conf file, each setting a different value to an environment variable; and getting /etc/inittab to run a script which reads that value. For example your modified entry in /etc/inittab could be:

1:2345:respawn:/root/bin/init-vc-1
You would create the file /root/bin/init-vc-1 to contain the following, and make it executable.
#!/bin/sh
case "$AutoLogin" in
"") exec /sbin/mingetty tty1 ;;
*)  exec /usr/bin/open -c 1 -w -- /bin/login -f "$AutoLogin" ;;
esac
Finally, you would edit your /etc/lilo.conf to include several entries similar to below, using your root device and usernames of course! You would need to run lilo after making your changes.
image=/boot/vmlinuz-2.4.2-2
        label=linux
        read-only
        root=/dev/hda5

image=/boot/vmlinuz-2.4.2-2
        label=linux-jtl
        read-only
        root=/dev/hda5
        append="AutoLogin=jtl"

image=/boot/vmlinuz-2.4.2-2
        label=linux-john
        read-only
        root=/dev/hda5
        append="AutoLogin=john"

Easy CD writing

Probably the primary difference in philosophy between UNIX (Linux) and Windows is that the UNIX user wishes to have straightforward ways of doing simple and common things, without the need for a bloated user interface with a million buttons to press each time. Well, that's my view (and I do hate GNOME and KDE!!!).

Here is a script I use for fuss-free CD writing. It takes a number of directories as arguments, creates a CD image of them, mounts that CD image using a loop back device, lets you browse inside it with a shell to check its what you want, then when you exit that shell, it writes it to CD, and verifies the write! What more could you want?! :-)

Various simple options let you control whether blanking is done, how many copies to write, what image file to use, and whether or not the image file already exists, and even a verify only option.

You will need to tailor it to suit the position and speed of your CD Writer, and the name and path of your default image file. For the script to be usable by non root users, you will also need to add an entry to your /etc/fstab file -- see inside the script for a clue.

Get it here Note: there are control characters inside some of the strings in the script, so obtaining a copy via cut-and-paste from here is not recommended.

Bugs: it could really do with a bit of help for the options.