
Skok na O / min 6.0 označava prije i poslije u najraširenijem upravitelju paketa u ekosustavu Red Hat Enterprise Linux, SUSE i derivati. Ovo izdanje kombinira godine rada na modernizaciji sigurnosti, formata paketa i alata, a to je vidljivo u svakom kutku projekta. Ako upravljate sustavima ili softverom paketa, ova promjena vam je važna jer utječe na način na koji gradite, potpisujete, provjeravate i instalirate pakete.
Objava je napravljena 22. rujna 2025. i slijedi kandidata koji je konačno potvrđen kao konačna verzija. Osim javna objava, uložen je veliki trud u dokumentaciju i promjene zadanog ponašanja. RPM 6.0 Uvodi podršku za novi v6 format i jača kriptografsku provjeru, uz zadržavanje podrške za v4 pakete i uklanjanje instalacije v3.
Što je RPM 6.0 i zašto je važan
S RPM 6.0, projekt konsolidira sigurnije prakse potpisivanja, ukida zastarjele algoritme i otvara put formatu paketa spremnom za moderne veličine i metapodatke. v4 format slavi 25. obljetnicu, a kodna baza se približava 30. obljetnici., stoga je ova velika revizija bila potrebna kako bi se uskladila sa sadašnjim standardima i veličinom suvremenih repozitorija.
Službena objava ističe prekretnice poput upravljanja višestrukim potpisima OpenPGP-a, podrške za ključeve i potpise OpenPGP v6 (uključujući postkvantnu kriptografiju) te usvajanja strategija za dobivanje besprijekornih i provjerljivih tarballova izdanja. Glavni cilj je podići ljestvicu sigurnosti bez narušavanja kompatibilnosti. u svakodnevnom životu pakera i administratora.
Preuzimanja i otisci
Distribucija uključuje glavnu izvornu datoteku rpm-6.0.0.tar.bz2, popraćenu SHA256 kontrolnim zbrojem za provjeru integriteta. SHA256: 14abb1b944476788d90005d8d61d5d30fce80d9f0de11eb657b14e5c9ef27441.
Pregled promjena u usporedbi s verzijom 4.20.1
- Podrška za v4 i v6 pakete, s detaljnim bilješkama o kompatibilnosti.
- Višestruki OpenPGP potpisi po paketu i podrška za OpenPGP v6 i PQC ključeve.
- Ažuriranje prethodno uvezenih ključeva i korištenje punog otiska prsta ili ID-a tijekom cijelog ciklusa.
- Instalacijski program v3 paketa se ukida; mogu se pregledavati i raspakirati pomoću rpm2cpio, ali ne i instalirati.
- Stroga provedba provjere potpisa prema zadanim postavkama, povećavajući sigurnost ekosustava.
- Velika revizija stranica priručnika i dokumentacije, s verzijskim sadržajem na službenoj web stranici.
- Netaknute i provjerljive tarball datoteke izdanja, jačanje ponovljivosti i revizije.
Promjene i poboljšanja za opću upotrebu
Uslužni program rpmkeys dobiva veliku važnost u upravljanju ključevima: Sada omogućuje ažuriranje ključeva s rpmkeys –import (uključujući ažuriranje dvosmislenog kratkog identifikatora u puni otisak prsta), uvoz iz cijevi, izvoz s rpmkeys –export i dosljedan rad na različitim pozadinskim sustavima privjeska ključeva. Osim toga, s rpmkeys –rebuild, sadržaj privjeska ključeva može se ponovno izgraditi i migrirati između pozadinskih sustava, a pretraživanja ključeva sada nisu osjetljiva na velika i mala slova.
rpmsign također pravi skok: Može se potpisati s GnuPG-om ili Sequoia-sq-om. kontrolira se makronaredbom %_openpgp_sign. Podnaredba rpmsign –addsign više ne zamjenjuje postojeće potpise; prema zadanim postavkama dodaje bilo koji broj potpisa v6 paketima, a također i v4 paketima ako se koristi –rpmv6. S druge strane, RPMsign –resign zamjenjuje sve prethodne potpise novima.
Za upite se dodaju ekstenzije oznaka kao što su rpmformat (provjera je li v3, v4 ili v6) i openpgp (upravljanje svim OpenPGP potpisima). Dodan je formater :hashalgo za prikaz naziva algoritama za hashiranje, a pseudonim –filemime pojavljuje se za upit MIME-a po datoteci. Terminologija je standardizirana u svim porukama: OpenPGP se koristi dosljedno, a potpisi zaglavlja i korisnog tereta v3 označeni su kao naslijeđeni.
Nova funkcija izračuna i ispravci grešaka u RPM 6.0
Nova značajka izračunava konfigurirajući skup sažetaka tijekom provjere i sprema ih u RPM bazu podataka, pomažući u identifikaciji datoteke izvornog paketa. Riješeno više operativnih problemaPogreške skriptleta sada utječu na kodove rezultata transakcija; određeni neuspjeli okidači utječu na povezane operacije; a problemi s -hash, -percent i -test u kombinaciji s -restore su ispravljeni.
Ispravljene su greške poput segfaulta i curenja u rpmgraphu, sufiksu koji rpm2archive koristi za tar i cpio, a provedeno je i značajno prepisivanje stranica priručnika: Jedinstveni stil s primjerima, nove stranice za komponente i formate, premještanjem korisničkih naredbi u odjeljak 1 i pokrivanjem prethodno nedokumentiranih aspekata. Verzirana dokumentacija na službenoj web stranici uključuje stranice priručnika, referentni priručnik i API.
Pakiranje i izrada paketa
rpmbuild sada može generirati dva različita formata kontrolirana makronaredbom %_rpmformat (vrijednosti 6 ili 4). Osim toga, u izradi je omogućeno samopotpisivanje Ako je definiran %_openpgp_autosign_id i dodan je alat rpm-setup-autosign za olakšavanje te konfiguracije.
U makroima se dodaje %{span:…} radi olakšavanja višelinijskih definicija, a %{xdg:…} se dodaje za procjenu osnovnih XDG putanja. Dodana je podrška za E2K arhitekturu i niz ispravaka: redoslijed izvornog koda i zakrpe u zaglavlju, Lua glob koji poštuje argument c, validacija arhitekture na ispravnom mjestu, prihvaćanje odjeljaka %prep specifičnih za sustav izgradnje i ispravci u check-rpaths kada RPATH i RUNPATH koegzistiraju.
Ispravlja curenje memorije u rpmspec –shell, regresiju 4.20 u rpmbuild -rs s nepostojećim direktorijima i dodatni znak za novi redak u rpm –eval. Segfault je također ispravljen. u slučaju nevažećeg izlaza iz alata za izradu ovisnosti u višestrukom načinu rada, a politika brp-selfperms je uklonjena. Konačno, uklonjena je zastarjela opcija –nodirtokens iz rpmbuilda.
Promjene API-ja
U području privjeska za ključeve dodane su funkcije za iteraciju i upravljanje ključevima: rpmKeyringInitIterator, rpmKeyringIteratorNext, rpmKeyringIteratorFree, rpmKeyringVerifySig2, rpmKeyringLookupKey i rpmKeyringModifyZa rpmPubkey dodani su pristupnici kao što su rpmPubkeyFingperint, rpmPubkeyFingerprintAsHex, rpmPubkeyKeyIDAsHex i rpmPubkeyArmorWrap, kao i rpmPubkeyMerge za spajanje deskriptora istog ključa.
Za trajni privjesak ključeva za transakcije uključeni su rpmtxnImportPubkey, rpmtxnDeletePubkey i rpmtxnRebuildKeystore. Operacija rpmSign kontrolira se novim zastavicamaRPMSIGN_FLAG_RESIGN, RPMSIGN_FLAG_RPMV4 i RPMSIGN_FLAG_RPMV6. rpmteVfyLevel i rpmteSetVfyLevel, zajedno s njihovim ekvivalentima te.VfyLevel i te.SetVfyLevel, također su dodani u Python poveznice.
Za više potpisa pojavljuju se identifikatori kao što su RPMTAG_OPENPGP, RPMSIGTAG_OPENPGP (alias gore navedenog) i zastavica provjere RPMVSF_NOOPENPGP. Dodaju se nove oznakeRPMTAG_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.
Postoje preimenovane oznake: RPMTAG_PAYLOADDIGEST je premješten u RPMTAG_PAYLOADSHA256, RPMTAG_PAYLOADDIGESTALT je premješten u RPMTAG_PAYLOADSHA256ALT, a RPMTAG_PAYLOADDIGESTALGO je označen kao zastario pod RPMTAG_PAYLOADSHA256ALGO. Dodani su SHA-3 identifikatoriRPM_HASH_SHA3_256 i RPM_HASH_SHA3_512, kao i simboli povezani s MIME-om po datoteci u v6 paketima, kao što su rpmfilesFMime i rpmfiFMime, te zastavica RPMFI_NOFILEMIME.
U domeni OpenPGP, dodani su identifikatori sukladni s RFC 9580 i funkcija pgpDigParamsSalt za dohvaćanje pre-salt v6 potpisa. Za sažetke paketa pojavljuje se rpmDigestBundleUpdateID. (ažurira pojedinačne identifikatore). Ostale nove značajke: rpmtsAddInstallElement vraća 3 za nepodržane formate, a fdSize prijavljuje grešku za neregularne datoteke.
Interna poboljšanja
RPM kod je premješten u C++20 (osim za Python dodatke i poveznice). Fontovi su preimenovani u .cc i .hh, dinamičke strukture migriraju u STL, a brojanje referenci je pojačano atomskim operacijama. Osim toga, skup testova je proširen, a stvaranje testova je pojednostavljeno.
Predstavljena je stvarna apstrakcija privjeska za ključeve i eksperimentalni backend temeljen na openpgp.cert.d. Dodan cilj web-mjesta za izradu za prikaz lokalne dokumentacije, a testna slika se prilagođava alatnom okviru. Podcrte su dopuštene u RPMTAG nazivima, a regresije su ispravljene, poput rezervirane veličine za potpise i mehanizma alternativa koji ometaju potpise.
Ispravljena čitanja privjeska ključeva bez zaključavanja transakcija, uvjet utrke u rpmioMkpath, dubina rekurzije u porukama o pogrešci makroa i slučaj u kojem su prazna polja passwd ili group uzrokovala ignoriranje unosa. Interni makroi su ponovno dostupni prije učitavanja datoteka, greška fdSize u rpmSign se ispravno obrađuje, pseudo-oznake se čiste u –querytags, a prefiks instalacije se poštuje u naslijeđenim skriptama find-provides i find-requires.
Druga unutarnja poboljšanja
Također su ispravljena curenja referenci povezanih s datotekama u Pythonu, stabilizirana je pohrana ovisnosti kako bi se izbjegao nedeterminizam, ispravljeno je izbjegavanje chroota u skripti sysusers s u! unosima i ispravljena je regresija 4.19 u povratnim kodovima neuspjelih ažuriranja. Upozorenje o makro datotekama u rpmrc-u, zaključavanje transakcije se ponovno stvara nakon –rebuilddb, pod uvjetom da se gpg(keyid) ukloni iz gpg-pubkey i da se simboli koji su slučajno procurili u ABI očiste.
Uklonjene su neprenosive upotrebe signala, optimizirano je zaključavanje rpmlog-a, a Python povezivanja podržavaju izolaciju modula za više podinterpretera i ispravljaju curenje resursa ASAN testiranjem. To su poboljšanja koja povećavaju robusnost, prenosivost i održavanje. na svim frontama.
Zahtjevi za kompajliranje RPM-a
Uz C99 sada je potreban i C++20 kompajler; podrška za C++20 module nije potrebna. Za izgradnju sa Sequoiom, potreban je rpm-sequoia 1.9.0 ili noviji (i je zadana opcija), Python 3.10 ili noviji za povezivanja i scdoc generator za stranice priručnika.
Prekompilirana API dokumentacija više nije uključena u tarballove izdanja; njezina izrada pomoću Doxygena nije obavezna. Dostupni su unaprijed izgrađeni API-ji po verziji u FTP-u projekta.
Uvodna predavanja o kompatibilnosti i formatu RPM 6.0
Format paketa v6 donosi 64-bitnu veličinu datoteke i povezana ograničenja, kriptografsku modernizaciju uklanjanjem MD5 i SHA1, SHA3-256 hashova u zaglavlju te SHA512 i SHA3-256 sažetaka u korisnom teretu. MIME informacije se dodaju po datoteci, a postoji i široka podrška za RPM počevši od verzije 4.14 (s nijansama). Način generiranja vanjskih ovisnosti više nije podržan u v6, a naslijeđene ovisnosti rpmlib-a prije verzije 4.6 uklonjene su kako bi se uklonila buka.
v6 paketi se mogu preuzeti s RPM-om od verzije 4.6, raspakirati s verzijom 4.12, te provjeriti i instalirati s verzijom 4.14 ili novijom, uz poznata ograničenja. v4 paketi ostaju u potpunosti podržani a oni generirani od strane 6.0 identični su onima iz grane 4.x; međutim, pod zadanom konfiguracijom, paketi izgrađeni s RPM-ovima nižim od 4.14 nisu provjereni jer koriste slabe sažetke. Možete postaviti %_pkgverify_level na potpis kako biste ignorirali ove sažetke ili vratiti ponašanje 4.x postavljanjem %_pkgverify_flags na 0 ako je potrebna provjera slabog sažetka.
Instalacija v3 je uklonjena, iako se može pregledati i raspakirati pomoću rpm2cpio. Prema zadanim postavkama, RPM izrađuje v6 pakete; ovo se može poništiti postavljanjem %_rpmformat na 4. U paketima izgrađenim s RPM 6.0 ili novijim, Lua obitelj posix.fork je onemogućena, dok u paketima izgrađenim s 4.20 ili starijim i dalje radi.
Ostala razmatranja: konfiguracija ključa za potpisivanje sada je definirana s %_openpgp_sign_id (unatrag kompatibilna s %_gpg_name), makroi za potpisivanje niske razine postaju parametarski, a prilagođena nadjačavanja %__gpg_sign_cmd više ne rade odmah po instalaciji. %_passwd_path i %_group_path mogu biti popisi odvojeni dvotočkama. za korištenje više NSS izvora, a preklopnici upita –pkgid i –hdrid se uklanjaju.
RPM 6.0 i Fedora 43: Opseg, prednosti i testiranje
Nadogradnja na RPM 6.0 u Fedora 43 Nastoji ojačati sigurnost i pripremiti teren za v6 format, ali još uvijek bez usvajanja novog formata kao zadanog. Fedora 43 će nastaviti generirati v4 prema zadanim postavkama., a stroga provedba provjere potpisa bit će riješena kao promjena sustava u budućem izdanju.
Ključne prednosti Fedore uključuju: OpenPGP ključevi se sada uvijek identificiraju otiskom prsta ili punim ID-om, mogu se ažurirati s rpmkeys –import, podržano je više potpisa po paketu, podržano je lokalno samopotpisivanje tijekom izgradnje i korištenje Sequoia-sq kao alternative GnuPG-u. Također olakšava testiranje v6 formata u ekosustavu bez prisilnog globalnog usvajanja.
Nije u opsegu: opća migracija Fedore na v6 format ili promjena zadanog načina provjere. Promjene su odgovorne za prekoračenje RPM-a i pomažu s nekompatibilnostima, dok ostali programeri moraju testirati, prijavljivati probleme i prilagođavati alate trećih strana kada je to potrebno.
Utjecaj nadogradnje i kompatibilnosti: Skripte i alati trećih strana mogu zahtijevati prilagodbe zbog novog formata adrese ključa i promjena izlaza povezanih s potpisom. Za rano testiranje Preporučljivo je validirati: ažuriranje uvezenih ključeva, upravljanje privjeskom ključeva s rpmkeys i kompatibilnost v6 formata s vanjskim softverom (izgradnja s %_rpmformat na 6).
RPM 6.0 korisničko iskustvo na Fedori
Korisničko iskustvo: Potpis i izlaz ključa standardizirani su na velika i mala slova, a ključevi se prikazuju otiskom prsta ili punim ID-om, napuštajući stari kratki ID sklon kolizijama. rpmkeys je uspostavljen kao službeni alat za manipuliranje privjeskom ključeva; stare metode poput ručnog dodirivanja pseudo-paketa gpg-pubkey su zastarjele i trebale bi se migrirati na rpmkeys ili nove API-je.
Ovisnosti: SOName se ne mijenja, tako da nisu potrebne ponovne izgradnje ovisnosti; nema ovisnosti o drugim promjenama Fedore. RPM je izgrađen kao C++, tako da dodaje ovisnost o libstdc++ tijekom izvođenja. Potpisivanje sa Sequoiom zahtijeva sequoia-sq 1.0 ili noviju verziju kao opcionalna ovisnost i utječe samo na potpisivanje paketa.
Plan za nepredviđene situacije: povratak na RPM 4.20 ako je potrebno, s rokom za zamrzavanje beta verzije, bez blokiranja izdanja. Isporuka se nastavlja iako v6 format još nije zadani u distribuciji.
Bilješke o izdanju RPM 6.0 i pozadinska najava
Prethodni kandidat je uključivao ispravke grešaka i ažuriranja stranica priručnika te je promoviran u konačnu verziju. Objava koju je potpisao RPM tim Ističe se da je rad na postizanju ove prekretnice učinjen od ponovnog pokretanja rpm.org-a oko 2007. godine, s prekretnicama kao što su 64-bitne veličine datoteka, generatori ovisnosti koji se mogu uključiti, dodaci za transakcije, bogate ovisnosti, okidači datoteka, poboljšanja debuginfo-a, novi pozadinski sustavi baze podataka, integracija Lua-e i makro izrazi, dinamički zahtjevi za izgradnju, generiranje specifikacija, podrška za korisnike i grupe te deklarativni sustavi za izgradnju.
Preko 300 ljudi je doprinijelo kodom iz više distribucija i organizacija. Povijest projekta i njegove zajednice objašnjava stabilnost i opseg da RPM 6.0 nasljeđuje i proširuje.
Izgledi za RPM 6.0 su ojačani upravitelj paketa za sljedeće desetljeće: Bolja kriptografija, format velikog volumena, moćniji alati i ažurna dokumentacija., s jasnim putem kompatibilnosti za administratore, pakerice i ekosustave kako bi bez problema usvojili nove značajke.