** Using RPM ** Here are my most commonly used RPM commands. See more sections on Gnu/Linux . RPM is a handy way to ship and install code for most linux distributions. See an excellent introduction at http://www-106.ibm.com/developerworks/library/l-rpm1/ and many referencees at http://www.rpm.org/ First look for rpms on your installation disks. If you are installing from Redhat or Fedora you can find and install packages with ``yum''. These will download rpm's appropriate for your distribution, then install or upgrade. Not every rpm is assembled correctly. If you cannot find an rpm for your distribution, then download and compile the source code. Source rpms are available that install only source code under ``/usr/src''. The CD's that install RedHat and Mandrake come with large directories of rpms. If I have a large disk drive, then I copy iso images of the CDs to a directory under ``/usr/src.'' You can then read the disk image by mounting it as a file system: => mount -o loop -t iso9660 imagefile.iso imagedir <= Most CD installs come with a directory of ``rpm'' files for additional features. (Look in ``/mnt/cdrom''.) Install as root, with the single command => rpm -Uvh psutils-1.17-5.i386.rpm <= You will be told if you need to install other software first. (Using ``-U'' instead of ``-i'' will replace previous versions.) You can test dependencies without installing, and without becoming root, by adding the ``--test'' flag: => rpm -Uvh --test xsane-0.77-4.i386.rpm error: failed dependencies: sane-backends >= 1.0.5-3 is needed by xsane-0.77-4 libsane.so.1 is needed by xsane-0.77-4 <= Include all dependencies in a single install command: => rpm -Uvh --test xsane-0.77-4.i386.rpm sane-backends-1.0.5-4.i386.rpm Preparing... ########################################### [100%] <= See what files will be installed by an rpm with => rpm -qlp psutils-1.17-5.i386.rpm or less psutils-1.17-5.i386.rpm <= ``less'' nicely formats the contents and descriptive information inside an rpm. See what rpm package and version was used to install a file by => rpm -qf /usr/bin/latex2html tetex-latex-1.0.7-30 <= See dependencies with => rpm -qRf /usr/bin/latex2html or rpm -qR tetex-latex-1.0.7-30 <= See what other files were installed by the package with => rpm -qlf /usr/bin/latex2html or rpm -ql tetex-latex-1.0.7-30 <= List all installed packages with => rpm -qa | sort <= If you do not want to install in public system directories, specify an alternative like ``--prefix /my/usr/local/''. To uninstall, use the ``--erase'' option, and test first. If you download the entire updates directory for your distribution, then you can upgrade all packages you have installed without installing anything new: => rpm -Fvh *.rpm <= Rpm updates have been known to hang because a previous one was killed and left a lock file behind. Delete the lock files with ``rm -f /var/lib/rpm/__*'' See if you have accidentally deleted any dependencies with => rpm -Va <= Verify a particular program with => rpm -Vf /usr/bin/program <= Extract all rpm files locally with => cat src.rpm | rpm2cpio | pax -r <= Bill Harlan, 2004