RPM 6.0 prichádza práve včas pre Fedoru 43 s kompatibilitou s v4, odstránením inštalácie v3 a prísnejšími kontrolami.

  • Formát v6 so 64-bitovou architektúrou, viacerými podpismi a modernými hashmi
  • Vylepšené nástroje: rpmkeys, rpmsign a vylepšené dotazy
  • Kompatibilita s v4, odstránenie inštalácie v3 a prísnejšie kontroly
  • Rozšírené API, C++20, verziovaná dokumentácia a robustnejšie testovanie

RPM 6.0

Skok na RPM 6.0 označuje pred a po v najrozšírenejšom správcovi balíkov v ekosystéme Red Hat Enterprise Linux, SUSE a deriváty. Toto vydanie spája roky práce na modernizácii zabezpečenia, formátov balíkov a nástrojov a je to zrejmé v každom kúte projektu. Ak spravujete systémy alebo balíkový softvér, táto zmena je pre vás dôležitá, pretože ovplyvňuje spôsob, akým zostavujete, podpisujete, overujete a inštalujete balíky.

Vydanie bolo vykonané 22. septembra 2025 a nasleduje po kandidátovi, ktorý bol konečne potvrdený ako finálna verzia. Okrem verejné oznámenie, vynakladá sa značné úsilie na dokumentáciu a zmeny predvoleného správania. RPM 6.0 Zavádza podporu pre nový formát v6 a posilňuje kryptografické overovanie, pričom sa zachová podpora pre balíky v4 a eliminuje sa inštalácia v3.

Čo je RPM 6.0 a prečo je dôležitý

Projekt s verziou RPM 6.0 konsoliduje bezpečnejšie postupy podpisovania, ruší zastarané algoritmy a pripravuje cestu pre formát balíkov pripravený na moderné veľkosti a metadáta. Formát v4 oslavuje 25. výročie a kódová základňa sa blíži k 30. výročiu., takže táto rozsiahla revízia bola nevyhnutná na to, aby sa prispôsobila súčasným štandardom a veľkosti súčasných repozitárov.

Oficiálne oznámenie zdôrazňuje míľniky, ako je správa viacerých podpisov OpenPGP, podpora kľúčov a podpisov OpenPGP v6 (vrátane postkvantovej kryptografie) a prijatie stratégií na získanie nedotknutých a overiteľných tarballov vydaní. Hlavným cieľom je zvýšiť latku bezpečnosti bez narušenia kompatibility. v každodennom živote baličov a administrátorov.

Stiahnutia a footprinty

Distribúcia obsahuje hlavný zdrojový súbor rpm-6.0.0.tar.bz2 spolu s kontrolným súčtom SHA256 na kontrolu integrity. SHA256: 14abb1b944476788d90005d8d61d5d30fce80d9f0de11eb657b14e5c9ef27441.

Prehľad zmien oproti verzii 4.20.1

  • Podpora balíkov v4 a v6s podrobnými poznámkami o kompatibilite.
  • Viacero podpisov OpenPGP na paket a podpora kľúčov OpenPGP v6 a PQC.
  • Aktualizácia predtým importovaných kľúčov a používanie celého odtlačku prsta alebo ID počas celého cyklu.
  • Inštalačný program balíkov v3 sa ruší; balíky je možné zobraziť a extrahovať pomocou rpm2cpio, ale nie nainštalovať.
  • Prísne vynucovanie overovania podpisov v predvolenom nastavení, čím sa zvyšuje bezpečnosť ekosystému.
  • Významná revízia manuálových stránok a dokumentácie s verzovaným obsahom na oficiálnej webovej stránke.
  • Nedotknuté a overiteľné tarbally, posilnenie reprodukovateľnosti a auditu.

Zmeny a vylepšenia pre všeobecné použitie

