Next Previous Contents

3. Downloading and Upgrading the Packages

3.1 Finding Out What X is installed already

Now we are ready to find out what X packages your machine may have already been installed. The main reason for doing this is to save time by not downloading a lot of packages you have no need for.

To see what X packages you have installed, you will need to use the rpm command to query the database for all XFree86 packages. For example purposes, the output from two machines with Red Hat Linux 5.2 installed have been listed below. The first machine has a complete set of XFree86 packages installed, the second one has the minimum set. If you have any XFree86 packages installed on your machine, you should be somewhere in between.

Many XFree86 packages on a Red Hat Linux 5.2 machine

                
  $ rpm -qa | grep XFree86
  XFree86-libs-3.3.2.3-25
  XFree86-3.3.2.3-25
  XFree86-100dpi-fonts-3.3.2.3-25
  XFree86-75dpi-fonts-3.3.2.3-25
  XFree86-devel-3.3.2.3-25
  XFree86-ISO8859-2-1.0-1
  XFree86-ISO8859-2-100dpi-fonts-1.0-1
  XFree86-ISO8859-2-75dpi-fonts-1.0-1
  XFree86-ISO8859-2-Type1-fonts-1.0-1
  XFree86-ISO8859-9-2.1.2-1
  XFree86-ISO8859-9-100dpi-fonts-2.1.2-1
  XFree86-ISO8859-9-75dpi-fonts-2.1.2-1
  XFree86-VGA16-3.3.2.3-25
  XFree86-XF86Setup-3.3.2.3-25
  XFree86-Xnest-3.3.2.3-25
  XFree86-Xvfb-3.3.2.3-25
  XFree86-SVGA-3.3.2.3-25
              
              

Minimum XFree86 packages on a Red Hat Linux 5.2 machine

                
  $ rpm -qa | grep XFree86
  XFree86-libs-3.3.2.3-25
  XFree86-3.3.2.3-25
  XFree86-75dpi-fonts-3.3.2.3-25
  XFree86-VGA16-3.3.2.3-25
  XFree86-XF86Setup-3.3.2.3-25
  XFree86-SVGA-3.3.2.3-25
                
              

3.2 Downloading the Packages

Once you have an idea of what packages you need to upgrade or install, you should begin downloading them. There are several ways of doing this. The first is to download them one by one with a Web browser. Since I find Web browsers to not be useful for multiple downloads, I usually recommend using an FTP client program to connect to the updates site. In Linux, I use ncftp.

Here is an example download. The contents may be different when you look at the directory.


  $ ncftp -L updates.redhat.com
  NcFTP 2.4.3 (March 19, 1998), by Mike Gleason.
  Tip: Use the "more" command to view a remote file with your pager.

  Trying to connect to updates.redhat.com...
  ProFTPD 1.2.0pre1 Server (ProFTPD) [updates.redhat.com]
  Anonymous access granted, restrictions apply.
  updates2:/> cd 5.2/i386
  updates2:/5.2/i386> ls X*
  XFree86-100dpi-fonts-3.3.3.1-1.1.i386.rpm
  XFree86-3.3.3.1-1.1.i386.rpm
  XFree86-3DLabs-3.3.3.1-1.1.i386.rpm
  XFree86-75dpi-fonts-3.3.3.1-1.1.i386.rpm
  XFree86-8514-3.3.3.1-1.1.i386.rpm
  XFree86-AGX-3.3.3.1-1.1.i386.rpm
  XFree86-I128-3.3.3.1-1.1.i386.rpm
  XFree86-Mach32-3.3.3.1-1.1.i386.rpm
  XFree86-Mach64-3.3.3.1-1.1.i386.rpm
  XFree86-Mach8-3.3.3.1-1.1.i386.rpm
  XFree86-Mono-3.3.3.1-1.1.i386.rpm
  XFree86-P9000-3.3.3.1-1.1.i386.rpm
  XFree86-S3-3.3.3.1-1.1.i386.rpm
  XFree86-S3V-3.3.3.1-1.1.i386.rpm
  XFree86-SVGA-3.3.3.1-1.1.i386.rpm
  XFree86-VGA16-3.3.3.1-1.1.i386.rpm
  XFree86-W32-3.3.3.1-1.1.i386.rpm
  XFree86-XF86Setup-3.3.3.1-1.1.i386.rpm
  XFree86-Xnest-3.3.3.1-1.1.i386.rpm
  XFree86-Xvfb-3.3.3.1-1.1.i386.rpm
  XFree86-cyrillic-fonts-3.3.3.1-1.1.i386.rpm
  XFree86-devel-3.3.3.1-1.1.i386.rpm
  XFree86-libs-3.3.3.1-1.1.i386.rpm
  XFree86-xfs-3.3.3.1-1.1.i386.rpm

          

