I. RPM and Computer Users — How to Use RPM to Effectively Manage Your
Computer
- Table of Contents
- 1. An Introduction to Package Management
- 1.1. What are Packages, and Why Manage Them?
- 1.1.1. Enter the Package
- 1.1.2. Manage Your Packages, or They Will Manage You
- 1.2. Package Management: How to Do It?
- 1.2.1. Ancestors of RPM
- 1.3. RPM Design Goals
- 1.3.1. Make it easy to get packages on and off the system
- 1.3.2. Make it easy to verify a package was installed correctly
- 1.3.3. Make it easy for the package builder
- 1.3.4. Make it start with the original source code
- 1.3.5. Make it work on different computer architectures
- 1.4. What's in a package?
- 1.4.1. RPM's Package Labels
- 1.4.2. Labels And Names: Similar, But Distinct
- 1.4.3. Package-wide Information
- 1.4.4. Per-file Information
- 1.5. Let's Get Started
- 2. Using RPM to Install Packages
- 2.1. rpm -i — What does it do?
- 2.1.1. Performing dependency checks:
- 2.1.2. Checking for conflicts:
- 2.1.3. Performing any tasks required before the install:
- 2.1.4. Deciding what to do with config files:
- 2.1.5. Unpacking files from the package and putting them in the proper
place:
- 2.1.6. Performing any tasks required after the install:
- 2.1.7. Keeping track of what it did:
- 2.2. Performing an Install
- 2.2.1. URLs — Another Way to Specify Package Files
- 2.2.2. A warning message you might never see
- 2.3. Two handy options
- 2.3.1. Getting a bit more feedback with -v
- 2.3.2. -h: Perfect for the Impatient
- 2.4. Additional options to rpm -i
- 2.4.1. Getting a lot more information with -vv
- 2.4.2. --test: Perform Installation Tests Only
- 2.4.3. --replacepkgs: Install the Package Even If Already Installed
- 2.4.4. --replacefiles: Install the Package Even If It Replaces Another Package's Files
- 2.4.5. --nodeps: Do Not Check Dependencies Before
Installing Package
- 2.4.6. --force: The Big Hammer
- 2.4.7. --excludedocs: Do Not Install Documentation For
This Package
- 2.4.8. --includedocs: Install Documentation For This Package
- 2.4.9. --prefix <path>:
Relocate the package to
<path>, if possible
- 2.4.10. --noscripts: Do Not Execute Pre- and Post-install Scripts
- 2.4.11. --percent: Not Meant for Human Consumption
- 2.4.12. --rcfile <rcfile>: Use
<rcfile> As An
Alternate rpmrc File
- 2.4.13. --root <path>: Use
<path> As An Alternate
Root
- 2.4.14. --dbpath <path>: Use
<path> To Find RPM
Database
- 2.4.15. --ftpport <port>: Use
<port> In FTP-based
Installs
- 2.4.16. --ftpproxy <host>: Use
<host> As Proxy In
FTP-based Installs
- 2.4.17. --ignorearch: Do Not Verify Package Architecture
- 2.4.18. --ignoreos: Do Not Verify Package Operating System
- 3. Using RPM to Erase Packages
- 3.1. rpm -e — What Does it Do?
- 3.2. Erasing a Package
- 3.2.1. Getting More Information With -vv
- 3.3. Additional Options
- 3.3.1. --test — Go Through the Process of Erasing
the Package, But Do Not Erase It
- 3.3.2. --nodeps: Do Not Check Dependencies Before Erasing
Package
- 3.3.3. --noscripts — Do Not
Execute Pre- and Post-uninstall Scripts
- 3.3.4. --rcfile <rcfile>
— Read
<rcfile> For RPM
Defaults
- 3.3.5. --root <path>
— Use <path>
As the Root
- 3.3.6. --dbpath <path>: Use
<path> To Find RPM
Database
- 3.4. rpm -e and Config files
- 3.5. Watch Out!
- 4. Using RPM to Upgrade Packages
- 4.1. rpm -U — What Does it Do?
- 4.1.1. Config file magic
- 4.2. Upgrading a Package
- 4.2.1. rpm -U's Dirty Little Secret
- 4.3. They're Nearly Identical…
- 4.3.1. --oldpackage: Upgrade To An Older Version
- 4.3.2. --force: The Big Hammer
- 4.3.3. --noscripts: Do Not Execute Install and Uninstall
Scripts
- 5. Getting Information About Packages
- 5.1. rpm -q — What does it do?
- 5.2. The Parts of an RPM Query
- 5.2.1. Query Commands, Part One: Package Selection
- 5.2.2. Query Commands, Part Two: Information Selection
- 5.2.3. Getting a lot more information with
-vv
- 5.2.4. --root <path>: Use
<path> As An
Alternate Root
- 5.2.5. --rcfile <rcfile>: Use
<rcfile> As An
Alternate rpmrc File
- 5.2.6. --dbpath <path>: Use
<path> To Find RPM
Database
- 5.3. A Few Handy Queries
- 5.3.1. Finding Config Files Based on a Program Name
- 5.3.2. Learning More About an Uninstalled Package
- 5.3.3. Finding Documentation for a Specific Package
- 5.3.4. Finding Similar Packages
- 5.3.5. Finding Recently Installed Packages, Part I
- 5.3.6. Finding Recently Installed Packages, Part II
- 5.3.7. Finding the Largest Installed Packages
- 6. Using RPM to Verify Installed Packages
- 6.1. rpm -V — What Does it Do?
- 6.1.1. What Does it Verify?
- 6.2. When Verification Fails — rpm -V
Output
- 6.2.1. Other Verification Failure Messages
- 6.3. Selecting What to Verify, and How
- 6.3.1. The Package Label — Verify an Installed Package Against the RPM
Database
- 6.3.2. -a — Verify All Installed Packages Against
the RPM Database
- 6.3.3. -f <file> —
Verify the Package Owning
<file> Against the
RPM Database
- 6.3.4. -p <file> —
Verify Against a Specific Package File
- 6.3.5. -g <group> —
Verify Packages Belonging To
<group>
- 6.3.6. --nodeps: Do Not Check Dependencies During
Verification
- 6.3.7. --noscripts: Do Not Execute Verification Script
- 6.3.8. --nofiles: Do Not Verify File
Attributes
- 6.3.9. -v — Display Additional
Information
- 6.3.10. -vv — Display Debugging
Information
- 6.3.11. --dbpath <path>:
Use <path> To Find
RPM Database
- 6.3.12. --root <path>: Set
Alternate Root to
<path>
- 6.3.13. --rcfile <rcfile>:
Set Alternate rpmrc file to
<rcfile>
- 6.4. We've Lied to You…
- 6.4.1. RPM Controls What Gets Verified
- 7. Using RPM to Verify Package Files
- 7.1. rpm -K — What Does it Do?
- 7.1.1. Pretty Good Privacy: RPM's Assistant
- 7.2. Configuring PGP for rpm -K
- 7.3. Using rpm -K
- 7.3.1. -v — Display Additional
Information
- 7.3.2. When the Package is Not Signed
- 7.3.3. When You Are Missing the Correct Public Key
- 7.3.4. When a Package Just Doesn't Verify
- 7.3.5. --nopgp — Do Not Verify Any PGP Signatures
- 7.3.6. -vv — Display Debugging
Information
- 7.3.7. --rcfile <rcfile>: Use
<rcfile> As An
Alternate rpmrc File
- 8. Miscellania
- 8.1. Other RPM Options
- 8.1.1. --rebuilddb — Rebuild RPM
database
- 8.1.2. --initdb — Create a New RPM Database
- 8.1.3. --quiet — Produce as little output as
possible
- 8.1.4. --help — Display a help message
- 8.1.5. --version — Display the current RPM version
- 8.2. Using rpm2cpio
- 8.2.1. rpm2cpio — What does it do?
- 8.2.2. A more real-world example — Listing the files in a package file
- 8.2.3. Extracting one or more files from a package file
- 8.3. Source Package Files and How To Use Them
- 8.3.1. A gentle introduction to source code
- 8.3.2. Do you really need more information than this?
- 8.3.3. So what can I do with it?
- 8.3.4. Stick with us!