Nástroj rpmkeys získava pri správe kľúčov veľkú váhu: Teraz umožňuje aktualizáciu kľúčov pomocou rpmkeys –import (vrátane aktualizácie nejednoznačného krátkeho identifikátora na úplný odtlačok prsta), importovať z prepojenia, exportovať pomocou rpmkeys –export a konzistentne fungovať naprieč rôznymi backendmi kľúčeniek. Okrem toho, pomocou rpmkeys –rebuild je možné obsah kľúčeniek znovu vytvoriť a migrovať medzi backendmi a vyhľadávanie kľúčov teraz nerozlišuje veľké a malé písmená.

rpmsign tiež robí skok: Dá sa podpísať pomocou GnuPG alebo Sequoia-sq ovládané makrom %_openpgp_sign. Podpríkaz rpmsign –addsign už nenahrádza existujúce podpisy; štandardne pridáva ľubovoľný počet podpisov do balíkov v6 a tiež do balíkov v4, ak sa použije –rpmv6. Príkaz RPMsign –resign naopak nahradí všetky predchádzajúce podpisy novými.

Pre dotazy sú pridané rozšírenia značiek ako rpmformat (zistiť, či ide o v3, v4 alebo v6) a openpgp (správa všetkých podpisov OpenPGP). Pridaný je formátovač :hashalgo na zobrazenie názvov hašovacích algoritmov a alias –filemime sa zobrazuje na dotazovanie MIME podľa súboru. Terminológia je štandardizovaná vo všetkých správach: OpenPGP sa používa konzistentne a podpisy hlavičiek a údajov v3 sú označené ako staršie.

Nová výpočtová funkcia a opravy chýb v RPM 6.0

Nová funkcia počas overovania vypočítava konfigurovateľnú sadu súhrnov a ukladá ich do databázy RPM, čo pomáha identifikovať súbor zdrojového balíka. Vyriešených viacero prevádzkových problémovChyby skriptletov teraz ovplyvňujú kódy výsledkov transakcií; niektoré neúspešné spúšťače majú vplyv na súvisiace operácie; a problémy s –hash, –percent a –test v spojení s –restore boli opravené.

Chyby ako segfault a úniky v rpmgraph, prípone používanej rpm2archive pre tar a cpio, boli opravené a bolo vykonané rozsiahle prepísanie manuálových stránok: Jednotný štýl s príkladmi, nové stránky pre komponenty a formáty, presunutie používateľských príkazov do sekcie 1 a pokrytie predtým nezdokumentovaných aspektov. Verzovaná dokumentácia na oficiálnej webovej stránke obsahuje manuálové stránky, referenčnú príručku a API.

Balenie a konštrukcia obalov

rpmbuild teraz dokáže generovať dva rôzne formáty ovládané makrom %_rpmformat (hodnoty 6 alebo 4). Okrem toho je v zostave povolené samopodpisovanie Ak je definovaný %_openpgp_autosign_id a je pridaný nástroj rpm-setup-autosign na uľahčenie tejto konfigurácie.

V makrách sa pridáva %{span:…} na uľahčenie definícií viacerých riadkov a %{xdg:…} na vyhodnotenie základných ciest XDG. Pridaná je podpora architektúry E2K a množstvo opráv: poradie zdrojového kódu a záplaty v hlavičke, Lua glob rešpektujúci argument c, validácia architektúry v správnom bode, akceptovanie sekcií %prep špecifických pre systém zostavovania a opravy v check-rpaths, keď RPATH a RUNPATH existujú súčasne.

Opravuje únik pamäte v rpmspec –shell, regresiu 4.20 v rpmbuild -rs s neexistujúcimi adresármi a ďalší nový riadok v rpm –eval. Segmentová chyba je tiež opravená. v prípade neplatného výstupu z nástroja na tvorbu závislostí v multi režime a politika brp-selfperms bola odstránená. Nakoniec bol odstránený zastaraný prepínač –nodirtokens z rpmbuild.

Zmeny API

V oblasti kľúčeniek sú pridané funkcie na iteráciu a správu kľúčov: rpmKeyringInitIterator, rpmKeyringIteratorNext, rpmKeyringIteratorFree, rpmKeyringVerifySig2, rpmKeyringLookupKey a rpmKeyringModifyPre rpmPubkey sa pridávajú prístupové metódy ako rpmPubkeyFingperint, rpmPubkeyFingerprintAsHex, rpmPubkeyKeyIDAsHex a rpmPubkeyArmorWrap, ako aj rpmPubkeyMerge na zlúčenie deskriptorov toho istého kľúča.