If you have problems with the download, you may want to use the get -C versus the mget version. This will cause ncftp to keep trying to download the RPMs until you have a complete version.

3.3 What do all these packages mean


XFree86 Package
Purpose
XFree86This package contains the basic fonts, programs, anddocumentation for an X workstation.
XFree86-75dpi-fontsThis package contains extra fonts used on most Linuxsystems.
XFree86-VGA16This package contains the basic 16 color 640x480 XFree86 server. It is needed by XF86Setup and can be used for most video cards if no other server is available.
XFree86-XF86SetupXF86Setup is a graphical configuration tool. With XF86Setup, you can configure video settings, keyboard layouts, etc. It is mainly a frontend to the xf86config program.
XFree86-libsXFree86-libs contains shared libraries many X programs need to run correctly. They are contained in a seperate package to reduce the disk space needed to run X applications without an X server.
XFree86 Packages that are required to be installed


XFree86-3DLabs
Server for cards containing Creative Labs 3D chipset.
XFree86-8514Server for older IBM 8514 and compatible video cards
XFree86-AGXX server for AGX based cards such as those found in various Boca, Orchid, Spider, and Hercules.
XFree86-I128Server for the various Number 9 Imagine 128 cards.
XFree86-Mach32Server for cards based on the ATI Mach 32 chipset
XFree86-Mach64Server for cards based on the ATI Mach64 chipset
XFree86-Mach8Server for cards based on the ATI Mach8 chipset
XFree86-Mono2 color (black and white) card that will function on most VGA compatible cards. This is a useful server for very old machines with limited memory resources.
XFree86-P9000Server for cards with the Weitek P9000 chipset.
XFree86-S3X server for the many cards built around the S3chipset.
XFree86-S3VX server for the many cards built around the S3 Virgechipset.
XFree86-SVGAX server for most simple framebuffer SVGA chipsets.
XFree86-W32Server built around the ET4000/W32 chipset. Most cards now use the SVGA server, but some may work better with this server.
XFree86 Server Packages


XFree86-100dpi-fonts
100dpi fonts. Users with high resolution display may prefer these fonts.
XFree86-cyrillic-fontsCyrillic fonts.
XFree86-develLibraries, header files, and documentation for developing and compiling X programs.
XFree86-XnestX server which runs in an X window.
XFree86-XvfbVirtual framebuffer X server
XFree86-xfsThis is a font server for XFree86. You can serve fonts to other X servers remotely with this package, and the remote system will be able to use all fonts installed on the font server, even if they are not installed on the remote computer.
Optional Packages

3.4 Important for non Red Hat Linux 5.2 users:

If you have not gotten any updates from the ftp site for your system before, you will most likely need to upgrade the rpm package before you will be able to confirm or install the new RPMs.

