Fejlesztett csomagépítés és felhasználói élmény az RPM 4.20-ban: Az új funkciók áttekintése

A Redhat által gondozott RPM-csomagkezelő legújabb verziója számos újítást és fejlesztést vezetett be a felhasználói felület és a csomagépítési folyamatok terén, amelyek célja a hatékonyabb és rugalmasabb működés támogatása.

Fejlesztett csomagépítés és felhasználói élmény az RPM 4.20-ban: Az új funkciók áttekintése

RPM 4.20 legfontosabb újdonságok

Az eszközkészlet több új opcióval bővült. Például az rpmkeys(8) parancs két új opcióval bővült: a –list és a –delete lehetőségekkel, amelyek megkönnyítik a kulcsok kezelését. Az rpmsign(8) parancs mostantól támogatja az ECDSA kulcsokkal való csomagaláírást, ami modern kriptográfiai módszerek bevezetését jelenti. Az rpm2archive(8) eszköz immár támogatja a cpio fájlformátumot, ami felváltja az rpm2cpio(8) implementációt, amely mostantól szimbolikus linkként érhető el az új eszközhöz. Ezek az újítások hozzájárulnak a csomagkezelés egyszerűsítéséhez és biztonságosabbá tételéhez.

A csomagkezelő mostantól JSON-formátumú kimenetet is tud biztosítani a lekérdezések során a –json opció használatával, amely egy olvashatóbb és modernebb alternatíva az eddig használt –xml opcióhoz képest. Ez különösen hasznos lehet, amikor gépek közötti kommunikációra vagy adatok feldolgozására van szükség.

A felhasználói makrók konfigurációja is módosult: a makrók személyre szabott beállításai mostantól az ${XDG_CONFIG_HOME}/rpm könyvtárban lesznek tárolva, ezáltal biztosítva egy egységes és könnyen elérhető helyet ezen konfigurációk részére. Ezenkívül egy új rpm-plugin-unshare(8) plugin eszköz is elérhetővé vált, amely Linux namespace-eket használ arra, hogy korlátozza a fájlrendszerhez és a hálózathoz való hozzáférést a scriptletek futtatása során. Ez a funkció a scripletek biztonságának növelését szolgálja, és megakadályozza, hogy nem kívánt fájl- vagy hálózati hozzáférés történjen a csomagok telepítésekor.

A csomagépítést érintő jelentős fejlesztések

A csomagépítési folyamatokat is jelentős fejlesztések érték. Az új BuildSystem direktíva bevezetésével a csomagolt szoftverek építési rendszerét lehet deklarálni, így a források előkészítése, fordítása és telepítése automatikusan, az adott építési rendszer legjobb gyakorlatait követve történik. Ezáltal a csomagolóknak már nem szükséges manuálisan megadniuk a %prep, %build vagy %install scriptleteket, ami egyszerűsíti a folyamatot és csökkenti a boilerplate kódot. Ugyanakkor a csomagolók továbbra is finomhangolhatják ezeket a lépéseket, ha szükséges, például a disztribúciók irányelveinek való megfelelés érdekében.

Továbbá a build scriptletek mostantól tetszőleges számú alkalommal bővíthetők vagy módosíthatók az új -a (append) és -p (prepend) opciókkal, ami különösen hasznos a BuildSystem funkció használatakor. Dinamikus spec részek is tartalmazhatnak olyan direktívákat és szekciókat, amelyek nem befolyásolják közvetlenül a build folyamatot, de ha olyan részeket tartalmaznak, amelyek igen, akkor megfelelő hibaüzenet jelenik meg.

Egy új, RPM által vezérelt per-package építési könyvtár is bevezetésre került, amelyet a %builddir makróval lehet elérni. Az rpmbuild(8) mostantól egyértelműbb és kevésbé félreérthető módon kezeli a –build-in-place opciót, és az %autosetup scriptlet is kapott egy -C opciót, amely biztosítja, hogy a forrásfájlok a build könyvtár gyökerében legyenek kicsomagolva. Ezek a változtatások pontosabbá és átláthatóbbá teszik az építési folyamatot, valamint hatékonyabbá teszik a források kezelését.

A fejlesztések részeként a %autopatch mostantól figyelmeztetést ad, ha a megadott patch tartomány nem egyezik meg egyetlen patch-el sem, de ez a figyelmeztetés figyelmen kívül hagyható a -q opcióval. A disztribúciók új makrókkal felülbírálhatják a build feltételeket, és a fájlattribútumokat valamint a generátorokat most már ugyanaz a csomag is tartalmazhatja, amely használja őket.

A reprodukálható buildek támogatása is javult, most már lehetőség van időbélyeg-kezelési szabályokat beállítani a %build_mtime_policy makróval. Kétféle policy érhető el: az egyik az időbélyegeket a $SOURCE_DATE_EPOCH-hoz igazítja, a másik pedig a build időhöz. Továbbá a build mostantól az $RPM_BUILD_TIME környezeti változón keresztül is elérhető, és manuálisan felülírható a %_buildtime makróval.

Hogyan tudod használatba venni?

Az új verzió egyelőre még nem elérhető, de a jó hír az, hogy a FESCo jóváhagyta az RPM 4.20 bevezetését a közelgő Fedora 41 kiadásba, amelyet november elejére terveznek. Tehát már csak egy hónapot kell rá várni.

A kiadási megjegyzések részletesebb technikai információkat tartalmaznak az RPM 4.20 összes változásáról.