
Hoppet til RPM 6.0 markerer et før og etter i den mest utbredte pakkebehandleren i økosystemet til Red Hat Enterprise Linux, SUSE og derivater. Denne utgivelsen kombinerer årelangt arbeid med å modernisere sikkerhet, pakkeformater og verktøy, og det er tydelig i alle hjørner av prosjektet. Hvis du administrerer systemer eller pakkeprogramvare, er denne endringen viktig for deg fordi den påvirker hvordan du bygger, signerer, verifiserer og installerer pakker.
Utgivelsen ble gjort 22. september 2025, og følger en kandidat som endelig er bekreftet som den endelige versjonen. I tillegg til offentlig kunngjøring, det legges ned en stor innsats i dokumentasjon og endringer i standardvirkemåte. RPM 6.0 Introduserer støtte for det nye v6-formatet og styrker kryptografisk verifisering, samtidig som støtten for v4-pakker opprettholdes og installasjonen av v3 elimineres.
Hva er RPM 6.0 og hvorfor det er viktig
Med RPM 6.0 konsoliderer prosjektet sikrere signeringspraksiser, avskaffer utdaterte algoritmer og baner vei for et pakkeformat som er klart for moderne størrelser og metadata. V4-formatet fyller 25 år, og kodebasen nærmer seg sitt 30-årsjubileum., så denne store revisjonen var nødvendig for å bringe den opp til dagens standarder og størrelsen på moderne arkiver.
Den offisielle kunngjøringen fremhever milepæler som OpenPGP-administrasjon av flere signaturer, støtte for OpenPGP v6-nøkler og -signaturer (inkludert postkvantekryptografi) og implementeringen av strategier for å skaffe rene og verifiserbare utgivelsestarballer. Hovedmålet er å heve sikkerhetsstandarden uten å bryte kompatibiliteten. i pakkernes og administratorenes hverdag.
Nedlastinger og fotavtrykk
Distribusjonen inkluderer hovedkildefilen rpm-6.0.0.tar.bz2, ledsaget av SHA256-sjekksummen for integritetskontroll. SHA256: 14abb1b944476788d90005d8d61d5d30fce80d9f0de11eb657b14e5c9ef27441.
Oversikt over endringer sammenlignet med 4.20.1
- Støtte for v4- og v6-pakker, med detaljerte kompatibilitetsmerknader.
- Flere OpenPGP-signaturer per pakke og støtte for OpenPGP v6- og PQC-nøkler.
- Oppdatering av tidligere importerte nøkler og bruk av hele fingeravtrykket eller ID-en gjennom hele syklusen.
- Installasjonsprogrammet for v3-pakken blir pensjonert; de kan vises og pakkes ut med rpm2cpio, men ikke installeres.
- Streng håndheving av signaturverifisering som standard, noe som øker økosystemsikkerheten.
- Stor revisjon av manualsider og dokumentasjon, med versjonert innhold på det offisielle nettstedet.
- Uberørte og verifiserbare utgivelses-tarballer, styrking av reproduserbarhet og revisjon.
Endringer og forbedringer for generell bruk
Verktøyet rpmkeys får mye vekt i nøkkelhåndtering: Nå tillater vi oppdatering av nøkler med rpmkeys –import (inkludert oppdatering av den tvetydige korte identifikatoren til et fullstendig fingeravtrykk), importere fra en pipe, eksportere med rpmkeys –export, og operere konsekvent på tvers av forskjellige nøkkelring-backends. I tillegg, med rpmkeys –rebuild, kan nøkkelringinnhold gjenoppbygges og migreres mellom backends, og nøkkeloppslag er nå ikke følsomme for store og små bokstaver.
rpmsign gjør også et hopp: Den kan signeres med GnuPG eller Sequoia-sq kontrollert med makroen %_openpgp_sign. Underkommandoen rpmsign –addsign erstatter ikke lenger eksisterende signaturer; som standard legger den til et hvilket som helst antall signaturer i v6-pakker, og også i v4-pakker hvis –rpmv6 brukes. RPMsign –resign erstatter derimot alle tidligere signaturer med en ny.
For spørringer legges det til tag-utvidelser som rpmformat (finn ut om det er v3, v4 eller v6) og openpgp (administrasjon av alle OpenPGP-signaturer). :hashalgo-formateringen er lagt til for å vise navn på hash-algoritmer, og aliaset –filemime ser ut til å spørre MIME etter fil. Terminologien er standardisert på tvers av meldinger: OpenPGP brukes konsekvent, og v3-header- og nyttelastsignaturer er merket som eldre.
Ny beregningsfunksjon og feilrettinger i RPM 6.0
En ny funksjon beregner et konfigurerbart sett med sammendrag under verifisering og lagrer dem i RPM-databasen, noe som bidrar til å identifisere kildepakkefilen. Flere driftsproblemer løstSkriptfeil påvirker nå transaksjonsresultatkoder; visse mislykkede utløsere påvirker relaterte operasjoner; og problemer med –hash, –percent og –test i forbindelse med –restore er løst.
Feil som en segmentfeil og lekkasjer i rpmgraph, suffikset som brukes av rpm2archive for tar og cpio, er fikset, og en større omskriving av man-sidene er foretatt: Enhetlig stil med eksempler, nye sider for komponenter og formater, flytter brukerkommandoer til seksjon 1, og dekker tidligere udokumenterte aspekter. Den versjonerte dokumentasjonen på det offisielle nettstedet inkluderer manualsider, en referansemanual og et API.
Emballasje og pakkekonstruksjon
rpmbuild kan nå generere to forskjellige formater kontrollert av %_rpmformat-makroen (verdier 6 eller 4). I tillegg er selvsignering aktivert i byggingen. Hvis %_openpgp_autosign_id er definert, og verktøyet rpm-setup-autosign legges til for å forenkle konfigurasjonen.
I makroer legges %{span:…} til for å forenkle definisjoner med flere linjer, og %{xdg:…} legges til for å evaluere XDG-basisstier. Støtte for E2K-arkitektur er lagt til og en rekke rettelser: kilderekkefølge og oppdateringer i headeren, Lua-glob som respekterer c-argumentet, arkitekturvalidering på riktig punkt, aksept av systemspesifikke %prep-seksjoner for byggeprosessen og rettelser i check-rpaths når RPATH og RUNPATH eksisterer samtidig.
Retter en minnelekkasje i rpmspec –shell, en 4.20-regresjon i rpmbuild -rs med ikke-eksisterende mapper og en ekstra ny linje i rpm –eval. En segmentfeil er også rettet. i tilfelle ugyldig utdata fra avhengighetsbyggeren i flermodus, og brp-selfperms-policyen er fjernet. Til slutt er den utdaterte –nodirtokens-bryteren fra rpmbuild fjernet.
API-endringer
I nøkkelringområdet er det lagt til funksjoner for å iterere og administrere nøkler: rpmKeyringInitIterator, rpmKeyringIteratorNext, rpmKeyringIteratorFree, rpmKeyringVerifySig2, rpmKeyringOppslagKey og rpmKeyringModifyFor rpmPubkey legges tilgangsenheter som rpmPubkeyFingperint, rpmPubkeyFingerprintAsHex, rpmPubkeyKeyIDAsHex og rpmPubkeyArmorWrap til, i tillegg til rpmPubkeyMerge for å slå sammen beskrivelser av samme nøkkel.
For den permanente transaksjonsnøkkelringen er rpmtxnImportPubkey, rpmtxnDeletePubkey og rpmtxnRebuildKeystore inkludert. rpmSign-operasjonen styres med nye flaggRPMSIGN_FLAG_RESIGN, RPMSIGN_FLAG_RPMV4 og RPMSIGN_FLAG_RPMV6. rpmteVfyLevel og rpmteSetVfyLevel, sammen med deres ekvivalenter te.VfyLevel og te.SetVfyLevel, er også lagt til i Python-bindingene.
For flere signaturer vises identifikatorer som RPMTAG_OPENPGP, RPMSIGTAG_OPENPGP (alias for ovennevnte) og verifiseringsflagget RPMVSF_NOOPENPGP. Nye etiketter er lagt til: RPMTAG_PAYLOADSIZE, RPMTAG_PAYLOADSIZEALT, RPMTAG_RPMFORMAT, RPMTAG_FILEMIMEINDEX, RPMTAG_MIMEDICT, RPMTAG_FILEMIMES, RPMTAG_SOURCENEVR, RPMTAG_PAYLOADSHA512, RPMTAG_PAYLOADSHA512ALT, RPMTAG_PAYLOADSHA3_256, RPMTAG_PAYLOADSHA3_256ALT, RPMTAG_SHA3_256HEADER.
Det finnes omdøpte tagger: RPMTAG_PAYLOADDIGEST er flyttet til RPMTAG_PAYLOADSHA256, RPMTAG_PAYLOADDIGESTALT er flyttet til RPMTAG_PAYLOADSHA256ALT, og RPMTAG_PAYLOADDIGESTALGO er merket som utdatert under RPMTAG_PAYLOADSHA256ALGO. SHA-3-identifikatorer er lagt tilRPM_HASH_SHA3_256 og RPM_HASH_SHA3_512, samt MIME-relaterte symboler per fil i v6-pakker, som rpmfilesFMime og rpmfiFMime, og RPMFI_NOFILEMIME-flagget.
I OpenPGP-domenet legges RFC 9580-kompatible identifikatorer og pgpDigParamsSalt-funksjonen til for å hente pre-saltet til v6-signaturer. For digest-bunter vises rpmDigestBundleUpdateID. (oppdaterer individuelle identifikatorer). Andre nye funksjoner: rpmtsAddInstallElement returnerer 3 for formater som ikke støttes, og fdSize rapporterer en feil for ikke-vanlige filer.
Interne forbedringer
RPM-kode er flyttet til C++20 (med unntak av Python-pluginer og -bindinger). Skrifttypene er omdøpt til .cc og .hh, dynamiske strukturer migreres til STL, og referansetelling forsterkes med atomoperasjoner. I tillegg utvides testsuiten og testopprettelsen forenkles.
En ekte nøkkelringabstraksjon og et eksperimentelt backend basert på openpgp.cert.d introduseres. Lagt til bygge-lag-nettstedsmål for å gjengi lokal dokumentasjon, og testbildet tilpasser seg verktøykassen. Understrekninger er tillatt i RPMTAG-navn, og regresjoner er fikset, for eksempel den reserverte størrelsen for signaturer og alternativmekanismen som forstyrrer signaturer.
Fikset nøkkelringlesing uten transaksjonslåsing, en kappløpsbetingelse i rpmioMkpath, rekursjonsdybde i makrofeilmeldinger og et tilfelle der tomme passwd- eller gruppefelt førte til at oppføringer ble ignorert. Interne makroer er tilgjengelige igjen før filer lastes inn, fdSize-feilen i rpmSign håndteres riktig, pseudo-tagger ryddes opp i –querytags, og installasjonsprefikset respekteres i de eldre find-provides- og find-requires-skriptene.
Andre interne forbedringer
Også fikset er filrelaterte referanselekkasjer i Python, avhengighetslagring er stabilisert for å unngå ikke-determinisme, chroot-escape i sysusers-skriptet med u!-oppføringer er fikset, og en 4.19-regresjon i returkoder for mislykkede oppdateringer er fikset. Advarsel om makrofiler i rpmrc, transaksjonslåsen gjenskapes etter –rebuilddb, forutsatt at gpg(keyid) fjernes fra gpg-pubkey, og symboler som ved et uhell ble lekket til ABI ryddes opp.
Ikke-portabel bruk av signal er fjernet, rpmlog-låsing er optimalisert, og Python-bindinger støtter modulisolering for flere undertolkere og fikser ressurslekkasjer med ASAN-testing. Det er forbedringer som forbedrer robusthet, portabilitet og vedlikeholdbarhet. på alle fronter.
Krav for kompilering av RPM
En C++20-kompilator er nå nødvendig i tillegg til C99; støtte for C++20-moduler er ikke nødvendig. For å bygge med Sequoia kreves rpm-sequoia 1.9.0 eller høyere (og er standardalternativet), Python 3.10 eller høyere for bindinger, og scdoc-generatoren for man-sider.
Forhåndskompilert API-dokumentasjon er ikke lenger inkludert i utgivelses-tarballer; det er valgfritt å bygge den med Doxygen. Forhåndsbygde API-er per versjon er tilgjengelige i prosjektets FTP.
Hovedtaler om RPM 6.0-kompatibilitet og formatering
V6-pakkeformatet bringer 64-biters filstørrelse og tilhørende begrensninger, kryptografisk modernisering med fjerning av MD5 og SHA1, SHA3-256 hasher i headeren og SHA512 og SHA3-256 digests i nyttelasten. MIME-informasjon legges til per fil, og det er bred støtte for RPM fra og med 4.14 (med nyanser). Ekstern avhengighetsgeneratormodus støttes ikke lenger i v6, og eldre rpmlib-avhengigheter før 4.6 er fjernet for å rydde opp i støy.
v6-pakker kan sjekkes ut med RPM fra 4.6, pakkes ut med 4.12 og verifiseres og installeres med 4.14 eller høyere, med forbehold om kjente begrensninger. v4-pakker støttes fortsatt fullt ut og de som genereres av 6.0 er identiske med de fra 4.x-grenen. Under standardkonfigurasjonen blir imidlertid ikke pakker bygget med RPM-er lavere enn 4.14 verifisert fordi de bruker svake digests. Du kan sette %_pkgverify_level til signature for å ignorere disse digestene, eller gjenopprette 4.x-oppførselen ved å sette %_pkgverify_flags til 0 hvis verifisering av svak digest er nødvendig.
V3-installasjonen er fjernet, men den kan vises og pakkes ut med rpm2cpio. Som standard bygger RPM v6-pakker; dette kan reverseres ved å sette %_rpmformat til 4. I pakker bygget med RPM 6.0 eller høyere er posix.fork Lua-familien deaktivert, mens den i pakker bygget med 4.20 eller tidligere fortsetter å fungere.
Andre hensyn: signeringsnøkkelkonfigurasjonen er nå definert med %_openpgp_sign_id (bakoverkompatibilitet med %_gpg_name), lavnivåsigneringsmakroer blir parametriske, og tilpassede %__gpg_sign_cmd-overstyringer fungerer ikke lenger som standard. %_passwd_path og %_group_path kan være kolonseparerte lister. å bruke flere NSS-kilder, og spørrebryterne –pkgid og –hdrid fjernes.
RPM 6.0 og Fedora 43: Omfang, fordeler og testing
Oppgraderingen til RPM 6.0 i Fedora 43 Den søker å styrke sikkerheten og forberede v6-formatet, men uten å ennå ta i bruk det nye formatet som standard. Fedora 43 vil fortsette å generere v4 som standard., og streng håndheving av signaturverifisering vil bli adressert som en systemendring i en fremtidig utgivelse.
Viktige fordeler med Fedora inkluderer: OpenPGP-nøkler identifiseres nå alltid med fingeravtrykk eller full ID, de kan oppdateres med rpmkeys –import, flere signaturer per pakke støttes, lokal selvsignering støttes under bygging, og bruk av Sequoia-sq som et alternativ til GnuPG. Det gjør det også enklere å teste v6-formatet i økosystemet. uten å tvinge frem global adopsjon.
Ikke omfattet av: generell migrering av Fedora til v6-format eller endring av standard verifiseringsmodus. Changemakers er ansvarlige for å overskride RPM og bistå med inkompatibiliteter, mens resten av utviklerne må teste, rapportere problemer og tilpasse tredjepartsverktøy når det er nødvendig.
Oppgradering og kompatibilitetspåvirkning: Tredjepartsskript og -verktøy kan kreve justeringer på grunn av det nye nøkkeladresseformatet og endringer i signaturrelaterte utdata. For tidlig testing Det anbefales å validere: oppdatering av importerte nøkler, nøkkelringhåndtering med rpmkeys og kompatibilitet av v6-formatet med ekstern programvare (bygging med %_rpmformat til 6).
RPM 6.0 brukeropplevelse på Fedora
Brukeropplevelse: Signatur- og nøkkelutdata er standardisert til store og små bokstaver, og nøkler vises med fingeravtrykk eller full ID, og ​​den gamle kollisjonsutsatte korte ID-en er borte. rpmkeys er etablert som et offisielt verktøy å manipulere nøkkelringen; gamle metoder som å manuelt berøre gpg-pubkey pseudopakker er utdatert og bør migreres til rpmkeys eller de nye API-ene.
Avhengigheter: SOName endres ikke, så ingen avhengighetsgjenoppbygging er nødvendig; det er ingen avhengigheter av andre Fedora-endringer. RPM er bygget som C++, så det legger til en kjøretidsavhengighet på libstdc++. Signering med Sequoia krever sequoia-sq 1.0 eller høyere som en valgfri avhengighet og påvirker bare pakkesignering.
Beredskapsplan: gå tilbake til RPM 4.20 om nødvendig, med en frist for beta-frysing, uten å blokkere utgivelsen. Leveringen fortsetter selv om v6-formatet ikke er standard ennå i distribusjon.
Utgivelsesnotater og bakgrunnskunngjøring for RPM 6.0
Den forrige kandidaten innlemmet feilrettinger og oppdateringer av man-siden, og ble forfremmet til finalen. Kunngjøringen signert av RPM-teamet Den fremhever at det har blitt jobbet mot denne milepælen siden rpm.org-omstarten rundt 2007, med milepæler som 64-biters filstørrelser, pluggbare avhengighetsgeneratorer, transaksjonspluginer, rike avhengigheter, filutløsere, forbedringer av debuginfo, nye databasebackends, Lua-integrasjon og makrouttrykk, dynamiske byggekrav, spesifikasjonsgenerering, bruker- og gruppestøtte og deklarative byggesystemer.
Over 300 personer har bidratt med kode fra flere distribusjoner og organisasjoner. Prosjektets historie og dets fellesskap forklarer stabiliteten og omfanget som RPM 6.0 arver og utvider.
Utsiktene for RPM 6.0 er en styrket pakkebehandler for det neste tiåret: Bedre kryptografi, format for store mengder, kraftigere verktøy og oppdatert dokumentasjon., med en tydelig kompatibilitetsbane for administratorer, pakkere og økosystemer, slik at de kan ta i bruk nye funksjoner uten problemer.