The methodology for this upgrade is pretty simple. Check what version of RPM you have installed. Compare that version number against any updates on the ftp site. If the ftp site has a later version, you will need to download it and upgrade the package. Or in a nutshell:


              $ rpm -q rpm rpm-devel
              rpm-2.5.5-5.2
              rpm-devel-2.5.5-5.2
              $ ncftp updates.redhat.com
              > cd 5.2/i386
              > get rpm*
              > quit
              $ rpm -Uvh rpm*rpm

            

If the versions are very very different (upgrading 2.3 to 2.5 or something like that) I recommend that you also do the following after the upgrade.

              $ rpm --rebuilddb
            

This last step should fix any "problems" between database layouts of the different versions (or in case one of the databases had become corrupt.) It will usually take a while to complete this rewrite as it is doing a very low level RPM task.

3.5 Confirming the RPMs

One of the most annoying things to occur is if you download an RPM package and it was corrupted sometime during the download. In the case of a kernel upgrade, this problem is more than annoying as you could find yourself with an unbootable machine.

In order to make a system administrator's life easier, RPM has ways to check that the rpm meets self consistency. To do this, we use the -K --nopgp options. On my Red Hat Linux 5.2 system, we downloaded the packages and got the following responce from RPM.


   $ rpm -K --nopgp *rpm
   XFree86-100dpi-fonts-3.3.3.1-1.1.i386.rpm: size md5 OK
   XFree86-3.3.3.1-1.1.i386.rpm: size md5 OK
   XFree86-75dpi-fonts-3.3.3.1-1.1.i386.rpm: size md5 OK
   XFree86-SVGA-3.3.3.1-1.1.i386.rpm: size md5 OK
   XFree86-VGA16-3.3.3.1-1.1.i386.rpm: size md5 OK
   XFree86-XF86Setup-3.3.3.1-1.1.i386.rpm: size md5 OK
   XFree86-cyrillic-fonts-3.3.3.1-1.1.i386.rpm: size md5 OK
   XFree86-devel-3.3.3.1-1.1.i386.rpm: size md5 OK
   XFree86-libs-3.3.3.1-1.1.i386.rpm: size md5 OK

            

If all the RPMs have correct md5sums, then you should be able to continue on. If not, try downloading again. In my experience, if you are getting repeated failures to try a different mirror, as the problem may be with the network connection to that site or some sort of transparent caching device that is keeping the "bad" copy resident.

3.6 Now to the Upgrade

Once you have all the packages installed it is a simple matter of running rpm and upgrading your existing packages.

            rpm -Uvh --force XFree86*

XFree86-VGA16               ##################################################
XFree86-libs                ##################################################
XFree86-Xvfb                ##################################################
XFree86-SVGA                ##################################################
XFree86-cyrillic-fonts      ##################################################
XFree86-75dpi               ##################################################
XFree86-XF86Setup           ##################################################
XFree86-3.3.3               ##################################################
XFree86-100dpi-fonts        ##################################################
XFree86-devel               ##################################################

          

Users of Red Hat Linux 4.2 and 5.0 may need to add --nodeps when upgrading due to changes in the RPM packages. Example:

            rpm -Uvh --nodeps --force XFree86*

XFree86-VGA16               ##################################################
....

          

3.7 Configuring XFree86

If upgrading from a much older version of XFree86, you may need to reconfigure the X server so that it will know how to handle your video card.

The first step is to make sure that several symbolic links are pointing to the correct directories and files. Many older X programs think that various X programs are located in areas they are not anymore. To get around this problem, symbolic links link the old names and positions to the new ones.

/usr/X11R6/bin/X should be a symbolic link to xserver-wrapper and /etc/X11/X should be a symbolic link to the card specific X server that you use, for example XF86_SVGA.

Here's an example of how you might create these symbolic links, as root:


cd /usr/X11R6/bin
ln -sf xserver-wrapper ./X
cd /etc/X11
ln -sf "../../usr/X11R6/bin/XF86_SVGA" ./X

            

This should set up the symbolic links correctly for your system.

Now we are ready to run XF86Setup to configure the basics of your video card.


Next Previous Contents