rpm(8)


NAME

   rpm - RPM Package Manager

SYNOPSIS

   QUERYING AND VERIFYING PACKAGES:
   rpm {-q|--query} [select-options] [query-options]

   rpm --querytags

   rpm {-V|--verify} [select-options] [verify-options]

   INSTALLING, UPGRADING, AND REMOVING PACKAGES:
   rpm {-i|--install} [install-options] PACKAGE_FILE ...

   rpm {-U|--upgrade} [install-options] PACKAGE_FILE ...

   rpm {-F|--freshen} [install-options] PACKAGE_FILE ...

   rpm {--reinstall} [install-options] PACKAGE_FILE ...

   rpm {-e|--erase} [--allmatches] [--nodeps] [--noscripts]
       [--notriggers] [--test] PACKAGE_NAME ...

   MISCELLANEOUS:
   rpm --showrc

   rpm --setperms PACKAGE_NAME ...

   rpm --setugids PACKAGE_NAME ...

   select-options
    [PACKAGE_NAME] [-a,--all] [-f,--file FILE]
    [-g,--group GROUP] {-p,--package PACKAGE_FILE]
    [--hdrid SHA1] [--pkgid MD5] [--tid TID]
    [--querybynumber HDRNUM] [--triggeredby PACKAGE_NAME]
    [--whatprovides CAPABILITY] [--whatrequires CAPABILITY]

   query-options
    [--changelog] [-c,--configfiles] [--conflicts]
    [-d,--docfiles] [--dump] [--filesbypkg] [-i,--info]
    [--last] [-l,--list] [--obsoletes] [--provides]
    [--qf,--queryformat QUERYFMT] [-R,--requires]
    [--scripts] [-s,--state] [--triggers,--triggerscripts]

   verify-options
    [--nodeps] [--nofiles] [--noscripts]
    [--nodigest] [--nosignature]
    [--nolinkto] [--nofiledigest] [--nosize] [--nouser]
    [--nogroup] [--nomtime] [--nomode] [--nordev]
    [--nocaps]

   install-options
    [--allfiles] [--badreloc] [--excludepath OLDPATH]
    [--excludedocs] [--force] [-h,--hash]
    [--ignoresize] [--ignorearch] [--ignoreos]
    [--includedocs] [--justdb] [--nocollections]
    [--nodeps] [--nodigest] [--nosignature]
    [--noorder] [--noscripts] [--notriggers]
    [--oldpackage] [--percent] [--prefix NEWPATH]
    [--relocate OLDPATH=NEWPATH]
    [--replacefiles] [--replacepkgs]
    [--test]

