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.
$ 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
$ 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
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.
|
XFree86 Package | Purpose |
| XFree86 | This package contains the basic fonts, programs, anddocumentation for an X workstation. |
| XFree86-75dpi-fonts | This package contains extra fonts used on most Linuxsystems. |
| XFree86-VGA16 | This 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-XF86Setup | XF86Setup 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-libs | XFree86-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-3DLabs | Server for cards containing Creative Labs 3D chipset. |
| XFree86-8514 | Server for older IBM 8514 and compatible video cards |
| XFree86-AGX | X server for AGX based cards such as those found in various Boca, Orchid, Spider, and Hercules. |
| XFree86-I128 | Server for the various Number 9 Imagine 128 cards. |
| XFree86-Mach32 | Server for cards based on the ATI Mach 32 chipset |
| XFree86-Mach64 | Server for cards based on the ATI Mach64 chipset |
| XFree86-Mach8 | Server for cards based on the ATI Mach8 chipset |
| XFree86-Mono | 2 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-P9000 | Server for cards with the Weitek P9000 chipset. |
| XFree86-S3 | X server for the many cards built around the S3chipset. |
| XFree86-S3V | X server for the many cards built around the S3 Virgechipset. |
| XFree86-SVGA | X server for most simple framebuffer SVGA chipsets. |
| XFree86-W32 | Server built around the ET4000/W32 chipset. Most cards now use the SVGA server, but some may work better with this server.
|
|
XFree86-100dpi-fonts | 100dpi fonts. Users with high resolution display may prefer these fonts. |
| XFree86-cyrillic-fonts | Cyrillic fonts. |
| XFree86-devel | Libraries, header files, and documentation for developing and compiling X programs. |
| XFree86-Xnest | X server which runs in an X window. |
| XFree86-Xvfb | Virtual framebuffer X server |
| XFree86-xfs | This 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. |
|
|
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.
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.
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 ##################################################
....
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.