SUPPORT THE WORK

GetWiki

RPM Package Manager

ARTICLE SUBJECTS
aesthetics  →
being  →
complexity  →
database  →
enterprise  →
ethics  →
fiction  →
history  →
internet  →
knowledge  →
language  →
licensing  →
linux  →
logic  →
method  →
news  →
perception  →
philosophy  →
policy  →
purpose  →
religion  →
science  →
sociology  →
software  →
truth  →
unix  →
wiki  →
ARTICLE TYPES
essay  →
feed  →
help  →
system  →
wiki  →
ARTICLE ORIGINS
critical  →
discussion  →
forked  →
imported  →
original  →
RPM Package Manager
[ temporary import ]
please note:
- the content below is remote from Wikipedia
- it has been imported raw for GetWiki
{{Short description|Package management system}}













factoids
name RPM Package Manager (RPM)| title = RPM Package Manager (RPM)| logo = RPM Logo.svg| logo caption = | logo_size = | logo_alt = | screenshot = | caption = | screenshot_size = | screenshot_alt = | collapsible = | author = Erik Troan, Marc Ewing,WEB
RED HAT, Community & Red Hat{{cite web
, RPM -- plans, goals, etc.
,weblink
, Max Spevack
, 2011-01-20
, 2012-10-06
,weblink
, live
, WEB
,weblink
, RPM.org FAQ
,weblink" title="web.archive.org/web/20161105023930weblink">weblink
, 2016-11-05
, dead
, 2013-08-25,
C (programming language)>C, PerlBOOK
,weblink
, Maximum RPM: Taking the Red Hat Package Manager to the Limit
, Chapter 1: An Introduction to Package Management
, 22–25
, Bailey
, Edward C.
, Red Hat, Inc
, 2000
, 978-1888172782
,weblink" title="web.archive.org/web/20160910162726weblink">weblink
, 2016-09-10
, dead
, 2013-08-13, | operating system = Linux, Unix-like| platform = | size = | language = | language count = 40
PUBLISHER = GITHUB ACCESS-DATE = 2022-04-23 ARCHIVE-URL = HTTPS://WEB.ARCHIVE.ORG/WEB/20220423032944/HTTPS://GITHUB.COM/RPM-SOFTWARE-MANAGEMENT/RPM/BLOB/MASTER/PO/LINGUAS, live, | genre = Package management systemGNU General Public License>GPL| alexa = weblink}}| standard = | AsOf = }}RPM Package Manager (RPM) (originally Red Hat Package Manager, now a recursive acronym) is a free and open-source package management system.BOOK,weblink Maximum RPM: Taking the Red Hat Package Manager to the Limit, Appendix A: Format of the RPM File, 325–336, Bailey, Edward C., Red Hat, Inc, 2000, 978-1888172782,weblink" title="web.archive.org/web/20160421051859weblink">weblink 2016-04-21, dead, 2010-11-22, The name RPM refers to the {{code|.rpm}} file format and the package manager program itself. RPM was intended primarily for Linux distributions; the file format is the baseline package format of the Linux Standard Base.Although it was created for use in Red Hat Linux, RPM is now used in many Linux distributions such as PCLinuxOS, Fedora, AlmaLinux, CentOS, openSUSE, OpenMandriva and Oracle Linux. It has also been ported to some other operating systems, such as Novell NetWare (as of version 6.5 SP3), IBM's AIX (as of version 4),WEB,weblink 2018-10-24, Configuring YUM and creating local repositories on IBM AIX, 2020-09-03, 2020-10-03,weblink live, IBM i,WEB,weblink 2018-07-18, RPM and Yum are a big deal for IBM i. Here's why, 2020-09-03, 2019-06-29,weblink live, and ArcaOS.WEB,weblink 2020-09-04, Package Manager, 2016-03-25,weblink live, An RPM package can contain an arbitrary set of files. Most RPM files are "binary RPMs" (or BRPMs) containing the compiled version of some software. There are also "source RPMs" (or SRPMs) containing the source code used to build a binary package. These have an appropriate tag in the file header that distinguishes them from normal (B)RPMs, causing them to be extracted to /usr/src on installation. SRPMs customarily carry the file extension ".src.rpm" (.spm on file systems limited to 3 extension characters, e.g. old DOS FAT).

History

RPM was originally written in 1997 by Erik Troan and Marc Ewing, based on {{code|pms}}, {{code|rpp}}, and {{code|pm}} experiences.{{code|pm}} was written by Rik Faith and Doug Hoffman in May 1995 for Red Hat Software, its design and implementations were influenced greatly by {{code|pms}}, a package management system by Faith and Kevin Martin in the fall of 1993 for the Bogus Linux Distribution. {{code|pm}} preserves the "Pristine Sources + patches" paradigm of {{code|pms}}, while adding features and eliminating arbitrary limitations present in the implementation. {{code|pm}} provides greatly enhanced database support for tracking and verifying installed packages.WEB,weblink RPM Guide-RPM - Design Goals, 2014-04-14, 2014-03-21,weblink" title="web.archive.org/web/20140321202326weblink">weblink dead, WEB,weblink BOGUS Announce, 2014-04-14, 2013-11-04,weblink" title="web.archive.org/web/20131104115129weblink">weblink live,

Features

For a system administrator performing software installation and maintenance, the use of package management rather than manual building has advantages such as simplicity, consistency and the ability for these processes to be automated and non-interactive. rpm uses Berkeley DB as the backend database although since 4.15 in 2019, it supports building rpm packages without Berkeley DB (–disable-bdb).WEB, 2020-01-29, rpm4 was support for building rpm without Berkeley DB (–disable-bdb),weblink 2023-09-18, The FreeBSD Forums, en-US, 2024-02-23,weblink live, Features of RPM include:
  • RPM packages can be cryptographically verified with GPG and MD5
  • Original source archive(s) (e.g. {{code|.tar.gz}}, {{code|.tar.bz2}}) are included in SRPMs, making verification easier
  • Delta update: PatchRPMs and DeltaRPMs, the RPM equivalent of a patch file, can incrementally update RPM-installed software
  • Automatic build-time dependency evaluation.

Local operations

Packages may come from within a particular distribution (for example Red Hat Enterprise Linux) or be built for it by other parties (for example RPM Fusion for Fedora Linux).WEB, RPM Fusion,weblink rpmfusion.org, 2010-11-22, 2019-02-11,weblink live, Circular dependencies among mutually dependent RPMs (so-called "dependency hell") can be problematic;WEB, An Analysis of RPM Validation Drift,weblink USENIX Association, 2011-03-15, 2011-07-28,weblink" title="web.archive.org/web/20110728150916weblink">weblink live, in such cases a single installation command needs to specify all the relevant packages.

Repositories

RPMs are often collected centrally in one or more repositories on the internet. A site often has its own RPM repositories which may either act as local mirrors of such internet repositories or be locally maintained collections of useful RPMs.

Front ends

Several front-ends to RPM ease the process of obtaining and installing RPMs from repositories and help in resolving their dependencies. These include:

Local RPM installation database

Working behind the scenes of the package manager is the RPM database, stored in {{code|/var/lib/rpm}}. It uses Berkeley DB as its back-end. It consists of a single database ({{code|Packages}}) containing all of the meta information of the installed RPMs. Multiple databases are created for indexing purposes, replicating data to speed up queries. The database is used to keep track of all files that are changed and created when a user (using RPM) installs a package, thus enabling the user (via RPM) to reverse the changes and remove the package later. If the database gets corrupted (which is possible if the RPM client is killed), the index databases can be recreated with the {{code|rpm --rebuilddb}} command.WEB, Repair an RPM database safely,weblinkweblink" title="web.archive.org/web/20190806161221weblink">weblink 2019-08-06, dead, 2011-11-11,

Description

Whilst the RPM format is the same across different Linux distributions, the detailed conventions and guidelines may vary across them.

Package filename and label

An RPM is delivered in a single file, normally with a filename in the format:
{{code|--.src.rpm}} for source packages, or {{code|--..rpm}} for binaries.
For example, in the package filename {{code|libgnomeuimm-2.0-2.0.0_3.i386.rpm}}, the {{code|}} is {{code|libgnomeuimm}}, the {{code|}} is {{code|2.0}}, the {{code|}} is {{code|2.0.0_3}}, and the {{code|}} is {{code|i386}}.The associated source package would be named {{code|libgnomeuimm-2.0-2.0.0_3.src.rpm}}RPMs with the {{code|noarch.rpm}} extension do not depend on a particular CPU architecture. For example, these RPMs may contain graphics and text for other programs to use. They may also contain shell scripts or programs written in other interpreted programming languages such as Python.The RPM contents also include a package label, which contains the following pieces of information:
  • software name
  • software version (the version taken from original upstream source of the software)
  • package release (the number of times the package has been rebuilt using the same version of the software). This field is also often used for indicating the specific distribution the package is intended for by appending strings like "mdv" (formerly, "mdk") (Mandriva Linux), "mga" (Mageia), "fc4" (Fedora Core 4), "rh9" (Red Hat Linux 9), "suse100" (SUSE Linux 10.0) etc.
  • architecture for which the package was built (i386, i686, x86_64, ppc, etc.)
The package label fields do not need to match the filename.

Library packaging

Libraries are distributed in two separate packages for each version. One contains the precompiled code for use at run-time, while the second one contains the related development files such as headers, etc. Those packages have "-devel" appended to their name field. The system administrator should ensure that the versions of the binary and development packages match.

Binary format

The format is binary and consists of four sections:
  • The lead, which identifies the file as an RPM file and contains some obsolete headers.
  • The signature, which can be used to ensure integrity and/or authenticity.
  • The header, which contains metadata including package name, version, architecture, file list, etc.
  • A file archive (the payload), which usually is in cpio format, compressed with gzip. The {{code|rpm2cpio}} tool enables retrieval of the cpio file without needing to install the RPM package.WEB, Supplemental Packaging Software,weblink Fedora Project, 2011-11-11, 2016-03-10,weblink dead,
    • The Linux Standard Base requires the use of gzip, but Fedora 30 packages are xz-compressed and Fedora 31 packages might be zstd-compressed.WEB, Switch RPMs to zstd compression, Fedora Project, Wiki, 2019-06-02,weblink 2019-06-02,weblink live, Recent versions of RPM can also use bzip2, lzip,WEB, [PATCH] Add lzip support,weblinkweblink" title="web.archive.org/web/20160304023554weblink">weblink 2016-03-04, dead, 2013-10-24, or lzma compression.
    • RPM 5.0 format supports using xar for archiving.

SPEC file

The "Recipe" for creating an RPM package is a spec file. Spec files end in the ".spec" suffix and contain the package name, version, RPM revision number, steps to build, install, and clean a package, and a changelog. Multiple packages can be built from a single RPM spec file, if desired. RPM packages are created from RPM spec files using the rpmbuild tool.Spec files are usually distributed within SRPM files, which contain the spec file packaged along with the source code.

SRPM

A typical RPM is pre-compiled software ready for direct installation. The corresponding source code can also be distributed. This is done in an SRPM, which also includes the "SPEC" file describing the software and how it is built. The SRPM also allows the user to compile, and perhaps modify, the code itself.A software package could contain only platform independent scripts. In such a case, the developer could provide only an SRPM, which is still an installable RPM.

NOSRC

This is a special version of SRPM. It contains "SPEC" file and optionally patches, but does not include sources (usually because of license).WEB, How to package proprietary software, 10 December 2014,weblink 2018-07-02, 2018-07-02,weblink live,

Forks

{{As of|2010|6}}, there are two versions of RPM in development: one led by the Fedora Project and Red Hat, and the other by a separate group led by a previous maintainer of RPM, a former employee of Red Hat.

RPM.org

The rpm.org community's first major code revision was in July 2007; version 4.8 was released in January 2010, version 4.9 in March 2011, 4.10 in May 2012, 4.11 in January 2013, 4.12 in September 2014 and 4.13 in July 2015.This version is used by distributions such as Fedora Linux, Red Hat Enterprise Linux and derivatives, openSUSE, SUSE Linux Enterprise, Unity Linux, Mageia,{{citation |date=2013-05-19 |title=Mageia 3 Release Notes: Package management |work=mageia.org |url=https://wiki.mageia.org/en/Mageia_3_Release_Notes#Package_management |access-date=2014-04-14 |mode=cs1 |archive-date=2014-02-07 |archive-url=https://web.archive.org/web/20140207235944weblink |url-status=live }} OpenEmbedded, Tizen and OpenMandriva Lx (formerly Mandriva).

RPM v5 (Defunct)

Jeff Johnson, the RPM maintainer since 1999, continued development efforts together with participants from several other distributions. RPM version 5 was released in May 2007.This version was used by distributions such as Wind River Linux (until Wind River Linux 10), Rosa Linux, and OpenMandriva Lx (former Mandriva Linux which switched to rpm5 in 2011{{citation |last1=Bodnar |first1=Ladislav |last2=Smith |first2=Jesse |name-list-style=amp |date=2010-11-22 |title=DistroWatch Weekly |work=DistroWatch |url=https://distrowatch.com/weekly.php?issue=20101122#news |access-date=2010-11-22 |mode=cs1 |archive-date=2018-06-23 |archive-url=https://web.archive.org/web/20180623165935weblink |url-status=live }}) and also by the OpenPKG project which provides packages for other common UNIX-platforms.OpenMandriva Lx has switched back to rpm.orgWEB,weblink Forum: Switching to RPMv4, 2018-03-03, 2022-01-14,weblink live, for 4.0 release.{{needs update|date=June 2020}}OpenEmbedded, the last major user of RPM5, switched back to rpm.org due to issues in RPM5.WEB,weblink YP Core - Pyro 2.3, Yocto Project, 2017-05-12, 2017-12-04, 2017-12-05,weblink bot: unknown, ()WEB,weblink [Openembedded-architecture] Changes that switching from smart to dnf will cause, Yocto Project, 2017-02-14, 2018-11-04, 2018-11-05,weblink" title="web.archive.org/web/20181105160511weblink">weblink live,

See also

References

{{Reflist}}
  • WEB


,weblink
, Advanced RPM query strings
, Schroeder
, Jeff
, 2008-01-30
, www.digitalprognosis.com
,weblink" title="web.archive.org/web/20110809005454weblink">weblink
, 2011-08-09
, dead
, 2018-03-28,

External links

{{Linux package management systems}}{{Red Hat}}{{Archive formats}}


- content above as imported from Wikipedia
- "RPM Package Manager" does not exist on GetWiki (yet)
- time: 2:13pm EDT - Wed, May 15 2024
[ this remote article is provided by Wikipedia ]
LATEST EDITS [ see all ]
GETWIKI 23 MAY 2022
GETWIKI 09 JUL 2019
Eastern Philosophy
History of Philosophy
GETWIKI 09 MAY 2016
GETWIKI 18 OCT 2015
M.R.M. Parrott
Biographies
GETWIKI 20 AUG 2014
CONNECT