词条 | RPM Package Manager |
释义 |
| 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,[1] Red Hat | developer = Community & Red Hat[2][3] | released = {{Start date and age|1997|df=yes}}[1] | discontinued = | latest release version = 4.14.2.1 | latest release date = {{Start date and age|2018|10|22|df=yes}} | latest preview version = | latest preview date = | frequently updated = | status = | programming language = C, Perl[4] | operating system = Linux, Unix-like | platform = | size = | language = | language count = | language footnote = | genre = Package management system | license = GPL | alexa = | website = {{URL|www.rpm.org}} | standard = | AsOf = }} RPM Package Manager (RPM) (originally Red Hat Package Manager; now a recursive acronym) is a free and open-source package management system.[5] The name RPM refers to the following: the .rpm file format, files in the .rpm file format, software packaged in such files, 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. Even though it was created for use in Red Hat Linux, RPM is now used in many Linux distributions. 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), CentOS, Fedora (operating system) created jointly between Red Hat and the Fedora community, and Oracle Linux. All versions or variants of the these Linux operating systems use the RPM Package Manager. An RPM package can contain 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). HistoryRPM was originally written in 1997 by Erik Troan and Marc Ewing,[1] based on pm was written by Rik Faith and Doug Hoffman in May 1995 for Red Hat Software, its design and implementations influenced greatly by pms , a package management system by Faith and Kevin Martin in the fall of 1993 for the Bogus Linux Distribution. pm preserves the "Pristine Sources + patches" paradigm of pms , while adding features and eliminating arbitrary limitations present in the implementation. pm provides greatly enhanced database support for tracking and verifying installed packages[4][6][7]FeaturesFor 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. Features of RPM include:
Local operationsPackages 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).[8] Circular dependencies among mutually dependent RPMs (so-called "dependency hell") can be problematic;[9] in such cases a single installation command needs to specify all the relevant packages. RepositoriesRPMs 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 endsSeveral 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 databaseWorking behind the scenes of the package manager is the RPM database, stored in DescriptionWhilst the RPM format is the same across different Linux distributions, the detailed conventions and guidelines may vary across them. Package filename and labelAn RPM is delivered in a single file, normally with a filename in the format:
For example, in the package filename libgnomeuimm-2.0-2.0.0-3.i386.rpm, the The associated source package would be named libgnomeuimm-2.0-2.0.0-3.src.rpm RPMs with the 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:
The package label fields do not need to match the filename. Library packagingLibraries 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 formatThe format is binary and consists of four sections:[5]
SPEC fileThe "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. SRPMA 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. NOSRCThis is a special version of SRPM. It contains "SPEC" file and optionally patches, but does not include sources (usually because of license).[15] 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.orgThe 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, Red Hat Enterprise Linux and derivatives, openSUSE, SUSE Linux Enterprise, Unity Linux, Mageia,[16] OpenEmbedded, Tizen and OpenMandriva Lx (formerly Mandriva). RPM v5Jeff 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 is 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[17]) and also by the OpenPKG project which provides packages for other common UNIX-platforms. OpenMandriva Lx is going to switch back to rpm.org[18] for 4.0 release. OpenEmbedded, the last major user of RPM5, switched back to rpm.org due to issues in RPM5.[19][20]See also{{Portal|Linux|Free and open-source software}}
References1. ^1 2 {{cite web|title=RPM Project Roadmap|url=http://rpm5.org/roadmap.php|publisher=rpm5.org|accessdate=2011-12-11}} 2. ^{{cite web|title=RPM -- plans, goals, etc.|url=https://www.redhat.com/archives/fedora-announce-list/2006-December/msg00003.html|publisher=Max Spevack 3. ^{{cite web|url=http://www.rpm.org/wiki/Docs/RpmOrgFAQ|title=RPM.org FAQ|archive-url=https://web.archive.org/web/20161105023930/http://rpm.org/wiki/Docs/RpmOrgFAQ|archive-date=2016-11-05|dead-url=yes|access-date=2013-08-25|df=}} 4. ^1 {{cite book|url=http://www.rpm.org/max-rpm/s1-intro-to-rpm-package-management-how.html|title=Maximum RPM: Taking the Red Hat Package Manager to the Limit|chapter=Chapter 1: An Introduction to Package Management|pages=22–25|last=Bailey|first=Edward C.|publisher=Red Hat, Inc|year=2000|isbn=978-1888172782|archive-url=https://web.archive.org/web/20160910162726/http://rpm.org/max-rpm/s1-intro-to-rpm-package-management-how.html|archive-date=2016-09-10|dead-url=yes|accessdate=2013-08-13}} 5. ^1 {{cite book|url=http://rpm.org/max-rpm/s1-rpm-file-format-rpm-file-format.html|title=Maximum RPM: Taking the Red Hat Package Manager to the Limit|chapter=Appendix A: Format of the RPM File|pages=325–336|last=Bailey|first=Edward C.|publisher=Red Hat, Inc|year=2000|isbn=978-1888172782|archive-url=https://web.archive.org/web/20160421051859/http://rpm.org/max-rpm/s1-rpm-file-format-rpm-file-format.html|archive-date=2016-04-21|dead-url=yes|access-date=2010-11-22}} 6. ^{{cite web|url=https://docs.fedoraproject.org/en-US/Fedora_Draft_Documentation/0.1/html/RPM_Guide/ch01s02.html|title=RPM Guide-RPM - Design Goals|accessdate=2014-04-14}} 7. ^{{cite web|url=http://ibiblio.org/pub/historic-linux/distributions/bogus-1.0.1/bogus-1.0.1/notes/Announce|title=BOGUS Announce|accessdate=2014-04-14}} 8. ^{{cite web|title=RPM Fusion|url=http://rpmfusion.org/ |publisher=rpmfusion.org|accessdate=2010-11-22}} 9. ^{{cite web|title=An Analysis of RPM Validation Drift|url=http://www.usenix.org/event/lisa02/tech/full_papers/hart/hart.pdf|publisher=USENIX Association|accessdate=2011-03-15}} 10. ^{{cite web|url=http://wiki.meego.com/Zypper|title=Zypper - MeeGo wiki|archive-url=https://web.archive.org/web/20130925160943/http://wiki.meego.com/Zypper|archive-date=2013-09-25|dead-url=yes|access-date=2014-04-14}} 11. ^{{cite web |url=http://arklinux.org/?q=node/53#rpm |title=FAQs: About the Projects |publisher=Ark Linux Official Site |accessdate=2014-04-14 |deadurl=yes |archiveurl=https://web.archive.org/web/20120211234858/http://arklinux.org/?q=node%2F53#rpm |archivedate=2012-02-11 |df= }} 12. ^{{cite web|title=Repair an RPM database safely|url=http://www.oldrpm.org/hintskinks/repairdb/|publisher=|accessdate=2011-11-11}} 13. ^{{cite web|title=Supplemental Packaging Software|url=http://docs.fedoraproject.org/en-US/Fedora_Draft_Documentation/0.1/html/RPM_Guide/ch-extra-packaging-tools.html#id461860|publisher=Fedora Project|accessdate=2011-11-11}} 14. ^{{cite web|title=[PATCH] Add lzip support|url=http://rpm.org/ticket/839|archive-url=https://web.archive.org/web/20160304023554/http://rpm.org/ticket/839|archive-date=2016-03-04|dead-url=yes|access-date=2013-10-24}} 15. ^{{cite web|title=How to package proprietary software|url=https://developers.redhat.com/blog/2014/12/10/how-to-package-proprietary-software/|access-date=2018-07-02}} 16. ^{{citation|date=2013-05-19 |title=Mageia 3 Release Notes: Package management |work=mageia.org |publisher= |url=https://wiki.mageia.org/en/Mageia_3_Release_Notes#Package_management |accessdate=2014-04-14 |mode=cs1}} 17. ^{{citation|last1=Bodnar |first1=Ladislav |last2=Smith |first2=Jesse |lastauthoramp=yes |date=2010-11-22 |title=DistroWatch Weekly |work=DistroWatch |publisher= |url=http://distrowatch.com/weekly.php?issue=20101122#news |accessdate=2010-11-22 |mode=cs1}} 18. ^{{cite web | url=https://forum.openmandriva.org/t/switching-to-rpmv4/1702 | title=Forum: Switching to RPMv4 | accessdate=2018-03-03}} 19. ^{{cite web|url=https://old.yoctoproject.org/downloads/core/pyro23|title=YP Core - Pyro 2.3|publisher=Yocto Project|date=2017-05-12|accessdate=2017-12-04}}([https://web.archive.org/web/20171205042219/https://www.yoctoproject.org/downloads/core/pyro23 archived]) 20. ^{{cite web|url=http://lists.openembedded.org/pipermail/openembedded-architecture/2017-February/000419.html|title=[Openembedded-architecture] Changes that switching from smart to dnf will cause|publisher=Yocto Project|date=2017-02-14|accessdate=2018-11-04}}
|url=http://www.digitalprognosis.com/linuxtips/fun-with-rpm-and-custom-query-strings-on-redhat-linux-or-any-rpm-based-distribution/ |title=Advanced RPM query strings |last=Schroeder |first=Jeff |author-link= |date=2008-01-30 |website=www.digitalprognosis.com |archive-url=https://web.archive.org/web/20110809005454/http://www.digitalprognosis.com/linuxtips/fun-with-rpm-and-custom-query-strings-on-redhat-linux-or-any-rpm-based-distribution/ |archive-date=2011-08-09 |dead-url=yes |access-date=2018-03-28 External links
4 : Archive formats|Free package management systems|Linux package management-related software|Red Hat software |
随便看 |
|
开放百科全书收录14589846条英语、德语、日语等多语种百科知识,基本涵盖了大多数领域的百科知识,是一部内容自由、开放的电子版国际百科全书。