Paket menejerining chiqarilishi RPM 4.16

Bir yillik rivojlanishdan keyin amalga oshirildi paket menejerining chiqarilishi 4.16.0 aylanish tezligi. RPM4 loyihasi Red Hat tomonidan ishlab chiqilgan va RHEL (shu jumladan, lotin loyihalari CentOS, Scientific Linux, AsiaLinux, Red Flag Linux, Oracle Linux), Fedora, SUSE, openSUSE, ALT Linux, OpenMandriva, Mageia, PCLinuxOS kabi tarqatishlarda qo'llaniladi. Tizen va boshqalar. Ilgari mustaqil rivojlanish guruhi rivojlangan qoralama RPM 5, bu RPM4 bilan bevosita bog'liq emas va hozirda tark etilgan (2010 yildan beri yangilanmagan). Loyiha kodi tarqaladi GPLv2 va LGPLv2 ostida litsenziyalangan.

Eng diqqatga sazovor yaxshilanishlar RPM 4.16 da:

  • SQLite DBMSda ma'lumotlar bazalarini saqlash uchun yangi backend amalga oshirildi. Bu backend foydalaniladi BerkeleyDB-ga asoslangan backend o'rniga Fedora Linux 33 da.
  • Faqat o'qish rejimida ishlaydigan BDB (Oracle Berkeley DB) da ma'lumotlar bazalarini saqlash uchun yangi eksperimental backend joriy etildi. Amalga oshirish noldan yozilgan va eski BerkeleyDB backendidagi koddan foydalanmaydi, u eskirgan, lekin hali ham sukut bo'yicha kiritilgan.
  • Eksperimental LMDB asosidagi maʼlumotlar bazasi backend oʻchirildi.
  • NDB xotirasiga asoslangan backend ma'lumotlar bazasi barqaror deb e'lon qilindi.
  • "%if" makroslari va ifodalari uchun qo'shimcha qo'llab-quvvatlash thenar operatori (%{expr:1==0?"yes":"no"}) va o'rnatilgan versiyani taqqoslash xususiyatini taklif qiladi ('%[v"3:1.2-1″ > v"2.0″]').
  • Fayllarni ularning tarkibining MIME turlari bo'yicha tasniflashni qo'llab-quvvatlash amalga oshirildi.
  • Foydalanish orqali bog'liqliklarni yaratish qobiliyati qo'shildi parametrik makroslar.
  • C va Python uchun tahlil qilish va taqqoslash API ning yangi versiyasi taklif qilindi.
  • Brp-strip va test to'plami komponentlarini bajarishning parallelligi ta'minlanadi. Paketlarni yaratish jarayonini parallellashtirishni optimallashtirish amalga oshirildi.
  • Rpmdb yordam dasturi uchun qo'shildi shikastlangan ma'lumotlar bazasini tiklash uchun "—salvagedb" opsiyasi (faqat NDB backend bilan ishlaydi).
  • Arxitekturani aniqlash uchun yangi %arm32, %arm64 va %riscv makroslari qo‘shildi. Shuningdek, makrolar mazmunini olish uchun o'rnatilgan %{macrobody:...} makrosi qo'shildi.
  • Ifodalarda qo'shtirnoq bilan ajratilmagan so'zlardan foydalanish taqiqlanadi, ya'ni. "a == b" o'rniga endi "a" == "b"' yozishingiz kerak.
  • Ifodani tahlil qilish makrosini kengaytirish bilan ifodani bajarish uchun "%[...]" sintaksisini amalga oshiradi (u "%{expr:...}" dan birinchi bo'lib makroslar bajarilishi bilan farq qiladi).
  • Ifodalardagi mantiqiy va tenar operatorlarning qisqacha kengayishi uchun qoʻshimcha qoʻllab-quvvatlash (“%[0 && 1 / 0]” nolga boʻlish urinishi tufayli xatolikka sabab boʻlish oʻrniga 0 deb hisoblanadi).
  • Ixtiyoriy kontekstlarda (!"%?foo") EMAS mantiqiy operatoridan foydalanish uchun qo'shimcha qo'llab-quvvatlash.
  • "||" operatorlarining xatti-harakati va "&&" Perl/Python/Ruby bilan bir qatorga keltiriladi, ya'ni. Mantiqiy qiymatni qaytarish o'rniga u endi oxirgi hisoblangan qiymatni qaytaradi (masalan, "%[2 || 3]" 2 ni qaytaradi).
  • Raqamli imzolar va xeshlarning muqobil formatlarini tekshirish imkoniyati qo‘shildi.
  • O'rnatish va olib tashlash tartibiga ta'sir qilmaydigan meta-bog'liqlar uchun qo'shimcha qo'llab-quvvatlash (Requires(meta): somepkg).
  • RPM3 formatida raqamli imzolardan foydalanishga majburlash uchun rpmsign uchun "--rpmv3" opsiyasi qo'shildi.
  • Hujjatlarni, misol konfiguratsiya fayllarini va boshqa tegishli ma'lumotlarni o'rnatishni o'tkazib yuborish uchun "--excludeartifacts" o'rnatish opsiyasi qo'shildi.
  • RPMv3 va beecrypt va NSS kripto serverlari uchun eskirgan qo'llab-quvvatlash.
  • DSA2 (gcrypt) va EdDSA uchun qo'shimcha yordam.

Manba: opennet.ru

a Izoh qo'shish