Index
- %attr directive,
The %attr Directive,
The %attr Directive
- %build script,
The %build Script
- %build scriptlet,
%build Directive -- Configure and compile components to be packaged.
- %check script,
The %check Script
- %check scriptlet,
%check Directive -- Run included tests.
- %clean script,
The %clean Script
- %clean scriptlet,
%clean Directive -- Remove build components.
- %config directive,
The %config Directive,
The %config Directive
- %defattr Directive,
The %defattr Directive,
The %attr Directive
- %description tag,
The %description Tag,
%description Directive -- Describe the packages intended use.
- %dir directive,
The %dir Directive,
The %dir Directive
- %doc directive,
The %doc Directive,
The %doc Directive
- %docdir directive,
The %docdir Directive,
The %docdir Directive
- %else conditional,
The %else Conditional,
The %else Conditional
- %endif conditional,
The %endif Conditional,
The %endif Conditional
- %ghost directive,
The %ghost Directive
- %ifarch conditional,
The %ifarch Conditional,
%ifxxx,
The %ifarch Conditional
- %ifnarch conditional,
The %ifnarch Conditional,
%ifnxxx,
The %ifnarch Conditional
- %ifnos conditional,
The %ifnos Conditional,
%ifnxxx,
The %ifnos Conditional
- %ifos conditional,
The %ifos Conditional,
%ifxxx,
The %ifos Conditional
- %install script,
The %install Script
- %install scriptlet,
%install Directive -- Install components to be packaged.
- %package directive,
The Lone Directive: %package,
The %package Directive,
%package Directive
- -n option,
-n <string> — Use <string> As the Entire Subpackage Name ,
Adding -n To the %package directive ,
The %package -n Option
- %patch macro,
The %patch Macro,
The %patch Macro
- -b option,
-b <name> — Set the backup file extension to <name>
- -E option,
-E — Remove Empty Output Files
- -P option,
Specifying Which patch Tag to Use,
-p <#> — Strip <#> leading slashes and directories from patch filenames
- compressed patches,
Compressed Patch Files
- example of,
An example of the %patch Macro in Action
- options to,
The -P <n> Option
- %post script,
The %post Script
- %post scriptlet,
The %post Script
- %postun script,
The %postun Script
- %postun scriptlet,
%postun Directive
- %pre script,
The %pre Script
- %pre scriptlet,
The %pre Script
- %prep script,
The %prep Script
- %prep scriptlet,
%prep Directive -- Unpack archives and apply patches.
- %preun script,
The %preun Script
- %preun scriptlet,
The %preun Script
- %setup macro,
The %setup Macro,
The %setup Macro
- -a option,
-a <n> — Unpack The nth Sources After Changing Directory
- -b option,
-b <n> — Unpack The nth Sources Before Changing Directory
- -c option,
-c — Create Directory (and change to it) Before Unpacking
- -D option,
-D — Do Not Delete Directory Before Unpacking Sources
- -n option,
-n <name> — Set Name of Build Directory
- -T option,
-T — Do Not Perform Default Archive Unpacking
- options to,
The -n <name> Option
- use in multi-source spec files,
Using %setup in a Multi-source Spec File
- %verify directive,
The %verify Directive,
The %verify Directive
- %verifyscript script,
Verification-Time Script — The %verifyscript Script
- %verifyscript scriptlet,
The %verifyscript Script
- --addsign option,
--addsign — Add a Signature To a Package
- limitations to,
A Few Caveats
- --buildarch option,
--buildarch <arch> — Perform Build For the <arch> Architecture
- --buildos option,
--buildos <os> — Perform Build For the <os> Operating System
- --buildroot option,
--buildroot <path> — Execute %install using <path> as the root
- warning,
Using --buildroot Can Bite You!
- --clean option,
--clean — Clean up after build
- --dbpath option,
--dbpath <path>: Use <path> To Find RPM Database ,
--dbpath <path>: Use <path> To Find RPM Database ,
--dbpath <path>: Use <path> To Find RPM Database ,
--dbpath <path>: Use <path> To Find RPM Database
- --dump option,
--dump: Display All Verifiable Information for Each File
- --excludedocs,
-s — Display the State of Each File in the Package
- --excludedocs option,
--excludedocs: Do Not Install Documentation For This Package
- --force option,
--force: The Big Hammer,
--force: The Big Hammer
- --ftpport option,
--ftpport <port>: Use <port> In FTP-based Installs
- --ftpproxy option,
--ftpproxy <host>: Use <host> As Proxy In FTP-based Installs
- --help option,
--help — Display a help message
- --ignorearch option,
--ignorearch: Do Not Verify Package Architecture
- --ignoreos option,
--ignoreos: Do Not Verify Package Operating System
- --includedocs option,
--includedocs: Install Documentation For This Package
- --initdb option,
--initdb — Create a New RPM Database
- --nodeps option,
--nodeps: Do Not Check Dependencies Before Installing Package ,
--nodeps: Do Not Check Dependencies Before Erasing Package ,
--nodeps: Do Not Check Dependencies During Verification
- --nofiles option,
--nofiles: Do Not Verify File Attributes
- --nopgp option,
--nopgp — Do Not Verify Any PGP Signatures
- --noscripts option,
--noscripts: Do Not Execute Pre- and Post-install Scripts,
--noscripts — Do Not Execute Pre- and Post-uninstall Scripts ,
--noscripts: Do Not Execute Install and Uninstall Scripts ,
--noscripts: Do Not Execute Verification Script
- --oldpackage option,
--oldpackage: Upgrade To An Older Version
- --percent option,
--percent: Not Meant for Human Consumption
- --prefix option,
--prefix <path>: Relocate the package to <path>, if possible
- --provides option,
--provides: Display Capabilities Provided by the Package
- --queryformat option,
--queryformat — Construct a Custom Query Response
- carriage control in,
Carriage Control Escape Sequences
- example,
--prefix <path>: Relocate the package to <path>, if possible
- literal text in,
Literal text
- tags for,
Tags,
Available Tags For --queryformat
- ARCH,
The ARCH Tag
- ARCHIVESIZE,
The ARCHIVESIZE Tag
- AUTOREQPROV,
The AUTOREQPROV, AUTOREQ, and AUTOPROV Tags
- BUILDHOST,
The BUILDHOST Tag
- BUILDROOT,
The BUILDROOT Tag
- BUILDTIME,
The BUILDTIME Tag
- CHANGELOG,
The CHANGELOG Tag
- CONFLICTFLAGS,
The CONFLICTFLAGS Tag
- CONFLICTNAME,
The CONFLICTNAME Tag
- CONFLICTVERSION,
The CONFLICTVERSION Tag
- DEFAULTPREFIX,
The DEFAULTPREFIX Tag
- DESCRIPTION,
The DESCRIPTION Tag
- DISTRIBUTION,
The DISTRIBUTION Tag
- EPOCH,
The EPOCH Tag
- EXCLUDE,
The EXCLUDE Tag
- EXCLUDEARCH,
The EXCLUDEARCH Tag
- EXCLUDEOS,
The EXCLUDEOS Tag
- EXCLUSIVE,
The EXCLUSIVE Tag
- EXCLUSIVEARCH,
The EXCLUSIVEARCH Tag
- EXCLUSIVEOS,
The EXCLUSIVEOS Tag
- FILEFLAGS,
The FILEFLAGS Tag
- FILEGIDS,
The FILEGIDS Tag
- FILEGROUPNAME,
The FILEGROUPNAME Tag
- FILELINKTOS,
The FILELINKTOS Tag
- FILEMD5S,
The FILEMD5S Tag
- FILEMODES,
The FILEMODES Tag
- FILEMTIMES,
The FILEMTIMES Tag
- FILENAMES,
The FILENAMES Tag
- FILERDEVS,
The FILERDEVS Tag
- FILESIZES,
The FILESIZES Tag
- FILESTATES,
The FILESTATES Tag
- FILEUIDS,
The FILEUIDS Tag
- FILEUSERNAME,
The FILEUSERNAME Tag
- FILEVERIFYFLAGS,
The FILEVERIFYFLAGS Tag
- GIF,
The GIF Tag
- GROUP,
The GROUP Tag
- ICON,
The ICON Tag
- INSTALLPREFIX,
The INSTALLPREFIX Tag
- INSTALLTIME,
The INSTALLTIME Tag
- LICENSE,
The LICENSE Tag
- NAME,
The NAME Tag
- NOPATCH,
The NOPATCH Tag
- NOSOURCE,
The NOSOURCE Tag
- OS,
The OS Tag
- PACKAGER,
The PACKAGER Tag
- PATCH,
The PATCH Tag
- POSTIN,
The POSTIN Tag
- POSTUN,
The POSTUN Tag
- PREIN,
The PREIN Tag
- PREUN,
The PREUN Tag
- PROVIDES,
The PROVIDES Tag
- RELEASE,
The RELEASE Tag
- REQUIREFLAGS,
The REQUIREFLAGS Tag
- REQUIRENAME,
The REQUIRENAME Tag
- REQUIREVERSION,
The REQUIREVERSION Tag
- ROOT,
The ROOT Tag
- RPMVERSION,
The RPMVERSION Tag
- SIZE,
The SIZE Tag
- SOURCE,
The SOURCE Tag
- SOURCERPM,
The SOURCERPM Tag
- SUMMARY,
The SUMMARY Tag
- TRIGGERFLAGS,
The TRIGGERFLAGS Tag
- TRIGGERINDEX,
The TRIGGERINDEX Tag
- TRIGGERNAME,
The TRIGGERNAME Tag
- TRIGGERSCRIPTS,
The TRIGGERSCRIPTS Tag
- TRIGGERVERSION,
The TRIGGERVERSION Tag
- URL,
The URL Tag
- VENDOR,
The VENDOR Tag
- VERIFYSCRIPT,
The VERIFYSCRIPT Tag
- VERSION,
The VERSION Tag
- XPM,
The XPM Tag
- tags, array iterators,
Array Iterators
- tags, iterating single-entry,
Iterating Single-Entry Tags
- tags, listing available,
In Case You Were Wondering…
- tags, modifiers,
Modifiers — Making Data More Readable
- tags, width and justification,
Field Width and Justification
- --quiet option,
--quiet — Produce as little output as possible ,
--quiet — Produce as Little Output as Possible
- --rcfile option,
--rcfile <rcfile>: Use <rcfile> As An Alternate rpmrc File ,
--rcfile <rcfile> — Read <rcfile> For RPM Defaults ,
--rcfile <rcfile>: Use <rcfile> As An Alternate rpmrc File ,
--rcfile <rcfile>: Set Alternate rpmrc file to <rcfile> ,
--rcfile <rcfile>: Use <rcfile> As An Alternate rpmrc File ,
--rcfile <rcfile> — Set alternate rpmrc file to <rcfile> ,
File indicated by the --rcfile option
- --rebuild option,
rpmbuild --rebuild — What Does it Do?
- --rebuilddb option,
--rebuilddb — Rebuild RPM database
- --recompile option,
rpmbuild --recompile — What Does it Do?
- --replacefiles option,
--replacefiles: Install the Package Even If It Replaces Another Package's Files,
--force: The Big Hammer,
--force: The Big Hammer
- interaction with config files,
--replacefiles and Config Files
- problems from using,
--replacefiles Can Mean Trouble Down the Road
- --replacepkgs option,
--replacepkgs: Install the Package Even If Already Installed,
--force: The Big Hammer,
--force: The Big Hammer
- --requires option,
--requires: Display Capabilities Required by the Package
- --resign option,
--resign — Replace a Package's Signature(s)
- limitations to,
There Are Limits, However…
- --root option,
--root <path>: Use <path> As An Alternate Root ,
--root <path> — Use <path> As the Root ,
--root <path>: Use <path> As An Alternate Root ,
--root <path>: Set Alternate Root to <path>
- --scripts option,
--scripts — Show Scripts Associated With a Package
- --short-circuit option,
--short-circuit — Force build to start at particular stage
- --showrc,
Using the --showrc Option
- --sign option,
--sign — Add a Digital Signature to the Package ,
--sign — Sign a Package At Build-Time
- using with multiple builds,
Multiple Builds? No Problem!
- --test option,
--test: Perform Installation Tests Only,
--test — Go Through the Process of Erasing the Package, But Do Not Erase It ,
--test — Create, Save Build Scripts For Review
- --timecheck option,
--timecheck <secs> — Print a warning if files to be packaged are over <secs> old
- --version option,
--version — Display the current RPM version
- --whatprovides option,
--whatprovides <x>: Query the Packages That Provide Capability <x>
- --whatrequires option,
--whatrequires <x>: Query the Packages That Require Capability <x>
- -a option,
-a — Query All Installed Packages,
-a — Verify All Installed Packages Against the RPM Database
- -c option,
-c — Display the Package's List of Configuration Files
- -d option,
-d — Display a List of the Package's Documentation
- -f option,
-f <file> — Query the Package Owning <file> ,
-f <file> — Verify the Package Owning <file> Against the RPM Database
- hint when using,
A Tricky Detail
- -g option,
-g <group>: Query Packages Belonging To Group <group> ,
-g <group> — Verify Packages Belonging To <group>
- -h option,
-h: Perfect for the Impatient
- -i option,
-i — Display Package Information
- -l option,
-l — Display the Package's File List
- -p option,
-p <file> — Query a Specific RPM Package File ,
-p <file> — Verify Against a Specific Package File
- -s option,
-s — Display the State of Each File in the Package
- -v option,
Getting a bit more feedback with -v,
-v — Display Additional Information ,
-v — Display Additional Information,
-v — Display Additional Information
- -vv option,
Getting a lot more information with -vv,
Getting More Information With -vv,
Getting a lot more information with -vv ,
-vv — Display Debugging Information,
-vv — Display Debugging Information,
-vv — Display debugging information
- acknowledgements,
Acknowledgements
- adding dependencies
- see dependencies, adding
- architecture
- see RPM, philosophy behind, multi-architecture
- architectures, support for multiple,
Make it work on different computer architectures
- archive
- see format, RPM file, parts of, archive
- area, build
- see build area
- arguments
- see scripts, install/erase-time, arguments in
- attributes, file
- see file attributes, specifying
- automatic dependencies
- see dependencies, automatic
- autoreqprov tag,
The autoreqprov, autoreq, and autoprov Tags,
The autoreqprov, autoreq, and autoprov Tags — Disable Automatic Dependency Processing
- AutoReqProv: tag,
The AutoReqProv:, AutoReq:, and AutoProv: Tags
- book, sections of,
Parts of the book, and who they're for
- build area
- alternate,
Having RPM Use a Different Build Area
- building in,
Performing a Build in a New Build Area
- creating,
Setting up a Build Area
- using,
Directing RPM to Use the New Build Area
- build roots
- danger using,
Some Things to Consider
- defining,
Using Build Roots in a Package
- issues surrounding,
Some Things to Consider
- building packages
- see rpmbuild -b
- buildroot tag,
The buildroot Tag
- BuildRoot: tag,
The BuildRoot: Tag
- command options
- see the option itself
- conditionals
- see the conditional itself
- config files,
What are Packages, and Why Manage Them?,
Keeping Track of Packages,
RPM Version 1,
rpm -i — What does it do?,
Deciding what to do with config files:,
A warning message you might never see,
--replacefiles and Config Files,
--excludedocs: Do Not Install Documentation For This Package ,
rpm -e — What Does it Do?,
rpm -e and Config files,
rpm -U — What Does it Do?,
Config file magic,
-c — Display the Package's List of Configuration Files ,
-d — Display a List of the Package's Documentation ,
--dump: Display All Verifiable Information for Each File ,
Modifiers — Making Data More Readable,
Finding Config Files Based on a Program Name,
When Verification Fails — rpm -V Output,
Intelligent Configuration File Handling,
%files List Restrictions,
Relocatable Packages Must Contain Relocatable Software,
Tying Up the Loose Ends
- configuration files
- see config files
- conflicts tag,
The conflicts Tag,
The Conflicts Tag
- Conflicts: tag,
The Conflicts: Tag
- database, rebuilding RPM
- see RPM, command reference, rebuild database mode
- dependencies
- adding,
Adding Dependency Information to a Package
- automatically added,
Automatic Dependencies
- example of,
Automatic Dependencies: An Example
- autoreqprov tag,
The autoreqprov, autoreq, and autoprov Tags — Disable Automatic Dependency Processing
- basic concepts,
An Overview of Dependencies
- Conflicts tag,
The Conflicts Tag
- Context Marked Dependencies,
Context Marked Dependencies
- epoch numbers, using,
Solution Number 1: Epoch numbers
- manually added,
Manual Dependencies
- PreReq tag,
The PreReq Tag
- Provides tag,
The Provides Tag
- Requires tag,
The Requires Tag
- scripts related to,
The Automatic Dependency Scripts
- find-provides,
find-provides — Automatically Determine Shared Library Sonames
- find-requires,
find-requires — Automatically Determine Shared Library Requirements
- version requirements, adding,
Adding Version Requirements
- virtual packages,
Virtual Packages
- directives
- see the directive itself
- distribution tag,
The distribution Tag
- Distribution: tag,
The Distribution: Tag
- Doug Hoffman
- see Hoffman, Doug
- environment variables
- see scripts, build-time, environment variables in
- epoch numbers
- see dependencies, epoch numbers, using
- epoch tag,
The epoch Tag
- Epoch: tag,
The Epoch: Tag
- erasing packages
- see rpm -e
- Ewing, Marc,
Acknowledgements,
RPM Version 1,
The RPM of Today: Version 2,
Let's Get Started
- examples building packages
- see package building
- excludearch tag,
The excludearch Tag,
The excludexxx Tag
- ExcludeArch: tag,
The ExcludeArch: Tag
- excludeos tag,
The excludeos Tag,
The excludexxx Tag
- ExcludeOs: tag,
The ExcludeOs: Tag
- exclusivearch tag,
The exclusivearch Tag,
The exclusivexxx Tag
- ExclusiveArch: tag,
The ExclusiveArch: Tag
- exclusiveos tag,
The exclusiveos Tag,
The exclusivexxx Tag
- ExclusiveOs: tag,
The ExclusiveOs: Tag
- Faith, Rik,
PMS,
PM
- file attributes verified
- see rpm -V, attributes verified
- file attributes, specifying,
Specifying File Attributes
- file, spec
- see spec file
- files, configuration
- see config files
- find-provides script,
find-provides — Automatically Determine Shared Library Sonames
- find-requires script,
find-requires — Automatically Determine Shared Library Requirements
- format, package file
- see format, RPM file
- format, RPM file,
Format of the RPM File
- caveats,
RPM File Format
- file() command,identifying with,
Identifying RPM files with the file(1) command
- naming convention,
RPM File Naming Convention
- parts of,
Parts of an RPM File
- archive,
The Archive
- header,
The Header
- header structure,
The Solution: The Header Structure
- header, analysis of,
Analyzing the Header
- header, tags used in,
Header Tag Listing
- lead,
The Lead
- lead, reduced use of,
The lead: An Abandoned Data Structure
- signature,
The Signature
- signature, analysis of,
Analyzing the Signature Area
- tools for studying,
Tools For Studying RPM Files
- FTP
- package specification using,
URLs — Another Way to Specify Package Files
- specifying non-standard port with,
URLs — Another Way to Specify Package Files
- specifying username and password with,
URLs — Another Way to Specify Package Files
- General Public License
- see GPL
- GNU General Public License
- see GPL
- GPL,
GNU GENERAL PUBLIC LICENSE
- group tag,
The group Tag
- Group: tag,
The Group: Tag
- header
- see format, RPM file, parts of, header
- history, Linux and RPM,
Linux and RPM — A Brief History
- Hoffman, Doug,
PM
- icon tag,
The icon Tag
- Icon: tag,
The Icon: Tag
- information
- package-wide,
Package-wide Information
- per-file,
Per-file Information
- installing packages
- see rpm -i
- label, package
- see package label
- lead
- see format, RPM file, parts of, lead
- library functions, RPM
- see rpmlib
- license tag,
The license Tag
- License: tag,
The License: Tag
- Linux and RPM history,
Linux and RPM — A Brief History
- Marc Ewing
- see Ewing, Marc
- multi-platform package building,
Building Packages for Multiple Architectures and Operating Systems
- features supporting,
What Does RPM Do To Make Multi-Platform Packaging Easier?
- hints,
Hints and Kinks
- platform detection,
Build and Install Platform Detection
- reasons for,
Architectures and Operating Systems: A Primer
- name tag,
The name Tag
- Name: tag,
The Name: Tag
- nopatch tag,
The nopatch Tag
- NoPatch: tag,
The NoPatch: Tag
- nosource tag,
The nosource Tag
- NoSource: tag,
The NoSource: Tag
- numbers, epoch
- see dependencies, epoch numbers, using
- options, command
- see the option itself
- package
- advantages of,
Advantages of a Package
- building anywhere,
Making a Package That Can Build Anywhere
- contents of,
What's in a package?
- labels,
RPM's Package Labels
- labels vs. names,
Labels And Names: Similar, But Distinct
- management of
- how to,
Package Management: How to Do It?
- introduction,
An Introduction to Package Management
- reasons for,
Manage Your Packages, or They Will Manage You
- reasons for,
What are Packages, and Why Manage Them?
- relocatable
- see relocatable packages
- virtual
- see dependencies, virtual packages
- what is it,
Enter the Package
- package building
- real-world example,
Real-World Package Building
- %files list, adding,
Adding %files Lists
- %files list, finalizing,
Creating the %files list
- build area, creating,
Setting Up A Test Build Area
- building with RPM,
Letting RPM do the Building
- building, initial,
Initial Building With RPM
- directives, adding,
Applying Directives
- initial build,
Initial Building Without RPM
- initial build, installing,
Installing and testing
- initial build, performing,
Getting Software to build
- installing with RPM,
Letting RPM do the Installing
- overview,
An Overview of Amanda
- package files, creating,
Package Building
- packages, testing,
Testing those first packages
- patches, applying w/RPM,
Getting patches properly applied
- patches, generating,
Generating patches
- scripts, adding built-time,
Adding the build-time scripts
- scripts, creating,
Creating Install Scripts
- sources, unpacking w/RPM,
Getting the original sources unpacked
- spec file, first-cut,
Making a first-cut spec file
- testing after build,
Testing RPM's Handiwork
- simple example,
Building Packages: A Simple Example
- %files list, creating,
How Do You Create the File List?
- build directory, creating,
Creating the Build Directory Structure
- package, building,
Starting the Build
- scripts, %clean,
The %clean Section
- scripts, install/uninstall,
The Install/Uninstall Scripts
- sources, obtaining,
Getting the Sources
- spec file, %build section,
The %build Section
- spec file, %files list,
The %files Section
- spec file, %install section,
The %install Section
- spec file, %prep section,
The %prep Section
- spec file, creating,
Creating the Spec File
- spec file, preamble,
The Preamble
- troubleshooting,
When Things Go Wrong
- package file format
- see format, RPM file
- package label,
The Package Label,
The Package Label — Verify an Installed Package Against the RPM Database
- package-wide information
- see information, package-wide
- packager tag,
The packager Tag
- Packager: tag,
The Packager: Tag
- packages
- building
- see rpmbuild -b
- erasing
- see rpm -e
- files, verifying
- see rpm -K
- getting information about
- see rpm -q
- installing
- see rpm -i
- querying
- see rpm -q
- removing
- see rpm -e
- uninstalling
- see rpm -e
- upgrading
- see rpm -U
- verifying installed
- see rpm -V
- patch tag,
The patch Tag
- Patch: tag,
The Patch: Tag
- per-file information
- see information, per-file
- PGP
- building,
Building PGP
- getting more information on,
So Much to Cover, So Little Time
- introduction to,
An Introduction to PGP
- legal, patent issues,
Know Your Laws!
- obtaining,
Obtaining PGP
- "international" version,
Outside the United States and Canada
- RSAREF-based version,
Getting RSAREF-based PGP
- overview of,
PGP — Privacy for Regular People
- RPM's use of,
Are RPM Packages Encrypted?
- setting up for RPM's use,
Installing PGP for RPM's Use
- signatures
- adding,
Adding PGP Signatures to a Package
- configuring RPM for,
Preparing RPM
- key pair generation,
Preparing PGP: Creating a Key Pair
- reasons for,
Why Sign a Package?
- signing packages,
Signing Packages
- platform information, overriding at build-time,
Overriding Platform Information At Build-Time
- platform information, overriding at install-time,
Overriding Platform Information At Install-Time
- platform-dependent
- conditionals,
Platform-Dependent Conditionals
- %ifarch,
%ifxxx
- %ifnarch,
%ifnxxx
- %ifnos,
%ifnxxx
- %ifos,
%ifxxx
- features of,
Common Features of All Conditionals
- nesting,
Conditionals Can Be Nested
- rpmrc file entries,
Platform-Specific rpmrc Entries
- arch_canon,
xxx_canon — Define Canonical Platform Name and Number
- arch_compat,
xxx_compat — Define Compatible Architectures
- buildarch_translate,
buildxxxtranslate — Define Build Platform
- buildos_translate,
buildxxxtranslate — Define Build Platform
- optflags,
optflags — The Other rpmrc File Entry
- os_canon,
xxx_canon — Define Canonical Platform Name and Number
- os_compat,
xxx_compat — Define Compatible Architectures
- tags,
Platform-Dependent Tags
- excludearch,
The excludexxx Tag
- excludeos,
The excludexxx Tag
- exclusivearch,
The exclusivexxx Tag
- exclusiveos,
The exclusivexxx Tag
- PM
- see RPM, ancestors of, PM
- PMS
- see RPM, ancestors of, PMS
- prefix tag,
The prefix Tag,
The prefix tag: Relocation Central,
The Subpackage's "Preamble"
- Prefix: tag,
The Prefix: Tag
- PreReq tag,
The PreReq Tag
- Pretty Good Privacy
- see PGP
- provides tag,
The provides Tag,
The Provides Tag
- Provides: tag,
The Provides: Tag
- querying packages
- see rpm -q
- recursion
- see recursion
- release tag,
The release Tag
- Release: tag,
The Release: Tag
- relocatable packages,
Making a Relocatable Package
- %files list restrictions,
%files List Restrictions
- building,
Building a Relocatable Package
- prefix tag,
The prefix tag: Relocation Central
- reasons for,
Why relocatable packages?
- requirements,
Relocatable Wrinkles: Things to Consider
- software requirements,
Relocatable Packages Must Contain Relocatable Software
- testing,
Test-Driving a Relocatable Package
- removing packages
- see rpm -e
- requires tag,
The requires Tag,
The Requires Tag
- Requires: tag,
The Requires: Tag
- Rik Faith
- see Faith Rik
- root, build
- see build roots
- RPM
- ancestors of,
Ancestors of RPM
- PM,
PM
- PMS,
PMS
- RPM version 1,
RPM Version 1
- RPM version 2,
The RPM of Today: Version 2
- RPP,
RPP
- basics of developing with,
The Basics of Developing With RPM
- command reference,
Concise RPM Command Reference
- add signature mode,
Add Signature Mode
- build mode,
Build Mode
- check signature mode,
Check Signature Mode
- erase mode,
Erase Mode
- global options,
Global Options
- informational options,
Informational Options
- initialize database mode,
Initialize Database Mode
- install mode,
Install Mode
- query mode,
Query Mode
- rebuild database mode,
Rebuild Database Mode
- rebuild mode,
Rebuild Mode
- recompile mode,
Recompile Mode
- resign mode,
Resign Mode
- upgrade mode,
Upgrade Mode
- verify mode,
Verify Mode
- creating patches for,
Creating the Patches
- design goals of,
RPM Design Goals
- inputs to,
The Inputs
- patches,
The Patches
- sources,
The Sources
- spec file,
The Spec File
- library functions
- see rpmlib
- license,
RPM's License
- mailing list
- redhat-digest,
The redhat-digest Mailing List
- redhat-list,
The redhat-list Mailing List
- rpm-list,
The rpm-list Mailing List
- obtaining,
Where to Get RPM
- files to download,
What Do I Need?
- main download site,
FTP Sites
- outputs from,
The Outputs
- binary package,
The Binary RPM
- source package,
The Source Package File
- philosophy behind,
The Philosophy Behind RPM
- ease of use,
Easier For Your Users
- easy builds,
Easy Builds
- multi-architecture,
Multi-architecture/operating system Support
- multi-operating system,
Multi-architecture/operating system Support
- pristine sources,
Pristine Sources
- resources related to,
RPM-related Resources
- spec file
- %build section of,
The Build Section
- %files list,
The File List
- %install section of,
The Install Section
- %prep section of,
The Prep Section
- preamble,
The Preamble
- scripts,
Install and Uninstall Scripts
- support, information for,
Where to Talk About RPM
- what it does,
The Engine: RPM
- WWW resources,
RPM On the World Wide Web
- rpm -e,
Using RPM to Erase Packages
- basic command,
Erasing a Package
- config file handling,
rpm -e and Config files
- options,
Getting More Information With -vv
- problems using,
Watch Out!
- what it does,
rpm -e — What Does it Do?
- rpm -i,
Using RPM to Install Packages
- options,
Two handy options
- overview,
rpm -i — What does it do?
- performing,
Performing an Install
- warning message,
A warning message you might never see
- rpm -K,
Using RPM to Verify Package Files
- additional software used by,
Pretty Good Privacy: RPM's Assistant
- basic use,
Using rpm -K
- configuring PGP for use by,
Configuring PGP for rpm -K
- example of failed verification,
When a Package Just Doesn't Verify
- options,
-v — Display Additional Information,
--nopgp — Do Not Verify Any PGP Signatures
- output when missing public key,
When You Are Missing the Correct Public Key
- output when package unsigned,
When the Package is Not Signed
- what it does,
rpm -K — What Does it Do?
- rpm -q,
Getting Information About Packages
- examples using,
A Few Handy Queries
- finding config files with,
Finding Config Files Based on a Program Name
- finding documentation with,
Finding Documentation for a Specific Package
- finding largest packages with,
Finding the Largest Installed Packages
- finding recently installed packages with,
Finding Recently Installed Packages, Part I
- finding similar packages with,
Finding Similar Packages
- information selection options,
Query Commands, Part Two: Information Selection
- options,
Query Commands, Part One: Package Selection
- package selection options,
Query Commands, Part One: Package Selection
- querying uninstalled packages with,
Learning More About an Uninstalled Package
- what it does,
rpm -q — What does it do?
- rpm -U,
Using RPM to Upgrade Packages
- as replacement for rpm -i,
rpm -U's Dirty Little Secret
- basic command,
Upgrading a Package
- config file handling,
Config file magic
- options,
They're Nearly Identical…
- what it does,
rpm -U — What Does it Do?
- rpm -V,
Using RPM to Verify Installed Packages
- attributes verified,
File Ownership
- file group,
File Group
- file mode,
File Mode
- file ownership,
File Ownership
- file size,
File Size
- major number,
Major Number
- MD5 checksum,
MD5 Checksum
- minor number,
Minor Number
- modification time,
Modification Time
- symbolic link,
Symbolic Link
- options,
Selecting What to Verify, and How
- output of,
When Verification Fails — rpm -V Output
- verification, control of,
We've Lied to You…
- what it does,
rpm -V — What Does it Do?
- what it verifies,
What Does it Verify?
- RPM database, rebuilding
- see RPM, command reference, rebuild database mode
- RPM file format
- see format, RPM file
- RPM version 1
- see RPM, ancestors of, RPM version 1
- RPM version 2
- see RPM, ancestors of, RPM version 2
- rpm2cpio
- use of,
Using rpm2cpio
- extracting files in package,
Extracting one or more files from a package file
- listing files in package,
A more real-world example — Listing the files in a package file
- what it does,
rpm2cpio — What does it do?
- rpmbuild,
rpmbuild Command Reference
- build stages of,
rpmbuild — What Does it Do?
- a,
rpmbuild -ba — Execute %prep, %build, %install, %check, package (bin, src)
- b,
rpmbuild -bb — Execute %prep, %build, %install, %check, package (bin)
- c,
rpmbuild -bc — Execute %prep, %build
- i,
rpmbuild -bi — Execute %prep, %build, %install, %check
- l,
rpmbuild -bl — Check %files list
- p,
rpmbuild -bp — Execute %prep
- options,
--short-circuit — Force build to start at particular stage
- related commands,
Other Build-related Commands
- what it does,
rpmbuild — What Does it Do?
- rpmlib,
The RPM of Today: Version 2
- examples using,
Example Code
- functions
- dependency processing,
Dependency-Related Operations
- error handling,
Error Handling
- header entry manipulation,
Header Entry Manipulation
- header iterator,
Header Iterator Support
- header manipulation,
Header Manipulation
- output control,
Diagnostic Output Control
- package information,
Getting Package Information
- package manipulation,
Package Manipulation
- package/file verification,
Package And File Verification
- RPM database manipulation,
RPM Database Manipulation
- RPM database search,
RPM Database Search
- RPM database traversal,
RPM Database Traversal
- rpmrc-related,
rpmrc-Related Information
- signature verification,
Signature Verification
- variable manipulation,
Variable Manipulation
- guide to using,
A Guide to the RPM Library API
- overview,
An Overview of rpmlib
- rpmlib functions, list of,
rpmlib Functions
- dbiFreeIndexRecord(),
Free Database Index — dbiFreeIndexRecord()
- headerAddEntry(),
Add Entry To Header — headerAddEntry()
- headerCopy(),
Copy A Header — headerCopy()
- headerDump(),
Print Header Structure In Human-Readable Form — headerDump()
- headerFree(),
Deallocate A Header — headerFree()
- headerFreeIterator(),
Free An Iterator — headerFreeIterator()
- headerGetEntry(),
Get Entry From Header — headerGetEntry()
- headerInitIterator(),
Create an Iterator — headerInitIterator()
- headerIsEntry(),
Determine If Entry Is In Header — headerIsEntry()
- headerNew(),
Create A New Header — headerNew()
- headerNextIterator(),
Step To the Next Entry — headerNextIterator()
- headerRead(),
Read A Header — headerRead()
- headerSizeof(),
Calculate A Header's Size — headerSizeof()
- headerWrite(),
Write A Header — headerWrite()
- rpmArchScore(),
Return Architecture Compatibility Score — rpmArchScore()
- rpmdbClose(),
Close RPM Database — rpmdbClose()
- rpmdbFindByConflicts(),
Search RPM Database By Conflicts — rpmdbFindByConflicts()
- rpmdbFindByFile(),
Search RPM Database By File — rpmdbFindByFile()
- rpmdbFindByGroup(),
Search RPM Database By Group — rpmdbFindByGroup()
- rpmdbFindByProvides(),
Search RPM Database By Provides — rpmdbFindByProvides()
- rpmdbFindByRequiredBy(),
Search RPM Database By Requires — rpmdbFindByRequiredBy()
- rpmdbFindPackage(),
Search RPM Database By Package — rpmdbFindPackage()
- rpmdbFirstRecNum(),
Begin RPM Database Traversal — rpmdbFirstRecNum()
- rpmdbGetRecord(),
Return Record From RPM Database — rpmdbGetRecord()
- rpmdbInit(),
Create RPM Database — rpmdbInit()
- rpmdbNextRecNum(),
Traverse To Next RPM Database Record — rpmdbNextRecNum()
- rpmdbOpen(),
Open RPM Database — rpmdbOpen()
- rpmdbRebuild(),
Rebuild RPM Database — rpmdbRebuild()
- rpmdepAddPackage(),
Add a Package Install To the Dependency Data Structure — rpmdepAddPackage()
- rpmdepAvailablePackage(),
Add an Available Package To the Dependency Data Structure — rpmdepAvailablePackage()
- rpmdepCheck(),
Perform a Dependency Check — rpmdepCheck()
- rpmdepDependencies(),
Create a New Dependency Data Structure — rpmdepDependencies()
- rpmdepDone(),
Free a Dependency Data Structure — rpmdepDone()
- rpmdepFreeConflicts(),
Free Results of rpmdepCheck() — rpmdepFreeConflicts()
- rpmdepRemovePackage(),
Add a Package Removal To the Dependency Data Structure — rpmdepRemovePackage()
- rpmdepUpgradePackage(),
Add a Package Upgrade To the Dependency Data Structure — rpmdepUpgradePackage()
- rpmErrorCode(),
Return Error Code — rpmErrorCode()
- rpmErrorSetCallback(),
Set Error CallBack Function — rpmErrorSetCallback()
- rpmErrorString(),
Return Error String — rpmErrorString()
- rpmFreeSignature(),
Free Signature Read By rpmReadPackageInfo() — rpmFreeSignature()
- rpmGetArchName(),
Return Architecture Name — rpmGetArchName()
- rpmGetBooleanVar(),
Return Boolean Value Of RPM Variable — rpmGetBooleanVar()
- rpmGetOsName(),
Return Operating System Name — rpmGetOsName()
- rpmGetVar(),
Return Value of RPM Variable — rpmGetVar()
- rpmGetVerbosity(),
Return Verbosity Level — rpmGetVerbosity()
- rpmIncreaseVerbosity(),
Increase Verbosity Level — rpmIncreaseVerbosity()
- rpmInstallPackage(),
Install Binary Package File — rpmInstallPackage()
- rpmInstallSourcePackage(),
Install Source Package File — rpmInstallSourcePackage()
- rpmIsDebug(),
Check Debug Level — rpmIsDebug()
- rpmIsVerbose(),
Check Verbosity Level — rpmIsVerbose()
- rpmNotifyFunction(),
Track Package Installation Progress — rpmNotifyFunction()
- rpmOsScore(),
Return Operating System Compatibility Score — rpmOsScore()
- rpmReadConfigFiles(),
Read rpmrc Files — rpmReadConfigFiles()
- rpmReadPackageHeader(),
Read Package Header — rpmReadPackageHeader()
- rpmReadPackageInfo(),
Read Package Information — rpmReadPackageInfo()
- rpmRemovePackage(),
Remove Installed Package — rpmRemovePackage()
- rpmSetVar(),
Set Value Of RPM Variable — rpmSetVar()
- rpmSetVerbosity(),
Set Verbosity Level — rpmSetVerbosity()
- rpmShowRC(),
Print all rpmrc-Derived Variables — rpmShowRC()
- rpmVerifyFile(),
Verify File — rpmVerifyFile()
- rpmVerifyScript(),
Execute Package's %verifyscript Verification Script — rpmVerifyScript()
- rpmVerifySignature(),
Verify A Package File's Signature — rpmVerifySignature()
- rpmrc file,
The rpmrc File
- entries,
rpmrc File Entries
- arch_canon,
xxx_canon — Define Canonical Platform Name and Number ,
arch_canon
- arch_compat,
xxx_compat — Define Compatible Architectures ,
arch_compat
- buildarchtranslate,
buildarchtranslate
- buildarch_translate,
buildxxxtranslate — Define Build Platform
- builddir,
builddir
- buildostranslate,
buildostranslate
- buildos_translate,
buildxxxtranslate — Define Build Platform
- buildroot,
buildroot
- cpiobin,
cpiobin
- dbpath,
dbpath
- defaultdocdir,
defaultdocdir
- distribution,
distribution
- excludedocs,
--excludedocs: Do Not Install Documentation For This Package ,
excludedocs
- ftpport,
ftpport
- ftpproxy,
ftpproxy
- messagelevel,
messagelevel
- netsharedpath,
-s — Display the State of Each File in the Package ,
netsharedpath
- optflags,
optflags
- os_canon,
xxx_canon — Define Canonical Platform Name and Number ,
os_canon
- os_compat,
xxx_compat — Define Compatible Architectures ,
os_compat
- packager,
packager
- pgp_name,
pgp_name
- pgp_path,
pgp_path
- require_distribution,
require_distribution
- require_icon,
require_icon
- require_vendor,
require_vendor
- rpmdir,
rpmdir
- signature,
signature
- sourcedir,
sourcedir
- specdir,
specdir
- srcrpmdir,
srcrpmdir
- timecheck,
timecheck
- tmppath,
tmppath
- topdir,
topdir
- vendor,
vendor
- locations of,
Different Places an rpmrc File Resides
- /etc/rpmrc,
/etc/rpmrc
- /usr/lib/rpmrc,
/usr/lib/rpmrc
- ~/.rpmrc,
.rpmrc in the user's login directory
- syntax of,
rpmrc File Syntax
- RPP
- see RPM, ancestors of, RPP
- scripts
- see RPM, spec file, scripts
- build-time,
Build-time Scripts
- environment variables in,
Build-time Scripts
- install/erase-time,
Install/Erase-time Scripts
- arguments in,
Install/Erase-time Scripts
- environment variables in,
Install/Erase-time Scripts
- verification-time,
Verification-Time Script — The %verifyscript Script
- sections of book,
Parts of the book, and who they're for
- signature
- see format, RPM file, parts of, signature
- source package files
- installing,
So what can I do with it?
- use of,
Source Package Files and How To Use Them
- source tag,
The source Tag
- Source: tag,
The Source: Tag
- spec file
- %files list directives,
Directives For the %files list
- %files list in,
The %files List,
The %files List
- -f option,
-f <file> — Read the %files List From <file>
- comments in,
Comments: Notes Ignored by RPM,
Comments
- conditionals in,
Conditionals
- %else,
The %else Conditional
- %endif,
The %endif Conditional
- %ifarch,
The %ifarch Conditional
- %ifnarch,
The %ifnarch Conditional
- %ifnos,
The %ifnos Conditional
- %ifos,
The %ifos Conditional
- contents of,
Inside the Spec File,
Concise Spec File Reference
- directives in
- %attr,
The %attr Directive
- %config,
The %config Directive
- %defattr,
The %attr Directive
- %dir,
The %dir Directive
- %doc,
The %doc Directive
- %docdir,
The %docdir Directive
- %package, options to,
The %package -n Option
- %verify,
The %verify Directive
- macros in,
Macros: Helpful Shorthand for Package Builders
- %patch,
The %patch Macro
- %patch, options to,
The -P <n> Option
- %setup,
The %setup Macro
- %setup, options to,
The -n <name> Option
- scriptlets
- %build,
%build Directive -- Configure and compile components to be packaged.
- %check,
%check Directive -- Run included tests.
- %clean,
%clean Directive -- Remove build components.
- %install,
%install Directive -- Install components to be packaged.
- %post,
The %post Script
- %postun,
%postun Directive
- %pre,
The %pre Script
- %prep,
%prep Directive -- Unpack archives and apply patches.
- %preun,
The %preun Script
- %verifyscript,
The %verifyscript Script
- scripts in,
Scripts: RPM's Workhorse
- tags in,
Tags: Data Definitions
- %description,
%description Directive -- Describe the packages intended use.
- AutoReqProv:,
The AutoReqProv:, AutoReq:, and AutoProv: Tags
- BuildRoot:,
The BuildRoot: Tag
- Conflicts:,
The Conflicts: Tag
- Distribution:,
The Distribution: Tag
- Epoch:,
The Epoch: Tag
- ExcludeArch:,
The ExcludeArch: Tag
- ExcludeOs:,
The ExcludeOs: Tag
- ExclusiveArch:,
The ExclusiveArch: Tag
- ExclusiveOs:,
The ExclusiveOs: Tag
- Group:,
The Group: Tag
- Icon:,
The Icon: Tag
- License:,
The License: Tag
- Name:,
The Name: Tag
- NoSource:,
The NoSource: Tag
- Packager:,
The Packager: Tag
- Prefix:,
The Prefix: Tag
- Provides:,
The Provides: Tag
- Release:,
The Release: Tag
- Requires:,
The Requires: Tag
- Source:,
The Source: Tag
- Summary:,
The Summary: Tag
- URL:,
The URL: Tag
- Vendor:,
The Vendor: Tag
- Version:,
The Version: Tag
- subpackages,
Creating Subpackages
- %files list changes,
The %files List
- %package directive,
The %package Directive
- -n option,
Adding -n To the %package directive
- build-time scripts, unchanged,
Build-Time Scripts: Unchanged For Subpackages
- building,
Building Subpackages
- definition of,
What Are Subpackages?
- example requirements,
Our Example Spec File: Subpackages Galore!
- script changes,
Install- and Erase-time Scripts
- scripts, testing,
Verifying Subpackage-specific Install and Erase Scripts
- spec file changes,
Spec File Changes For Subpackages
- tags required by,
Required Tags In Subpackages
- testing,
Giving Subpackages the Once-Over
- why needed,
Why Are They Needed?
- summary tag,
The summary Tag
- Summary: tag,
The Summary: Tag
- tags
- %description,
The %description Tag
- autoreqprov,
The autoreqprov, autoreq, and autoprov Tags
- buildroot,
The buildroot Tag
- conflicts,
The conflicts Tag
- distribution,
The distribution Tag
- epoch,
The epoch Tag
- excludearch,
The excludearch Tag
- excludeos,
The excludeos Tag
- exclusivearch,
The exclusivearch Tag
- exclusiveos,
The exclusiveos Tag
- group,
The group Tag
- icon,
The icon Tag
- license,
The license Tag
- name,
The name Tag
- nopatch,
The nopatch Tag
- nosource,
The nosource Tag
- packager,
The packager Tag
- patch,
The patch Tag
- prefix,
The prefix Tag
- provides,
The provides Tag
- release,
The release Tag
- requires,
The requires Tag
- source,
The source Tag
- summary,
The summary Tag
- url,
The url Tag
- vendor,
The vendor Tag
- version,
The version Tag
- tags, --queryformat
- see --queryformat option, tags for
- tags, dependency-related
- see dependencies
- Troan, Erik,
Acknowledgements,
RPM Version 1,
The RPM of Today: Version 2,
Let's Get Started
- uninstalling packages
- see rpm -e
- upgrading packages
- see rpm -U
- URL,
URLs — Another Way to Specify Package Files,
--ftpport <port>: Use <port> In FTP-based Installs ,
-p <file> — Query a Specific RPM Package File ,
The url Tag,
The source Tag,
The patch Tag
- package specification using,
URLs — Another Way to Specify Package Files
- specifying non-standard port with,
URLs — Another Way to Specify Package Files
- specifying username and password with,
URLs — Another Way to Specify Package Files
- url tag,
The url Tag
- URL: tag,
The URL: Tag
- variables, environment
- see scripts, build-time, environment variables in
- vendor tag,
The vendor Tag
- Vendor: tag,
The Vendor: Tag
- verifying installed packages
- see rpm -V
- verifying package files
- see rpm -K
- version tag,
The version Tag
- Version: tag,
The Version: Tag
- virtual packages
- see dependencies, virtual packages