หลังจากหนึ่งปีของการพัฒนา โดยครีบ การเปิดตัว ตัวจัดการแพ็คเกจเวอร์ชันเสถียร "รอบต่อนาที 4.16", ซึ่งใน มีการปรับปรุงบางอย่าง เกี่ยวกับตัวดำเนินการแบ็กเอนด์ใหม่และการเปลี่ยนแปลงอื่น ๆ
โครงการ RPM4 ได้รับการพัฒนาโดย Red Hat และใช้ในการกระจายเช่น RHEL (รวมถึงที่มาจาก CentOS, Scientific Linux, AsiaLinux, Red Flag Linux, Oracle Linux), Fedora, SUSE, openSUSE, ALT Linux, OpenMandriva, Mageia, PCLinuxOS, Tizen และอื่น ๆ อีกมากมาย
ก่อนหน้านี้ทีมพัฒนาอิสระได้พัฒนาโครงการ RPM5 ซึ่งไม่เกี่ยวข้องโดยตรงกับ RPM4 และปัจจุบันถูกยกเลิก (ไม่ได้รับการอัปเดตตั้งแต่ปี 2010) รหัสโครงการแจกจ่ายภายใต้สิทธิ์การใช้งาน GPLv2
คุณสมบัติใหม่หลักของ RPM 4.16
ในเวอร์ชันใหม่ของตัวจัดการแพ็คเกจ RPM 4.16 มีการใช้แบ็กเอนด์ใหม่เพื่อจัดเก็บฐานข้อมูลใน SQLite DBMS โดยแบ็กเอนด์นี้มีการวางแผนว่า Fedora 33 เวอร์ชันจะใช้ประโยชน์จากสิ่งนี้แทนแบ็กเอนด์ที่ใช้ BerkeleyDB
การเปลี่ยนแปลงอีกอย่างที่นำมาใช้คือไฟล์ แบ็กเอนด์แบบอ่านอย่างเดียวแบบทดลองใหม่สำหรับการจัดเก็บฐานข้อมูล ที่ BDB (Oracle Berkeley DB) การใช้งานถูกเขียนขึ้นตั้งแต่ต้นและไม่ใช้โค้ดแบ็กเอนด์เดิมของ BerkeleyDB ซึ่งเลิกใช้งานแล้ว แต่ยังรวมไว้โดยค่าเริ่มต้น
ในส่วนของมาโครและนิพจน์ เพิ่มการรองรับ "% If" สำหรับตัวดำเนินการ tenary แล้ว (% {expr: 1 == 0? » yes »: » no »}) และเสนอการเปรียบเทียบเวอร์ชันในตัว ('% [v » 3: 1.2-1″> v » 2.0″]') และใหม่ ถูกเพิ่มมาโคร% arm32,% arm64 และ% riscv เพื่อกำหนดสถาปัตยกรรมและร่วมกับมาโครในตัว% {macrobody: …} เพื่อให้ได้เนื้อหามาโคร
นอกจากนี้ มีการเสนอ API การวิเคราะห์และเปรียบเทียบเวอร์ชันใหม่ สำหรับภาษา C และ Python
มีการขนานการดำเนินการ Brp-strip และส่วนประกอบของชุดทดสอบ การเพิ่มประสิทธิภาพของการขนานของกระบวนการสร้างแพคเกจได้ดำเนินการแล้ว
นอกจากนี้ยังเพิ่มตัวเลือก "–salvagedb" ลงในยูทิลิตี้ rpmdb เพื่อกู้คืนฐานข้อมูลที่เสียหาย (ใช้ได้กับแบ็กเอนด์ NDB เท่านั้น)
ห้ามมิให้ใช้คำที่ไม่คั่นด้วยเครื่องหมายคำพูดในนิพจน์เช่น เช่นแทนที่จะเป็น 'a == b' ตอนนี้คุณต้องเขียนว่า '» a » == » b »'
โปรแกรมแยกวิเคราะห์นิพจน์ใช้ไวยากรณ์ "% […]" เพื่อดำเนินการกับนิพจน์ที่มีการขยายมาโคร (แตกต่างจาก "% {expr: ... }" ในมาโครนั้นจะถูกเรียกใช้ก่อน)
ได้รับการเพิ่ม รองรับการขยายตัวสั้น ๆ ของตัวดำเนินการเชิงตรรกะและอายุ ในนิพจน์ ("% [0 && 1/0]" จะถือว่าเป็น 0 และไม่ส่งผลให้เกิดข้อผิดพลาดเนื่องจากความพยายามที่จะหารด้วยศูนย์)
เพิ่มแล้ว รองรับการใช้ตัวดำเนินการ NOT เชิงตรรกะในบริบทโดยพลการ (! "%? ฟู").
ลักษณะการทำงานของตัวดำเนินการ "||" และ "&&" อยู่ในแนว Perl / Python / Ruby กล่าวคือแทนที่จะส่งคืนค่าบูลีนตอนนี้จะส่งคืนค่าที่คำนวณล่าสุด (ตัวอย่างเช่น "% [2 || 3]" จะส่งกลับ 2)
ของ การเปลี่ยนแปลงอื่น ๆ ที่โดดเด่น ของ RPM 4.16 เวอร์ชันใหม่นี้:
- เพิ่มความสามารถในการตรวจสอบรูปแบบทางเลือกสำหรับลายเซ็นดิจิทัลและแฮช
- เพิ่มการสนับสนุนสำหรับ meta-dependencies (ต้องใช้ (meta): somepkg) ซึ่งไม่มีผลต่อลำดับการติดตั้งและการลบ
- เพิ่มตัวเลือก "–rpmv3" ใน rpmsign เพื่อบังคับใช้ลายเซ็นดิจิทัล RPM3
- เพิ่มตัวเลือกการติดตั้ง "–excludeartifacts" เพื่อข้ามการติดตั้งเอกสารประกอบไฟล์การกำหนดค่าตัวอย่างและข้อมูลอื่น ๆ ที่เกี่ยวข้อง
- การสนับสนุนที่ล้าสมัยสำหรับแบ็กเอนด์การเข้ารหัส RPMv3 และ beecrypt และ NSS
- เพิ่มการรองรับ DSA2 (gcrypt) และ EdDSA
- ฐานข้อมูลแบ็กเอนด์ทดลองที่ใช้ LMDB ถูกลบออก
- ฐานข้อมูลแบ็กเอนด์ที่เสถียรประกาศโดยใช้ที่เก็บข้อมูล NDB
- มีการใช้การสนับสนุนสำหรับการจำแนกไฟล์ตามประเภทเนื้อหา MIME
- เพิ่มความสามารถในการสร้างการอ้างอิงโดยใช้แมโครพาราเมตริก
ในที่สุด หากคุณต้องการทราบข้อมูลเพิ่มเติม คุณสามารถตรวจสอบบันทึกการเปลี่ยนแปลงทั้งหมดได้ ในลิงค์ต่อไปนี้.
สำหรับการใช้งานเวอร์ชันใหม่คุณต้องรอให้วางไว้ในช่องทางการจัดจำหน่ายของคุณหรือหากคุณเป็นผู้ที่ชื่นชอบคุณสามารถรวบรวมแพ็คเกจได้ ลิงค์ของ ดาวน์โหลดคือสิ่งนี้