DESCRIPTION

   rpm is a powerful Package Manager, which can be used to build, install,
   query, verify, update,  and  erase  individual  software  packages.   A
   package  consists  of an archive of files and meta-data used to install
   and erase the archive files. The  meta-data  includes  helper  scripts,
   file   attributes,  and  descriptive  information  about  the  package.
   Packages come in two varieties: binary packages,  used  to  encapsulate
   software  to  be  installed, and source packages, containing the source
   code and recipe necessary to produce binary packages.

   One of the following basic  modes  must  be  selected:  Query,  Verify,
   Install/Upgrade/Freshen/Reinstall,  Uninstall,  Set Owners/Groups, Show
   Querytags, and Show Configuration.

   GENERAL OPTIONS
   These options can be used in all the different modes.

   -?, --help
          Print a longer usage message then normal.

   --version
          Print a single line containing the version number of  rpm  being
          used.

   --quiet
          Print  as little as possible - normally only error messages will
          be displayed.

   -v     Print verbose information - normally routine  progress  messages
          will be displayed.

   -vv    Print lots of ugly debugging information.

   --rcfile FILELIST
          Each  of  the  files  in  the  colon  separated FILELIST is read
          sequentially by rpm for  configuration  information.   Only  the
          first  file  in the list must exist, and tildes will be expanded
          to   the   value   of   $HOME.    The   default   FILELIST    is
          /usr/lib/rpm/rpmrc:/usr/lib/rpm/redhat/rpmrc:/etc/rpmrc:~/.rpmrc.

   --pipe CMD
          Pipes the output of rpm to the command CMD.

   --dbpath DIRECTORY
          Use the database in  DIRECTORY  rather  than  the  default  path
          /var/lib/rpm

   --root DIRECTORY
          Use the file system tree rooted at DIRECTORY for all operations.
          Note that this means the database within DIRECTORY will be  used
          for  dependency  checks  and  any  scriptlet(s)  (e.g.  %post if
          installing, or %prep if building, a package) will be run after a
          chroot(2) to DIRECTORY.

   -D, --define='MACRO EXPR'
          Defines MACRO with value EXPR.

   --undefine='MACRO'
          Undefines MACRO.

   -E, --eval='EXPR'
          Prints macro expansion of EXPR.

   INSTALL AND UPGRADE OPTIONS
   In  these  options, PACKAGE_FILE can be either rpm binary file or ASCII
   package manifest (see PACKAGE SELECTION OPTIONS), and may be  specified
   as  an  ftp  or  http URL, in which case the package will be downloaded
   before being installed. See FTP/HTTP OPTIONS for information  on  rpm's
   internal ftp and http client support.

   The general form of an rpm install command is

   rpm {-i|--install} [install-options] PACKAGE_FILE ...

   This installs a new package.

   The general form of an rpm upgrade command is

   rpm {-U|--upgrade} [install-options] PACKAGE_FILE ...

   This  upgrades  or  installs the package currently installed to a newer
   version.  This is the same as install, except all other  version(s)  of
   the package are removed after the new package is installed.

   rpm {-F|--freshen} [install-options] PACKAGE_FILE ...

   This  will upgrade packages, but only ones for which an earlier version
   is installed.

   The general form of an rpm reinstall command is

   rpm {--reinstall} [install-options] PACKAGE_FILE ...

   This reinstalls a previously installed package.

   --allfiles
          Installs or upgrades all the missingok  files  in  the  package,
          regardless if they exist.

   --badreloc
          Used  with --relocate, permit relocations on all file paths, not
          just those OLDPATH's included in the binary  package  relocation
          hint(s).

   --excludepath OLDPATH
          Don't install files whose name begins with OLDPATH.

   --excludedocs
          Don't install any files which are marked as documentation (which
          includes man pages and texinfo documents).

   --force
          Same as using --replacepkgs, --replacefiles, and --oldpackage.

   -h, --hash
          Print 50 hash marks as the package  archive  is  unpacked.   Use
          with -v|--verbose for a nicer display.

   --ignoresize
          Don't  check mount file systems for sufficient disk space before
          installing this package.

   --ignorearch
          Allow installation or upgrading even if the architectures of the
          binary package and host don't match.

   --ignoreos
          Allow installation or upgrading even if the operating systems of
          the binary package and host don't match.

   --includedocs
          Install documentation files. This is the default behavior.

   --justdb
          Update only the database, not the filesystem.

   --nodigest
          Don't verify package or header digests when reading.

   --nomanifest
          Don't process non-package files as manifests.

   --nosignature
          Don't verify package or header signatures when reading.

   --nodeps
          Don't do a dependency check before  installing  or  upgrading  a
          package.

   --noorder
          Don't  reorder the packages for an install. The list of packages
          would normally be reordered to satisfy dependencies.

   --noscripts

   --nopre

   --nopost

   --nopreun

   --nopostun

   --nopretrans

   --noposttrans
          Don't execute the scriptlet of the same name.   The  --noscripts
          option is equivalent to

          --nopre --nopost --nopreun --nopostun --nopretrans --noposttrans

          and  turns  off  the execution of the corresponding %pre, %post,
          %preun, %postun %pretrans, and %posttrans scriptlet(s).

   --notriggers

   --notriggerin

   --notriggerun

   --notriggerprein

   --notriggerpostun
          Don't execute any trigger scriptlet  of  the  named  type.   The
          --notriggers option is equivalent to

          --notriggerprein --notriggerin --notriggerun --notriggerpostun

          and  turns  off  execution  of  the corresponding %triggerprein,
          %triggerin, %triggerun, and %triggerpostun scriptlet(s).

   --oldpackage
          Allow an upgrade to replace a newer package with an older one.

   --percent
          Print  percentages  as  files  are  unpacked  from  the  package
          archive.   This  is  intended to make rpm easy to run from other
          tools.

   --prefix NEWPATH
          For relocatable binary packages, translate all file  paths  that
          start  with  the  installation  prefix in the package relocation
          hint(s) to NEWPATH.

   --relocate OLDPATH=NEWPATH
          For relocatable binary packages, translate all file  paths  that
          start with OLDPATH in the package relocation hint(s) to NEWPATH.
          This option can be used repeatedly if several OLDPATH's  in  the
          package are to be relocated.

   --replacefiles
          Install  the  packages  even  if  they replace files from other,
          already installed, packages.

   --replacepkgs
          Install the packages even if some of them are already  installed
          on this system.

   --test Do  not  install  the  package,  simply  check  for  and  report
          potential conflicts.

   ERASE OPTIONS
   The general form of an rpm erase command is

   rpm {-e|--erase} [--allmatches] [--nodeps] [--noscripts] [--notriggers]
   [--test] PACKAGE_NAME ...

   The following options may also be used:

   --allmatches
          Remove  all  versions  of  the package which match PACKAGE_NAME.
          Normally an error is issued  if  PACKAGE_NAME  matches  multiple
          packages.

   --nodeps
          Don't check dependencies before uninstalling the packages.

   --noscripts

   --nopreun

   --nopostun
          Don't  execute  the scriptlet of the same name.  The --noscripts
          option during package erase is equivalent to

          --nopreun --nopostun

          and turns off the execution of  the  corresponding  %preun,  and
          %postun scriptlet(s).

   --notriggers

   --notriggerun

   --notriggerpostun
          Don't  execute  any  trigger  scriptlet  of the named type.  The
          --notriggers option is equivalent to

          --notriggerun --notriggerpostun

          and turns off execution of  the  corresponding  %triggerun,  and
          %triggerpostun scriptlet(s).

   --test Don't  really  uninstall  anything, just go through the motions.
          Useful in conjunction with the -vv option for debugging.

   QUERY OPTIONS
   The general form of an rpm query command is

   rpm {-q|--query} [select-options] [query-options]

   You may specify the format that package information should  be  printed
   in. To do this, you use the

    --qf|--queryformat QUERYFMT

   option,  followed  by  the  QUERYFMT  format string.  Query formats are
   modified versions of the standard printf(3) formatting. The  format  is
   made  up  of  static  strings  (which  may include standard C character
   escapes for newlines, tabs, and other special characters) and printf(3)
   type  formatters.   As  rpm  already  knows the type to print, the type
   specifier must be omitted however, and replaced  by  the  name  of  the
   header tag to be printed, enclosed by {} characters. Tag names are case
   insensitive, and the leading RPMTAG_ portion of the  tag  name  may  be
   omitted as well.

   Alternate  output  formats  may  be requested by following the tag with
   :typetag.  Currently, the following types are supported:

   :armor Wrap a public key in ASCII armor.

   :arraysize
          Display number of elements in array tags.

   :base64
          Encode binary data using base64.

   :date  Use strftime(3) "%c" format.

   :day   Use strftime(3) "%a %b %d %Y" format.

   :depflags
          Format dependency comparison operator.

   :deptype
          Format dependency type.

   :expand
          Perform macro expansion.

   :fflags
          Format file flags.

   :fstate
          Format file state.

   :fstatus
          Format file verify status.

   :hex   Format in hexadecimal.

   :octal Format in octal.

   :perms Format file permissions.

   :pgpsig
          Display signature fingerprint and time.

   :shescape
          Escape single quotes for use in a script.

   :triggertype
          Display trigger suffix.

   :vflags
          File verification flags.

   :xml   Wrap data in simple xml markup.

   For example, to print only the names of the packages queried, you could
   use  %{NAME}  as  the  format  string.   To print the packages name and
   distribution   information   in   two   columns,    you    could    use
   %-30{NAME}%{DISTRIBUTION}.  rpm will print a list of all of the tags it
   knows about when it is invoked with the --querytags argument.

   There are two subsets of options for querying: package  selection,  and
   information selection.

   PACKAGE SELECTION OPTIONS:
   PACKAGE_NAME
          Query  installed  package  named  PACKAGE_NAME.  To  specify the
          package more precisely the package name may be followed  by  the
          version  or  version  and release both separated by a dash or an
          architecture name separated by a dot. See the output of rpm  -qa
          or rpm -qp PACKAGE_FILE as an example.

   -a, --all
          Query all installed packages.

   -f, --file FILE
          Query package owning FILE.

   -g, --group GROUP
          Query packages with the group of GROUP.

   --hdrid SHA1
          Query  package that contains a given header identifier, i.e. the
          SHA1 digest of the immutable header region.

   -p, --package PACKAGE_FILE
          Query an (uninstalled) package PACKAGE_FILE.   The  PACKAGE_FILE
          may  be specified as an ftp or http style URL, in which case the
          package header will be downloaded  and  queried.   See  FTP/HTTP
          OPTIONS  for  information  on rpm's internal ftp and http client
          support. The PACKAGE_FILE argument(s), if not a binary  package,
          will   be  interpreted  as  an  ASCII  package  manifest  unless
          --nomanifest  option  is  used.   In  manifests,  comments   are
          permitted,  starting  with  a  '#',  and  each line of a package
          manifest  file  may   include   white   space   separated   glob
          expressions,  including  URL's,  that  will be expanded to paths
          that are  substituted  in  place  of  the  package  manifest  as
          additional PACKAGE_FILE arguments to the query.

   --pkgid MD5
          Query package that contains a given package identifier, i.e. the
          MD5 digest of the combined header and payload contents.

   --querybynumber HDRNUM
          Query the HDRNUMth database entry directly; this is useful  only
          for debugging.

   --specfile SPECFILE
          Parse  and  query SPECFILE as if it were a package. Although not
          all the information (e.g. file lists) is available, this type of
          query  permits  rpm  to be used to extract information from spec
          files without having to write a specfile parser.

   --tid TID
          Query package(s) that have a given TID transaction identifier. A
          unix  time  stamp is currently used as a transaction identifier.
          All package(s) installed or erased within a  single  transaction
          have a common identifier.

   --triggeredby PACKAGE_NAME
          Query packages that are triggered by package(s) PACKAGE_NAME.

   --whatprovides CAPABILITY
          Query all packages that provide the CAPABILITY capability.

   --whatrequires CAPABILITY
          Query   all   packages   that   require  CAPABILITY  for  proper
          functioning.

   PACKAGE QUERY OPTIONS:
   --changelog
          Display change information for the package.

   -c, --configfiles
          List only configuration files (implies -l).

   --conflicts
          List capabilities this package conflicts with.

   -d, --docfiles
          List only documentation files (implies -l).

   --dump Dump file information as follows (implies -l):

          path size mtime digest mode owner group isconfig isdoc rdev symlink

   --filesbypkg
          List all the files in each selected package.

   -i, --info
          Display  package  information,  including  name,  version,   and
          description.  This uses the --queryformat if one was specified.

   --last Orders  the package listing by install time such that the latest
          packages are at the top.

   -L, --licensefiles
          List only license files (implies -l).

   -l, --list
          List files in package.

   --obsoletes
          List packages this package obsoletes.

   --provides
          List capabilities this package provides.

   -R, --requires
          List capabilities on which this package depends.

   --scripts
          List the package specific scriptlet(s) that are used as part  of
          the installation and uninstallation processes.

   -s, --state
          Display  the  states  of files in the package (implies -l).  The
          state of each file is one of normal, not installed, or replaced.

   --triggers, --triggerscripts
          Display the trigger scripts, if any, which are contained in  the
          package.

   VERIFY OPTIONS
   The general form of an rpm verify command is

   rpm {-V|--verify} [select-options] [verify-options]

   Verifying  a  package compares information about the installed files in
   the package with information about the files  taken  from  the  package
   metadata  stored  in  the  rpm database.  Among other things, verifying
   compares the size, digest, permissions, type, owner and group  of  each
   file.   Any discrepancies are displayed.  Files that were not installed
   from  the  package,  for  example,  documentation  files  excluded   on
   installation   using  the  "--excludedocs"  option,  will  be  silently
   ignored.

   The package selection options are the  same  as  for  package  querying
   (including  package manifest files as arguments).  Other options unique
   to verify mode are:

   --nodeps
          Don't verify dependencies of packages.

   --nodigest
          Don't verify package or header digests when reading.

   --nofiles
          Don't verify any attributes of package files.

   --noscripts
          Don't execute the %verifyscript scriptlet (if any).

   --nosignature
          Don't verify package or header signatures when reading.

   --nolinkto

   --nofiledigest (formerly --nomd5)

   --nosize

   --nouser

   --nogroup

   --nomtime

   --nomode

   --nordev
          Don't verify the corresponding file attribute.

   The format of the output is  a  string  of  9  characters,  a  possible
   attribute marker:

   c %config configuration file.
   d %doc documentation file.
   g %ghost file (i.e. the file contents are not included in the package payload).
   l %license license file.
   r %readme readme file.

   from  the  package  header,  followed  by the file name.  Each of the 9
   characters denotes the result of a comparison of  attribute(s)  of  the
   file  to  the  value of those attribute(s) recorded in the database.  A
   single "." (period) means the test passed, while a single "?" (question
   mark)  indicates the test could not be performed (e.g. file permissions
   prevent reading). Otherwise, the  (mnemonically  emBoldened)  character
   denotes failure of the corresponding --verify test:

   S file Size differs
   M Mode differs (includes permissions and file type)
   5 digest (formerly MD5 sum) differs
   D Device major/minor number mismatch
   L readLink(2) path mismatch
   U User ownership differs
   G Group ownership differs
   T mTime differs
   P caPabilities differ

   MISCELLANEOUS COMMANDS
   rpm --showrc
          shows  the  values  rpm  will  use  for  all  of the options are
          currently set in rpmrc and macros configuration file(s).

   rpm --setperms PACKAGE_NAME
          sets permissions of files in the given package.

   rpm --setugids PACKAGE_NAME
          sets user/group ownership of files in the given package.

   FTP/HTTP OPTIONS
   rpm can act as an FTP and/or  HTTP  client  so  that  packages  can  be
   queried  or  installed  from  the internet.  Package files for install,
   upgrade, and query operations may be specified as an ftp or http  style
   URL:

   ftp://USER:PASSWORD@HOST:PORT/path/to/package.rpm

   If  the :PASSWORD portion is omitted, the password will be prompted for
   (once per user/hostname pair).  If  both  the  user  and  password  are
   omitted,  anonymous  ftp  is  used.   In  all cases, passive (PASV) ftp
   transfers are performed.

   rpm allows the following options to be used with ftp URLs:

   --ftpproxy HOST
          The host HOST will be  used  as  a  proxy  server  for  all  ftp
          transfers,  which  allows users to ftp through firewall machines
          which use proxy systems. This option may also  be  specified  by
          configuring the macro %_ftpproxy.

   --ftpport PORT
          The  TCP  PORT number to use for the ftp connection on the proxy
          ftp server instead of the default port. This option may also  be
          specified by configuring the macro %_ftpport.

   rpm allows the following options to be used with http URLs:

   --httpproxy HOST
          The  host  HOST  will  be  used  as  a proxy server for all http
          transfers. This option may also be specified by configuring  the
          macro %_httpproxy.

   --httpport PORT
          The  TCP PORT number to use for the http connection on the proxy
          http server instead of the default port. This option may also be
          specified by configuring the macro %_httpport.