Pre trvalý kľúčenkový reťazec transakcií sú zahrnuté rpmtxnImportPubkey, rpmtxnDeletePubkey a rpmtxnRebuildKeystore. Operácia rpmSign je riadená novými príznakmiRPMSIGN_FLAG_RESIGN, RPMSIGN_FLAG_RPMV4 a RPMSIGN_FLAG_RPMV6. Do väzieb Pythonu boli pridané aj rpmteVfyLevel a rpmteSetVfyLevel spolu s ich ekvivalentmi te.VfyLevel a te.SetVfyLevel.

Pri viacerých podpisoch sa zobrazia identifikátory ako RPMTAG_OPENPGP, RPMSIGTAG_OPENPGP (alias vyššie uvedeného) a overovací príznak RPMVSF_NOOPENPGP. Pridávajú sa nové štítkyRPMTAG_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.

Existujú premenované značky: RPMTAG_PAYLOADDIGEST sa presunula do RPMTAG_PAYLOADSHA256, RPMTAG_PAYLOADDIGESTALT sa presunula do RPMTAG_PAYLOADSHA256ALT a RPMTAG_PAYLOADDIGESTALGO je označená ako zastaraná pod RPMTAG_PAYLOADSHA256ALGO. Pridajú sa identifikátory SHA-3RPM_HASH_SHA3_256 a RPM_HASH_SHA3_512, ako aj symboly MIME súvisiace s jednotlivými súbormi v balíkoch v6, ako napríklad rpmfilesFMime a rpmfiFMime, a príznak RPMFI_NOFILEMIME.

V doméne OpenPGP sa pridávajú identifikátory kompatibilné s RFC 9580 a funkcia pgpDigParamsSalt na načítanie predsaltových hodnôt podpisov v6. Pre zväzky digest sa zobrazí rpmDigestBundleUpdateID. (aktualizuje jednotlivé identifikátory). Ďalšie nové funkcie: rpmtsAddInstallElement vráti hodnotu 3 pre nepodporované formáty a fdSize hlási chybu pre neregulárne súbory.

Vnútorné vylepšenia

Kód RPM bol presunutý do C++20 (okrem pluginov a väzieb Pythonu). Písma sú premenované na .cc a .hh, dynamické štruktúry sú migrované do STL a počítanie referencií je posilnené atomickými operáciami. Okrem toho je sada testov rozšírená a vytváranie testov je zjednodušené.

Predstavuje sa skutočná abstrakcia kľúčenky a experimentálny backend založený na openpgp.cert.d. Pridaný cieľ stránky pre vytvorenie na vykreslenie lokálnej dokumentácie a testovací obrázok sa prispôsobí nástrojom. V názvoch RPMTAG sú povolené podčiarkovníky a boli opravené regresie, ako napríklad rezervovaná veľkosť pre podpisy a mechanizmus alternatív, ktorý zasahuje do podpisov.

Opravené čítania kľúčenky bez uzamknutia transakcií, súbeh v rpmioMkpath, hĺbka rekurzie v chybových hláseniach makier a prípad, keď prázdne polia passwd alebo group spôsobovali ignorovanie položiek. Interné makrá sú opäť k dispozícii pred načítaním súborov, chyba fdSize v rpmSign je spracovaná správne, pseudo-tagy sú vyčistené v –querytags a inštalačný prefix je rešpektovaný v starších skriptoch find-provides a find-requires.

Ďalšie interné vylepšenia

Taktiež sú opravené úniky referencií súvisiace so súbormi v Pythone, stabilizované je úložisko závislostí, aby sa predišlo nedeterminizmu, opravené je escapovanie chroot v skripte sysusers s položkami u! a opravená je regresia 4.19 v návratových kódoch zlyhaných aktualizácií. Upozornenie na makrosúbory v rpmrc, zámok transakcie sa znovu vytvorí po –rebuilddb, za predpokladu, že gpg(keyid) sa odstráni z gpg-pubkey a symboly, ktoré boli náhodne uniknuté do ABI, sa vyčistia.

