Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
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 --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]
	[--whatrecommends CAPABILITY] [--whatsuggests CAPABILITY]
	[--whatsupplements CAPABILITY] [--whatenhances CAPABILITY]

   query-options
	[--changelog] [-c,--configfiles] [--conflicts]
	[-d,--docfiles]	[--dump] [--enhances] [--filesbypkg]
	[-i,--info] [--last] [-l,--list] [--obsoletes]
	[--provides] [--qf,--queryformat QUERYFMT]
	[--recommends] [-R,--requires] [--suggests]
	[--supplements]	[--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 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.

       --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  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] [--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 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. To specify the pack-
	      age  more	precisely the package name may be followed by the ver-
	      sion 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 --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.

       --whatrecommends	CAPABILITY
	      Query all	packages that recommend	CAPABILITY.

       --whatsuggests CAPABILITY
	      Query all	packages that suggest CAPABILITY.

       --whatsupplements CAPABILITY
	      Query all	packages that supplement CAPABILITY.

       --whatenhances CAPABILITY
	      Query all	packages that enhance CAPABILITY.

   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

       --enhances
	      List capabilities	enhanced by package(s)

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

       --recommends
	      List capabilities	recommended by package(s)

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

       --suggests
	      List capabilities	suggested by package(s)

       --supplements
	      List capabilities	supplemented by	package(s)

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

       --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.  This
	      command  can  change permissions of files	in that	package. It is
	      caused by	calling	command	chmod that can	clear  SUID  and  SGID
	      bits  in some situations.	So it is safer to call also --setperms
	      after calling --setugids.

       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)

NAME | SYNOPSIS | DESCRIPTION | LEGACY ISSUES | FILES | SEE ALSO | AUTHORS

Want to link to this manual page? Use this URL:
<https://www.freebsd.org/cgi/man.cgi?query=rpm&manpath=FreeBSD+12.0-RELEASE+and+Ports>

home | help