LEGACY ISSUES

   Executing rpmbuild
   The  build  modes  of  rpm  are  now  resident in the /usr/bin/rpmbuild
   executable.  Install the  package  containing  rpmbuild  (usually  rpm-
   build)  and  see  rpmbuild(8)  for  documentation  of all the rpm build
   modes.

FILES

   rpmrc Configuration
   /usr/lib/rpm/rpmrc
   /usr/lib/rpm/redhat/rpmrc
   /etc/rpmrc
   ~/.rpmrc

   Macro Configuration
   /usr/lib/rpm/macros
   /usr/lib/rpm/redhat/macros
   /etc/rpm/macros
   ~/.rpmmacros

   Database
   /var/lib/rpm/Basenames
   /var/lib/rpm/Conflictname
   /var/lib/rpm/Dirnames
   /var/lib/rpm/Group
   /var/lib/rpm/Installtid
   /var/lib/rpm/Name
   /var/lib/rpm/Obsoletename
   /var/lib/rpm/Packages
   /var/lib/rpm/Providename
   /var/lib/rpm/Requirename
   /var/lib/rpm/Sha1header
   /var/lib/rpm/Sigmd5
   /var/lib/rpm/Triggername

   Temporary
   /var/tmp/rpm*

SEE ALSO

   popt(3),
   rpm2cpio(8),
   rpmbuild(8),
   rpmdb(8),
   rpmkeys(8),
   rpmsign(8),
   rpmspec(8),

   rpm --help - as rpm supports customizing the options via  popt  aliases
   it's  impossible  to  guarantee  that  what's  described  in the manual
   matches what's available.

   http://www.rpm.org/ <URL:http://www.rpm.org/>

