Yolinux.com

rpm manpage

Search topic Section


RPM(8)			    System Manager's Manual			RPM(8)



NAME
       rpm - RPM Package Manager

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



       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 {-e|--erase} [--allmatches] [--justdb] [--nodeps] [--noscripts]
	   [--notriggers] [--test] PACKAGE_NAME ...


   MISCELLANEOUS:
       rpm {--querytags|--showrc}



       rpm {--setperms|--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] [--noconfig] [--noghost]


   install-options
	[--allfiles] [--badreloc] [--excludepath OLDPATH]
	[--excludedocs] [--force] [-h,--hash]
	[--ignoresize] [--ignorearch] [--ignoreos]
	[--includedocs] [--justdb] [--nocollections]
	[--nodeps] [--nodigest] [--nosignature] [--noplugins]
	[--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 pack-
       age  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/red-
	      hat/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.

       --noplugins
	      Do not load and execute plugins.

       --noscripts

       --nopre

       --nopost

       --nopreun

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

	      --nopre --nopost --nopreun --nopostun

	      and  turns  off  the execution of the corresponding %pre, %post,
	      %preun, and %postun 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  ar-
	      chive.   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 poten-
	      tial conflicts.

   ERASE OPTIONS
       The general form of an rpm erase command is

       rpm {-e|--erase}	 [--allmatches]	 [--justdb]  [--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.

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

       --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 mod-
       ified 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  dis-
       tribution information in two columns, you could use %-30{NAME}%{DISTRI-
       BUTION}.	 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.

       -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 --noman-
	      ifest  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 argu-
	      ments 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  function-
	      ing.

   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 instal-
       lation 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.

       --noconfig
	      Don't verify config files.

       --noghost
	      Don't display ghost 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 cur-
	      rently 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.

       Options --setperms and --setugids are mutually exclusive.


   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	 omit-
       ted, 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	trans-
	      fers,  which allows users to ftp through firewall machines which
	      use proxy systems. This option may also be specified by  config-
	      uring 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 trans-
	      fers. 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 exe-
       cutable.	 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>



Red Hat, Inc.			 09 June 2002				RPM(8)