Neprenosné použitia signálu boli odstránené, uzamykanie rpmlog bolo optimalizované a väzby Pythonu podporujú izoláciu modulov pre viacero subintepretérov a opravujú úniky zdrojov pomocou testovania ASAN. Sú to vylepšenia, ktoré zlepšujú robustnosť, prenosnosť a udržiavateľnosť. na všetkých frontoch.

Požiadavky na kompiláciu RPM

Okrem C99 je teraz potrebný kompilátor C++20; podpora modulov C++20 nie je potrebná. Na zostavenie so Sequoiou je potrebný rpm-sequoia 1.9.0 alebo novší (a je predvolená možnosť), Python 3.10 alebo novší pre väzby a generátor scdoc pre manuálové stránky.

Predkompilovaná dokumentácia API už nie je súčasťou tarballov vydania; jej zostavenie je pomocou Doxygenu voliteľné. K dispozícii sú predpripravené API pre každú verziu v FTP súbore projektu.

Hlavné prejavy o kompatibilite a formátovaní RPM 6.0

Formát paketov v6 prináša 64-bitovú veľkosť súboru a súvisiace obmedzenia, modernizáciu kryptografie s odstránením MD5 a SHA1, hashov SHA3-256 v hlavičke a digestov SHA512 a SHA3-256 v užitočnej dátovej časti. Informácie MIME sa pridávajú ku každému súborua od verzie 4.14 existuje široká podpora pre RPM (s určitými nuansami). Režim generátora externých závislostí už nie je vo verzii 6 podporovaný a staršie závislosti rpmlib pred verziou 4.6 boli odstránené, aby sa odstránil šum.

Balíky v6 je možné stiahnuť pomocou RPM od verzie 4.6, rozbaliť od verzie 4.12 a overiť a nainštalovať od verzie 4.14 alebo vyššej, s výhradou známych obmedzení. Balíky v4 zostávajú plne podporované a tie, ktoré generuje vetva 6.0, sú identické s tými z vetvy 4.x; avšak v predvolenej konfigurácii nie sú balíky zostavené s RPM nižšími ako 4.14 overované, pretože používajú slabé digesty. Môžete nastaviť %_pkgverify_level na signature, aby ste tieto digesty ignorovali, alebo obnoviť správanie 4.x nastavením %_pkgverify_flags na 0, ak je potrebné overenie slabým digestom.

Inštalácia v3 sa odstráni, hoci si ju možno zobraziť a extrahovať pomocou rpm2cpio. RPM štandardne zostavuje balíčky v6; toto sa dá vrátiť späť nastavením %_rpmformat na 4. V balíkoch zostavených s RPM 6.0 alebo vyšším je rodina Lua posix.fork zakázaná, zatiaľ čo v balíkoch zostavených s verziou 4.20 alebo staršou funguje naďalej.

Ďalšie aspekty: konfigurácia podpisového kľúča je teraz definovaná pomocou %_openpgp_sign_id (spätná kompatibilita s %_gpg_name), nízkoúrovňové podpisové makrá sa stávajú parametrickými a vlastné prepísania %__gpg_sign_cmd už nefungujú ihneď po vybalení. %_passwd_path a %_group_path môžu byť zoznamy oddelené dvojbodkami. používať viacero zdrojov NSS a prepínače dotazov –pkgid a –hdrid sa odstránia.

RPM 6.0 a Fedora 43: Rozsah, výhody a testovanie

Aktualizácia na RPM 6.0 v Fedora 43 Snaží sa posilniť bezpečnosť a pripraviť pôdu pre formát v6, ale zatiaľ neprijal nový formát ako predvolený. Fedora 43 bude štandardne naďalej generovať v4.a prísne presadzovanie overovania podpisov bude riešené ako systémová zmena v budúcej verzii.