AUTHORS

   Marc Ewing <marc@redhat.com>
   Jeff Johnson <jbj@redhat.com>
   Erik Troan <ewt@redhat.com>





Opportunity


Personal Opportunity - Free software gives you access to billions of dollars of software at no cost. Use this software for your business, personal use or to develop a profitable skill. Access to source code provides access to a level of capabilities/information that companies protect though copyrights. Open source is a core component of the Internet and it is available to you. Leverage the billions of dollars in resources and capabilities to build a career, establish a business or change the world. The potential is endless for those who understand the opportunity.

Business Opportunity - Goldman Sachs, IBM and countless large corporations are leveraging open source to reduce costs, develop products and increase their bottom lines. Learn what these companies know about open source and how open source can give you the advantage.





Free Software


Free Software provides computer programs and capabilities at no cost but more importantly, it provides the freedom to run, edit, contribute to, and share the software. The importance of free software is a matter of access, not price. Software at no cost is a benefit but ownership rights to the software and source code is far more significant.


Free Office Software - The Libre Office suite provides top desktop productivity tools for free. This includes, a word processor, spreadsheet, presentation engine, drawing and flowcharting, database and math applications. Libre Office is available for Linux or Windows.





Free Books


The Free Books Library is a collection of thousands of the most popular public domain books in an online readable format. The collection includes great classical literature and more recent works where the U.S. copyright has expired. These books are yours to read and use without restrictions.


Source Code - Want to change a program or know how it works? Open Source provides the source code for its programs so that anyone can use, modify or learn how to write those programs themselves. Visit the GNU source code repositories to download the source.





Education


Study at Harvard, Stanford or MIT - Open edX provides free online courses from Harvard, MIT, Columbia, UC Berkeley and other top Universities. Hundreds of courses for almost all major subjects and course levels. Open edx also offers some paid courses and selected certifications.


Linux Manual Pages - A man or manual page is a form of software documentation found on Linux/Unix operating systems. Topics covered include computer programs (including library and system calls), formal standards and conventions, and even abstract concepts.