RPM Package Manager is een pakketbeheertool die is ontworpen voor het installeren, bijwerken, verwijderen, verifiëren en aanvragen van programma's
De lancering van de nieuwe versie van de pakketbeheerder "RPM 4.19" werd aangekondigd, waarbij onder meer de verbeteringen en correcties die zijn aangebracht, evenals verbeteringen in APIS, ondersteuning en een nieuw CMake-compilatiesysteem verder worden benadrukt.
Het RPM4-project wordt momenteel ontwikkeld door Red Hat en gebruikt in distributies zoals RHEL (inclusief projecten afgeleid van CentOS, Scientific Linux, AsiaLinux, Red Flag Linux, Oracle Linux), Fedora, SUSE, openSUSE, ALT Linux, OpenMandriva, Mageia, PCLinuxOS, Tizen en vele anderen.
Eerder ontwikkelde een onafhankelijk ontwikkelingsteam het RPM5-project, dat niet direct gerelateerd is aan RPM4 en momenteel wordt verlaten (het is sinds 2010 niet meer bijgewerkt).
Een RPM-pakket kan een willekeurig aantal bestanden bevatten. De meeste RPM-bestanden zijn "binaire RPM" (of BRPM), die de gecompileerde versie van software bevatten. Er zijn ook "source RPM" (of SRPM), die de broncode bevatten die gebruikt is om een binair pakket te bouwen. SRPM-bestanden hebben doorgaans de bestandsextensie ".src.rpm" (of ".spm" op bestandssystemen met een limiet van 3 tekens, zoals het oudere DOS FAT).
Belangrijkste nieuwe kenmerken van RPM 4.19
In deze nieuwe versie van RPM 4.19 is een van de meest opvallende kenmerken de toevoeging van ondersteuning voor ".specpart"-bestanden voor het dynamisch genereren van specificatiebestanden, evenals de toevoeging van " --generate-subpackages " aan find_lang.sh, dat gebruikmaakt van .specpart.
Een andere opvallende verandering in deze nieuwe versie van RPM 4.19 is de integratie met de gebruikersaccountdirectory sysusers.d van het systeem voor het automatisch verwerken van gebruikers en groepen. Daarnaast is er ondersteuning toegevoegd voor het genereren van gebruikers en groepen op basis van de bestanden /etc/passwd, /etc/group en sysusers.d die in het pakket zijn opgenomen.
Wat betreft verbeteringen in de ondersteuning, vallen de volgende op: er zijn x86-64 architectuurniveaus toegevoegd, de manier waarop x86-modellen worden afgeleid in rpmrc is gecorrigeerd, het CMake-buildsysteem is gewijzigd om Autotools te vervangen en fakechroot is vervangen door containertechnologie.
We kunnen ook ontdekken dat ondersteuning voor %preuntrans- en %postuntrans-scriptlets is toegevoegd in de specificatiebestanden, en dat het rpmsort-hulpprogramma is toegevoegd om rpm-pakketversies te sorteren.
Daarnaast zijn de opties “–nopreuntrans”, “–nopostuntrans” en “–nosysusers” toegevoegd om scripts uit te schakelen en automatisch gebruikers en groepen aan te maken tijdens de installatie van het pakket.
Andere opvallende wijzigingen in deze nieuwe versie zijn onder meer:
- Zorg ervoor dat gebruikers-/groepsinformatie betrouwbaar werkt in chroot
- Maak rpmscript-machines chroot-vriendelijk
- Vaste plug-in hook-regressie per bestand geïntroduceerd in 4.18
- Onderdruk het waarschuwingsbericht Vergrendeling blokkeren wanneer de DBus-service niet beschikbaar is
- Ontbrekende include-bestanden in macOS repareren
- De functie gerelateerd aan het bestand classifierrpmfcNew() is verouderd verklaard
- Probleem opgelost waarbij de exitcode van onderliggende scripts werd genegeerd in het geval van EINTR
- De rpmioe-thread-inschakelingscode is vereenvoudigd en opgeschoond.
- Het blok- en opdrachtregelhulpprogramma %files ondersteunen nu globbing in shell-stijl en het ontsnappen van speciale tekens.
- Verwijder enkele andere oude en overbodige configuratietijdcontroles
- Splits vertalingen in een apart project
- Standaard ingesteld op de landinstelling C.UTF-8, terugvallen op C is mogelijk
- Bibliotheken werden geëxporteerd als een cmake “find_package()”-configuratie
- De functies rpmGlobPath(), rpmEscape() en rpmUnescape() zijn aan de API toegevoegd.
- De parallellisatie van de assemblage wordt nu uitgevoerd, waarbij rekening wordt gehouden met geheugen- en adresruimte.
- Ontwikkelingsdocumentatie toegevoegd bij het maken van documentatie.
- Diverse andere toevoegingen en oplossingen
- Voor projecten die CMake gebruiken, is de functie find_package(rpm) beschikbaar.
- Een segmentatiefout opgelost in een niet-ketenbaar argument voor een macro-oproep van Lua
Als u tot slot meer wilt weten over deze nieuwe versie, kunt u de details vinden via de volgende link.