RPM Package Manager - RPM Package Manager

RPM Package Manager (RPM)
RPM Logo.svg
Originale forfattere Erik Troan, Marc Ewing , Red Hat
Udvikler (er) Community & Red Hat
Første udgivelse 1997 ; 24 år siden ( 1997 )
Stabil udgivelse
4.16.1.3 / 22. marts 2021 ; 4 måneder siden ( 2021-03-22 )
Udgivelsesversion
4.17.0 alfa / 26. april 2021 ; for 3 måneder siden ( 2021-04-26 )
Depot Rediger dette på Wikidata
Skrevet i C , Perl
Operativ system Linux , Unix-lignende
Type Pakkehåndteringssystem
Licens GPL
Internet side rpm .org

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, rppog pmerfaringer.

pmblev 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 pmset pakkehåndteringssystem af Faith og Kevin Martin i efteråret 1993 til Bogus Linux Distribution. pmbevarer " Uberørte kilder + patches" -paradigmet for pms, samtidig med at der tilføjes funktioner og elimineres vilkårlige begrænsninger i implementeringen. pmgiver 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:

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

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.rpmer <name>is libgnomeuimm, <version>is 2.0, <release>is 2.0.0_3og <architecture>is i386. Den tilhørende kildepakke ville blive navngivetlibgnomeuimm-2.0-2.0.0_3.src.rpm

RPM'er med noarch.rpmudvidelsen 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 rpm2cpioværktøj kan hentning af cpio fil uden at skulle installere RPM-pakke.
    • Linux Standard Base kræver brug af gzip, men Fedora 30 -pakker er xz -komprimeret, og Fedora 31 -pakker kan være zstd -komprimeret. Seneste versioner af RPM kan også bruge bzip2 , lzip eller lzma -komprimering .
    • RPM 5.0 -format understøtter brug af xar til arkivering.

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å

Referencer

eksterne links