Copyright © 2003 Charles Curley and distributed under the terms of the GNU Free Documentation License (GFDL) license, stated below. Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.1 or any later version published by the Free Software Foundation; with no Invariant Sections, with no Front-Cover Texts, and with no Back-Cover Texts. A copy of the license is included in the section entitled "GNU Free Documentation License".
No liability for the contents of this documents can be accepted by the author or anyone else. Use the concepts, examples and other content at your own risk. There may be errors and inaccuracies that may damage your system. Proceed with caution, and, although errors are unlikely, the author take no responsibility for them. None the less, the author would like to know about such errors so he can improve the document.
All copyrights are held by their respective owners, unless specifically noted otherwise. Use of a term in this document should not be regarded as affecting the validity of any trademark or service mark.
Naming of particular products or brands should not be seen as endorsements.
You are strongly recommended to take a backup of your system before major installation and backups at regular intervals. In addition, you are strongly recommended to use a sacrificial experimental computer when mucking with the material in this HOWTO.
You can find this document at its home page. Please comment to <charlescurley at charlescurley dot com>
Depending on your browser, you may have to hold down the shift button while you click on these in order to get them to download.
Feedback is most certainly welcome for this document. Without your corrections, suggestions and other input, this document wouldn't exist. Please send your additions, comments and criticisms to me at: <charlescurley at charlescurley dot com>.
Not everyone speaks English. Volunteers are welcome.
First, a bit of background for those familiar with rpm (Red Hat Package Manager). While everything here is Fedora Linux specific, it should easily port to most RPM based Linux disties.
Fortunately, Fedora Linux (the successor to Red Hat Linux) includes yum (Yellow dog Updater, Modified). yum sits on top of rpm, and handles dependencies. For example, say you want xpdf. You get the package for xpdf and try to install it. rpm whines that it has an unsatisfied dependency, say some library you've never heard of (part of openmotif, but you don't know that), and gives up. You go get the appropriate package(s) and try again. This can get to be a pretty deep recursive process.
The program yum handles all that for you. You type at the command line:
# yum install xpdf |
The program then pulls what it needs from the repository, figures out the dependencies, tells you what it needs to do to install xpdf, and asks permission to go ahead, like so:
Resolving dependencies .Dependencies resolved I will do the following: [install: xpdf 1:2.02-9.i386] I will install/upgrade these to satisfy the dependencies: [deps: openmotif 2.2.2-16.1.i386] Is this ok [y/N]: y Getting openmotif-2.2.2-16.1.i386.rpm Getting xpdf-2.02-9.i386.rpm Calculating available disk space - this could take a bit openmotif 100 % done 1/2 xpdf 100 % done 2/2 Installed: xpdf 1:2.02-9.i386 Dep Installed: openmotif 2.2.2-16.1.i386 Transaction(s) Complete |
If you have worked with the debian package manager, apt, this looks somewhat familiar.
There is one downside to yum: it keeps a set of package headers locally, which can run up to 19 MB. It collects those the first time you connect to a repository, so the slower your Internet connection, the longer you wait. In most cases, it's worth it to avoid the frustrations associated with manually resolving package dependencies.
One of the problems with Red Hat's Anaconda is that it does not always handle dependencies correctly. Case in point: On Fedora, if you select the Office/Productivity group, then deselect OpenOffice.org, you still get two of the three packages that make up OpenOffice.org. If all I want is xpdf, 225 MB of OpenOffice.org is a lot of overhead. Not good. There are other examples, but that's the most egregious.
The alternative has been to use a kickstart file to specify exactly the packages you want, and deselect others you don't want, like the two OpenOffice packages. This has the problem of manually determining which packages you can disable. That's a long boring error-prone process, believe me.
Instead, why not make a kickstart file that does a minimal installation, and then use yum to get whatever else you need. "yum install emacs". "yum install gnome-session". Etc. This has a problem: not all dependencies are in the RPMs. For example, XFree86-twm should require XFree86-75dpi-fonts, but does not.
You could do this out of the box with with the repositories already in /etc/yum.conf, but there are two problems. First, we don't need everyone overloading the repositories at Duke. Neither do the folks at Duke. Second, the more systems you have to install and update, the better for everyone if you create a local repository. You need the following:
A fairly recent Linux distribution on which to run an FTP or HTTP server. The kernel must be capable of mounting to loopback devices.
2+ GB of hard drive space on the partition where your FTP or HTTP directory tree resides.
The ISO CD-ROM images for your distribution.