Medzi kľúčové výhody Fedory patria: kľúče OpenPGP sú teraz vždy identifikované odtlačkom prsta alebo úplným ID, je možné ich aktualizovať pomocou rpmkeys –import, podpora viacerých podpisov na balík, podpora lokálneho samopodpisovania počas zostavovania a použitie Sequoia-sq ako alternatívy k GnuPG. Taktiež to uľahčuje testovanie formátu v6 v ekosystéme. bez vynútenia jeho globálneho prijatia.

Nezahrnuté: všeobecná migrácia Fedory do formátu v6 alebo zmena predvoleného režimu overovania. Za prekročenie RPM sú zodpovední tí, ktorí menia ceny. a pomáhať s nekompatibilitami, zatiaľ čo ostatní vývojári musia testovať, hlásiť problémy a v prípade potreby prispôsobovať nástroje tretích strán.

Vplyv na aktualizáciu a kompatibilitu: Skripty a nástroje tretích strán môžu vyžadovať úpravy z dôvodu nového formátu adresy kľúča a zmien výstupu súvisiacich s podpisom. Pre skoré testovanie Odporúča sa overiť: aktualizáciu importovaných kľúčov, správu kľúčeniek pomocou rpmkeys a kompatibilitu formátu v6 s externým softvérom (zostavenie s %_rpmformat na 6).

Používateľská skúsenosť RPM 6.0 na Fedore

Používateľská skúsenosť: Výstup podpisu a kľúča je štandardizovaný na veľké a malé písmená a kľúče sa zobrazujú pomocou odtlačku prsta alebo úplného ID, čím sa upúšťa od starého krátkeho ID náchylného na kolízie. rpmkeys je etablovaný ako oficiálny nástroj manipulovať s kľúčenkou; staré metódy, ako napríklad manuálne dotýkanie sa pseudobalíkov gpg-pubkey, sú zastarané a mali by byť migrované do rpmkeys alebo nových API.

Závislosti: Názov SO sa nemení, takže nie sú potrebné žiadne prestavby závislostí; neexistujú žiadne závislosti od iných zmien vo Fedore. RPM je zostavený ako C++, takže pridáva závislosť za behu od libstdc++. Podpisovanie so Sequoiou vyžaduje sequoia-sq 1.0 alebo vyšší ako voliteľná závislosť a ovplyvňuje iba podpisovanie balíkov.

Pohotovostný plán: v prípade potreby sa vrátiť k RPM 4.20 s termínom pozastavenia beta verzie bez blokovania vydania. Doručovanie pokračuje, aj keď formát v6 ešte nie je predvolený v distribúcii.

Poznámky k vydaniu RPM 6.0 a oznámenie o pozadí

Predchádzajúci kandidát obsahoval opravy chýb a aktualizácie manuálových stránok a bol povýšený na finálnu verziu. Oznámenie podpísané tímom RPM Zdôrazňuje, že od reštartu rpm.org okolo roku 2007 sa na tomto míľniku vykonalo veľa práce, pričom medzi míľniky patria 64-bitové veľkosti súborov, pripojiteľné generátory závislostí, transakčné pluginy, bohaté závislosti, spúšťače súborov, vylepšenia debuginfo, nové databázové backendy, integrácia Lua a makro výrazy, dynamické požiadavky na zostavovanie, generovanie špecifikácií, podpora používateľov a skupín a deklaratívne systémy zostavovania.

Kódom prispelo viac ako 300 ľudí z viacerých distribúcií a organizácií. História projektu a jeho komunity vysvetľuje stabilitu a rozsah že RPM 6.0 dedí a rozširuje.

Výhľad pre RPM 6.0 je taký, že správca balíkov bude v nasledujúcom desaťročí posilnený: Lepšia kryptografia, formát pre veľké objemy dát, výkonnejšie nástroje a aktuálna dokumentácia., s jasnou cestou kompatibility pre administrátorov, tvorcov balíčkov a ekosystémy, aby mohli bez problémov prijať nové funkcie.

soul linux 9.2
Súvisiaci článok:
AlmaLinux 9.2 už vyšiel a toto sú jeho novinky