RPM Package Manager - RPM Package Manager
Originale forfattere | Erik Troan, Marc Ewing , Red Hat |
---|---|
Udvikler (er) | Community & Red Hat |
Første udgivelse | 1997 |
Stabil udgivelse | 4.16.1.3 / 22. marts 2021
|
Udgivelsesversion | 4.17.0 alfa / 26. april 2021
|
Depot | |
Skrevet i | C , Perl |
Operativ system | Linux , Unix-lignende |
Type | Pakkehåndteringssystem |
Licens | GPL |
Internet side | rpm |
RPM Package Manager ( RPM ) (oprindeligt Red Hat Package Manager , nu et rekursivt akronym ) er et gratis og open-source pakkehåndteringssystem . Navnet RPM refererer til .rpm
filformat og selve pakkehåndteringsprogrammet. RPM var primært beregnet til Linux -distributioner ; filformatet er baseline -pakkeformatet for Linux Standard Base .
Selvom det blev oprettet til brug i Red Hat Linux , bruges RPM nu i mange Linux -distributioner såsom Fedora , CentOS , openSUSE , OpenMandriva og Oracle Linux . Det er også blevet portet til nogle andre operativsystemer , såsom Novell NetWare (fra version 6.5 SP3), IBM's AIX (fra version 4), IBM i og ArcaOS .
En RPM -pakke kan indeholde et vilkårligt sæt filer. De fleste RPM -filer er "binære RPM'er" (eller BRPM'er), der indeholder den kompilerede version af noget software. Der er også "kilde -RPM'er" (eller SRPM'er), der indeholder kildekoden, der bruges til at opbygge en binær pakke. Disse har et passende mærke i filoverskriften, der adskiller dem fra normale (B) omdrejningstal, hvilket får dem til at blive ekstraheret til /usr /src ved installationen. SRPM'er bærer sædvanligvis filtypenavnet ".src.rpm" (.spm på filsystemer begrænset til 3 udvidelseskarakterer, f.eks. Gammelt DOS FAT ).
Historie
RPM var oprindeligt skrevet i 1997 af Erik Trøan og Marc Ewing, baseret på pms
, rpp
og pm
erfaringer.
pm
blev skrevet af Rik Faith og Doug Hoffman i maj 1995 til Red Hat Software, dets design og implementeringer påvirket i høj grad af pms
et pakkehåndteringssystem af Faith og Kevin Martin i efteråret 1993 til Bogus Linux Distribution. pm
bevarer " Uberørte kilder + patches" -paradigmet for pms
, samtidig med at der tilføjes funktioner og elimineres vilkårlige begrænsninger i implementeringen. pm
giver stærkt forbedret databaseunderstøttelse til sporing og verificering af installerede pakker
Funktioner
For en systemadministrator, der udfører softwareinstallation og vedligeholdelse, har brugen af pakkehåndtering frem for manuel opbygning fordele som enkelhed, konsistens og muligheden for, at disse processer kan automatiseres og ikke-interaktive. rpm bruger Berkeley DB som backend -database, selvom den siden 4.15 i 2019 understøtter opbygning af rpm -pakker uden Berkeley DB ( –disable-bdb
).
Funktioner i RPM omfatter:
- RPM -pakker kan verificeres kryptografisk med GPG og MD5
- Originale kildearkiver (f.eks
.tar.gz
..tar.bz2
) Er inkluderet i SRPM'er, hvilket gør verifikation lettere - Delta-opdatering : PatchRPM'er og DeltaRPM'er, RPM-ækvivalent med en patch- fil, kan gradvist opdatere RPM-installeret software
- Automatisk evaluering af afhængighed af byggetiden.
Lokal drift
Pakker kan komme fra en bestemt distribution (f.eks. Red Hat Enterprise Linux ) eller blive bygget til det af andre parter (f.eks. RPM Fusion for Fedora). Cirkulære afhængigheder blandt indbyrdes afhængige RPM'er (såkaldt " afhængighedshelvede ") kan være problematiske; i sådanne tilfælde skal en enkelt installationskommando angive alle de relevante pakker.
Lagre
RPM indsamles ofte centralt i et eller flere depoter på internettet. Et websted har ofte sine egne RPM -lagre, som enten kan fungere som lokale spejle på sådanne internetlagre eller være lokalt vedligeholdte samlinger af nyttige RPM'er.
Forender
Flere front-ender til RPM letter processen med at opnå og installere RPM'er fra lagre og hjælpe med at løse deres afhængigheder. Disse omfatter:
- yum bruges i Fedora , CentOS 5 og nyere, Red Hat Enterprise Linux 5 og nyere, Scientific Linux , Yellow Dog Linux og Oracle Linux
- DNF , introduceret i Fedora 18 (standard siden 22 ), Red Hat Enterprise Linux 8 og CentOS Linux 8.
- up2date brugt i Red Hat Enterprise Linux , CentOS 3 og 4 og Oracle Linux
- Zypper bruges i Mer (og dermed Sailfish OS), MeeGo , openSUSE og SUSE Linux Enterprise
- urpmi brugt i Mandriva Linux , ROSA Linux og Mageia
- apt-rpm , en port til Debians Advanced Packaging Tool (APT), der bruges i Ark Linux, PCLinuxOS og ALT Linux
- Smart Package Manager , der bruges i Unity Linux, tilgængelig til mange distributioner, herunder Fedora .
-
rpmquery
, et kommandolinjeværktøj, der er tilgængeligt i (f.eks.) Red Hat Enterprise Linux
Lokal RPM installationsdatabase
Bag kulisserne i pakkehåndteringen er RPM -databasen, der er gemt i /var/lib/rpm
. Det bruger Berkeley DB som back-end. Den består af en enkelt database ( Packages
), der indeholder alle meta -oplysninger for de installerede omdrejningstal. Der oprettes flere databaser til indekseringsformål, der replikerer data for at fremskynde forespørgsler. Databasen bruges til at holde styr på alle filer, der ændres og oprettes, når en bruger (ved hjælp af RPM) installerer en pakke, hvilket gør det muligt for brugeren (via RPM) at vende ændringerne og fjerne pakken senere. Hvis databasen bliver ødelagt (hvilket er muligt, hvis RPM -klienten bliver dræbt ), kan indeksdatabaserne genskabes med rpm --rebuilddb
kommandoen.
Beskrivelse
Selvom RPM -formatet er det samme på tværs af forskellige Linux -distributioner , kan de detaljerede konventioner og retningslinjer variere på tværs af dem.
Pakkens filnavn og etiket
Et RPM leveres i en enkelt fil, normalt med et filnavn i formatet:
-
<name>-<version>-<release>.src.rpm
for kildepakker eller -
<name>-<version>-<release>.<architecture>.rpm
for binære filer.
For eksempel i pakkens filnavn libgnomeuimm-2.0-2.0.0_3.i386.rpm
er <name>
is libgnomeuimm
, <version>
is 2.0
, <release>
is 2.0.0_3
og <architecture>
is i386
. Den tilhørende kildepakke ville blive navngivetlibgnomeuimm-2.0-2.0.0_3.src.rpm
RPM'er med noarch.rpm
udvidelsen afhænger ikke af en bestemt CPU -arkitektur. Disse omdrejningstal kan f.eks. Indeholde grafik og tekst, som andre programmer kan bruge. De kan også indeholde shell -scripts eller programmer, der er skrevet på andre fortolkede programmeringssprog, f.eks. Python .
RPM -indholdet indeholder også en pakkelabel , der indeholder følgende oplysninger:
- software navn
- softwareversion (den version taget fra originale opstrøms kilde af softwaren)
- pakkeudgivelse (antallet af gange, pakken er blevet genopbygget ved hjælp af den samme version af softwaren). Dette felt bruges også ofte til at angive den specifikke distribution, pakken er beregnet til ved at tilføje strenge som "mdv" (tidligere "mdk") ( Mandriva Linux ), "mga" ( Mageia ), "fc4" ( Fedora Core 4) , "rhl9" (Red Hat Linux 9), "suse100" ( SUSE Linux 10.0) osv.
- arkitektur, som pakken blev bygget til (i386, i686, x86_64, ppc osv.)
Pakketiketfelterne behøver ikke at matche filnavnet.
Biblioteksemballage
Biblioteker distribueres i to separate pakker for hver version. Den ene indeholder den forudkompilerede kode til brug i løbetid, mens den anden indeholder de relaterede udviklingsfiler, f.eks. Overskrifter osv. Disse pakker har "-udvikling" knyttet til deres navnefelt. Systemadministratoren skal sikre, at versionerne af de binære og udviklingspakker stemmer overens.
Binært format
Formatet er binært og består af fire sektioner:
- Leadet, der identificerer filen som en RPM -fil og indeholder nogle forældede overskrifter.
- Signaturen, som kan bruges til at sikre integritet og/eller ægthed.
- Overskriften, der indeholder metadata inklusive pakkenavn, version, arkitektur, filliste osv.
- Et filarkiv ( nyttelasten ), som normalt er i cpio -format, komprimeret med gzip . Det
rpm2cpio
værktøj kan hentning af cpio fil uden at skulle installere RPM-pakke.
SPEC -fil
"Opskriften" til oprettelse af en RPM -pakke er en spec -fil. Spec -filer slutter i suffikset ".spec" og indeholder pakkens navn, version, RPM -revisionsnummer, trin til at opbygge, installere og rense en pakke og en ændringslog. Flere pakker kan bygges fra en enkelt RPM spec -fil, hvis det ønskes. RPM -pakker oprettes fra RPM -spec -filer ved hjælp af værktøjet rpmbuild.
Spec -filer distribueres normalt i SRPM -filer, som indeholder spec -filen pakket sammen med kildekoden.
SRPM
En typisk omdrejningstal er forkompileret software klar til direkte installation. Den tilsvarende kildekode kan også distribueres. Dette gøres i en SRPM, som også indeholder "SPEC" -filen, der beskriver softwaren og hvordan den er bygget. SRPM giver også brugeren mulighed for at kompilere, og måske ændre, selve koden.
En softwarepakke kunne kun indeholde platformuafhængige scripts. I et sådant tilfælde kunne udvikleren kun levere en SRPM, som stadig er en RPM, der kan installeres.
NOSRC
Dette er en særlig version af SRPM. Den indeholder "SPEC" -fil og eventuelt patches, men inkluderer ikke kilder (normalt på grund af licens).
Gafler
Fra juni 2010 er der to versioner af RPM under udvikling: en ledet af Fedora -projektet og Red Hat, og den anden af en separat gruppe ledet af en tidligere vedligeholder af RPM, en tidligere ansat i Red Hat.
RPM.org
Den rpm.org samfunds første store kode revision var i juli 2007; version 4.8 blev frigivet i januar 2010, version 4.9 i marts 2011, 4.10 i maj 2012, 4.11 i januar 2013, 4.12 i september 2014 og 4.13 i juli 2015.
Denne version bruges af distributioner som Fedora , Red Hat Enterprise Linux og derivater , openSUSE , SUSE Linux Enterprise , Unity Linux , Mageia , OpenEmbedded , Tizen og OpenMandriva Lx (tidligere Mandriva ).
RPM v5
Jeff Johnson, RPM -vedligeholder siden 1999, fortsatte udviklingsindsatsen sammen med deltagere fra flere andre distributioner. RPM version 5 blev frigivet i maj 2007.
Denne version bruges af distributioner som Wind River Linux (indtil Wind River Linux 10), Rosa Linux og OpenMandriva Lx (tidligere Mandriva Linux, der skiftede til rpm5 i 2011) og også af OpenPKG- projektet, der leverer pakker til andre fælles UNIX- platforme.
OpenMandriva Lx vil skifte tilbage til rpm.org for 4.0 -udgivelse.
OpenEmbedded , den sidste store bruger af RPM5, skiftede tilbage til rpm.org på grund af problemer i RPM5.
Se også
- Autopackage - et "komplementært" pakkehåndteringssystem
- Delta ISO - et ISO -billede, der indeholder RPM Package Manager -filer
- dpkg - pakkehåndteringssystem, der bruges af Debian og dets derivater
- Liste over RPM-baserede Linux-distributioner
- pkg-config -forespørger biblioteker om at kompilere software fra sin kildekode
Referencer
- Schroeder, Jeff (2008-01-30). "Avancerede RPM -forespørgselsstrenge" . www.digitalprognosis.com . Arkiveret fra originalen 2011-08-09 . Hentet 2018-03-28 .
eksterne links
- RPM.org projekt startside
- RPM og DPKG kommandoreference
- Historien om RPM af Matt Frye i Red Hat Magazine Arkiveret 2007-09-29 på Wayback Machine
- Sådan opretter du en RPM -pakke
- Videotutorials til opbygning og patchering af omdrejningstal
- RPM Notes - Opbygning af RPM'er på den nemme måde
- Emballagesoftware med RPM, del 1: Opbygning og distribution af pakker
- Lær Linux, 101: RPM og YUM -pakkehåndtering