กลับไปหน้าบทความ

อ่าน 8 นาที

ตัวจัดการแพ็กเกจ RPM

RPM (เดิมชื่อRed Hat Package Managerปัจจุบันเป็นตัวย่อแบบเรียกซ้ำสำหรับRPM Package Manager ) เป็นระบบจัดการแพ็กเกจแบบโอเพนซอร์สและฟรี ชื่อ RPM...

ตัวจัดการแพ็กเกจ RPM

ตัวจัดการแพ็กเกจ RPM (RPM)
ผู้เขียนต้นฉบับErik Troan, Marc Ewing , [ 1 ] Red Hat
นักพัฒนาชุมชนและเรดแฮท[ 2 ] [ 3 ]
ปล่อย1997 [ 1 ] ( 1997 )
เวอร์ชันเสถียร
6.0.1 [ 4 ] แก้ไขข้อมูลนี้บนวิกิดาต้า / 10 ธันวาคม 2025 ( 10 ธันวาคม 2025 )
เขียนเป็นC , C++ , Perl [ 5 ]
ระบบปฏิบัติการลินุกซ์ , คล้ายยูนิกส์
มีจำหน่ายใน41 ภาษา[ 6 ]
พิมพ์ระบบจัดการพัสดุ
ใบอนุญาตจีพีแอล
เว็บไซต์rpm.orgแก้ไขข้อมูลนี้ได้ที่วิกิดาต้า
ที่เก็บข้อมูล
  • github.com/rpm-software-management/rpm

RPM (เดิมชื่อRed Hat Package Managerปัจจุบันเป็นตัวย่อแบบเรียกซ้ำสำหรับRPM Package Manager ) เป็นระบบจัดการแพ็กเกจแบบโอเพนซอร์สและฟรี [ 7 ] ชื่อ RPM หมายถึงรูปแบบไฟล์และโปรแกรมจัดการแพ็กเกจเอง RPM มีจุดประสงค์หลักสำหรับระบบปฏิบัติการ Linuxรูปแบบไฟล์เป็นรูปแบบแพ็กเกจพื้นฐานของLinux Standard Base .rpm

แม้ว่าจะถูกสร้างขึ้นเพื่อใช้ในRed Hat Linuxแต่ปัจจุบัน RPM ถูกนำไปใช้ในระบบปฏิบัติการ Linux หลายตัว เช่นPCLinuxOS , Fedora Linux , AlmaLinux , CentOS , openSUSE , OpenMandrivaและOracle Linuxนอกจากนี้ยังมีการพอร์ตไปยังระบบปฏิบัติการ อื่นๆ เช่นNovell NetWare (ตั้งแต่เวอร์ชัน 6.5 SP3), IBM AIX (ตั้งแต่เวอร์ชัน 4), [ 8 ] IBM i , [ 9 ]และArcaOS [ 10 ] แพ็คเกจ RPM สามารถประกอบด้วยไฟล์ชุดใดก็ได้ ไฟล์ RPM ส่วนใหญ่เป็น "binary RPMs" (หรือ BRPMs) ที่มีเวอร์ชันที่คอมไพล์แล้วของซอฟต์แวร์บางตัว นอกจากนี้ยังมี "source RPMs" (หรือ SRPMs) ที่มีซอร์สโค้ดที่ใช้ในการสร้างแพ็คเกจไบนารี ไฟล์เหล่านี้มีแท็กที่เหมาะสมในส่วนหัวของไฟล์ที่แยกความแตกต่างจาก (B)RPMs ปกติ ทำให้ไฟล์เหล่านี้ถูกแยกไปยัง /usr/src เมื่อติดตั้ง ไฟล์ SRPM โดยทั่วไปจะมีนามสกุลไฟล์ ".src.rpm" (หรือ .spm ในระบบไฟล์ที่มีข้อจำกัดเรื่องจำนวนอักขระนามสกุลเพียง 3 ตัว เช่น DOS FAT รุ่นเก่า )

ประวัติศาสตร์

RPM เดิมทีเขียนขึ้นในปี 1997 โดย Erik Troan และMarc Ewing [ 1 ]โดยอิงจากpms, rpp, และpmประสบการณ์

pmเขียนโดย Rik Faith และ Doug Hoffman ในเดือนพฤษภาคม 1995 สำหรับ Red Hat Software การออกแบบและการใช้งานได้รับอิทธิพลอย่างมากจากpmsระบบการจัดการแพ็กเกจโดย Faith และ Kevin Martin ในช่วงฤดูใบไม้ร่วงปี 1993 สำหรับ Bogus Linux Distribution pmรักษาแนวคิด " ซอร์สโค้ดบริสุทธิ์ + แพตช์" ของ ไว้pmsในขณะเดียวกันก็เพิ่มคุณสมบัติและกำจัดข้อจำกัดโดยพลการที่มีอยู่ในการใช้งานpmให้การสนับสนุนฐานข้อมูลที่ได้รับการปรับปรุงอย่างมากสำหรับการติดตามและตรวจสอบแพ็กเกจที่ติดตั้ง[ 5 ] [ 11 ] [ 12 ]

คุณสมบัติ

สำหรับผู้ดูแลระบบที่ทำการติดตั้งและบำรุงรักษาซอฟต์แวร์ การใช้การจัดการแพ็กเกจแทนการสร้างด้วยตนเองมีข้อดี เช่น ความเรียบง่าย ความสม่ำเสมอ และความสามารถในการทำให้กระบวนการเหล่านี้เป็นไปโดยอัตโนมัติและไม่ต้องมีการโต้ตอบ rpm ใช้Berkeley DBเป็นฐานข้อมูลแบ็กเอนด์ แม้ว่าตั้งแต่เวอร์ชัน 4.15 ในปี 2019 จะรองรับการสร้างแพ็กเกจ rpm โดยไม่ต้องใช้ Berkeley DB ก็ตาม ( –disable-bdb) [ 13 ]

คุณสมบัติของ RPM ได้แก่:

  • แพ็กเกจ RPM สามารถตรวจสอบความถูกต้องทางเข้ารหัสลับได้ด้วยGPGและMD5
  • ไฟล์ต้นฉบับ (เช่น.tar.gz, .tar.bz2) จะถูกรวมอยู่ใน SRPM ทำให้การตรวจสอบง่ายขึ้น
  • การอัปเดตแบบเดลต้า : PatchRPM และ DeltaRPM ซึ่งเป็นไฟล์เทียบเท่ากับ ไฟล์ แพทช์ใน RPM สามารถอัปเดตซอฟต์แวร์ที่ติดตั้งผ่าน RPM ได้ทีละน้อย
  • การประเมินการพึ่งพาอัตโนมัติในระหว่างการสร้างโปรแกรม

การดำเนินงานในท้องถิ่น

แพ็กเกจอาจมาจากภายในดิสทริบิวชันเฉพาะ (เช่นRed Hat Enterprise Linux ) หรือสร้างขึ้นสำหรับดิสทริบิวชันนั้นโดยฝ่ายอื่น (เช่นRPM Fusionสำหรับ Fedora Linux) [ 14 ]การพึ่งพาแบบวนซ้ำระหว่าง RPM ที่พึ่งพาซึ่งกันและกัน (ที่เรียกว่า " dependency hell ") อาจเป็นปัญหาได้[ 15 ]ในกรณีเช่นนี้ คำสั่งการติดตั้งเพียงคำสั่งเดียวจะต้องระบุแพ็กเกจที่เกี่ยวข้องทั้งหมด

ที่เก็บข้อมูล

โดยทั่วไปแล้ว ไฟล์ RPM จะถูกรวบรวมไว้ที่ส่วนกลางในแหล่งเก็บข้อมูล หนึ่งแห่งหรือมากกว่า บนอินเทอร์เน็ต เว็บไซต์ต่างๆ มักจะมีแหล่งเก็บข้อมูล RPM ของตนเอง ซึ่งอาจทำหน้าที่เป็นสำเนาของแหล่งเก็บข้อมูลบนอินเทอร์เน็ตเหล่านั้น หรือเป็นแหล่งรวบรวมไฟล์ RPM ที่มีประโยชน์ซึ่งได้รับการดูแลรักษาในพื้นที่นั้นๆ

ด้านหน้า

ส่วนหน้าหลาย ตัว ของ RPM ช่วยให้กระบวนการดาวน์โหลดและติดตั้ง RPM จากที่เก็บซอฟต์แวร์ง่ายขึ้น และช่วยในการแก้ไขปัญหาการพึ่งพาของแพ็กเกจต่างๆ ซึ่งได้แก่:

ฐานข้อมูลการติดตั้ง RPM ในเครื่อง

เบื้องหลังการทำงานของตัวจัดการแพ็กเกจคือฐานข้อมูล RPM ซึ่งจัดเก็บอยู่ใน โดย /var/lib/rpmใช้Berkeley DBเป็นแบ็กเอนด์ ประกอบด้วยฐานข้อมูลเดียว ( Packages) ที่มีข้อมูลเมตาทั้งหมดของ RPM ที่ติดตั้ง มีการสร้างฐานข้อมูลหลายฐานเพื่อวัตถุประสงค์ในการจัดทำดัชนีและจำลองข้อมูลเพื่อเพิ่มความเร็วในการสืบค้น ฐานข้อมูลนี้ใช้เพื่อติดตามไฟล์ทั้งหมดที่เปลี่ยนแปลงและสร้างขึ้นเมื่อผู้ใช้ (โดยใช้ RPM) ติดตั้งแพ็กเกจ ทำให้ผู้ใช้ (ผ่าน RPM) สามารถย้อนกลับการเปลี่ยนแปลงและลบแพ็กเกจในภายหลังได้ หากฐานข้อมูลเสียหาย (ซึ่งเป็นไปได้หากไคลเอนต์ RPM ถูกปิด ) ฐานข้อมูลดัชนีสามารถสร้างใหม่ได้ด้วยrpm --rebuilddbคำสั่ง[ 18 ]

คำอธิบาย

แม้ว่ารูปแบบไฟล์ RPM จะเหมือนกันในระบบปฏิบัติการ Linux ต่าง ๆ แต่ข้อกำหนดและแนวทางปฏิบัติโดยละเอียดอาจแตกต่างกันไปในแต่ละระบบ

ชื่อไฟล์และป้ายกำกับของแพ็กเกจ

ไฟล์ RPM จะถูกส่งมาในรูปแบบไฟล์เดียว โดยปกติจะมีชื่อไฟล์อยู่ในรูปแบบ:

<name>-<version>-<release>.src.rpmสำหรับแพ็กเกจซอร์สโค้ด หรือ
<name>-<version>-<release>.<architecture>.rpmสำหรับไฟล์ไบนารี

ตัวอย่างเช่น ในชื่อไฟล์แพ็กเกจlibgnomeuimm-2.0-2.0.0_3.i386.rpmนั้น<name>คือlibgnomeuimmคือ<version>คือ2.0คือและคือแพ็กเกจซอร์สโค้ดที่เกี่ยวข้องจะมีชื่อว่า<release>2.0.0_3<architecture>i386libgnomeuimm-2.0-2.0.0_3.src.rpm

ไฟล์ RPM ที่มีnoarch.rpmนามสกุลดังกล่าวไม่ขึ้นอยู่กับสถาปัตยกรรม CPU เฉพาะเจาะจง ตัวอย่างเช่น ไฟล์ RPM เหล่านี้อาจมีกราฟิกและข้อความสำหรับโปรแกรมอื่นนำไปใช้ นอกจากนี้ยังอาจมีสคริปต์เชลล์หรือโปรแกรมที่เขียนด้วยภาษาโปรแกรมแบบตีความอื่นๆ เช่นPythonก็ได้

ภายในกล่อง RPM ยังมีฉลากบรรจุภัณฑ์ซึ่งมีข้อมูลดังต่อไปนี้:

  • ชื่อซอฟต์แวร์
  • เวอร์ชันซอฟต์แวร์ (เวอร์ชันที่นำมาจาก แหล่ง ต้นทางของซอฟต์แวร์)
  • หมายเลขรุ่นของแพ็กเกจ (จำนวนครั้งที่แพ็กเกจได้รับการสร้างใหม่โดยใช้ซอฟต์แวร์เวอร์ชันเดียวกัน) ฟิลด์นี้มักใช้เพื่อระบุการแจกจ่ายเฉพาะที่แพ็กเกจนั้นมีไว้สำหรับ โดยการต่อท้ายด้วยสตริง เช่น "mdv" (เดิมคือ "mdk") ( Mandriva Linux ), "mga" ( Mageia ), "fc4" ( Fedora Core 4), "rh9" ( Red Hat Linux 9), "suse100" ( SUSE Linux 10.0) เป็นต้น
  • สถาปัตยกรรมที่ใช้ในการสร้างแพ็กเกจ (i386, i686, x86_64, ppc เป็นต้น)

ช่องข้อมูลป้ายกำกับแพ็กเกจไม่จำเป็นต้องตรงกับชื่อไฟล์

บรรจุภัณฑ์ห้องสมุด

ไลบรารีจะถูกจัดจำหน่ายในสองแพ็กเกจแยกกันสำหรับแต่ละเวอร์ชัน แพ็กเกจหนึ่งประกอบด้วยโค้ดที่คอมไพล์แล้วสำหรับใช้งานในขณะรันไทม์ ในขณะที่แพ็กเกจที่สองประกอบด้วยไฟล์สำหรับการพัฒนาที่เกี่ยวข้อง เช่น ไฟล์เฮดเดอร์ เป็นต้น แพ็กเกจเหล่านั้นจะมีคำว่า "-devel" ต่อท้ายชื่อ ผู้ดูแลระบบควรตรวจสอบให้แน่ใจว่าเวอร์ชันของไบนารีและแพ็กเกจสำหรับการพัฒนานั้นตรงกัน

รูปแบบไบนารี

รูปแบบเป็นไบนารีและประกอบด้วยสี่ส่วน: [ 7 ]

  • ส่วนนำที่ระบุว่าไฟล์นั้นเป็นไฟล์ RPM และมีส่วนหัวที่ล้าสมัยอยู่บางส่วน
  • ลายเซ็น ซึ่งสามารถใช้เพื่อรับรองความถูกต้องและ/หรือความน่าเชื่อถือได้
  • ส่วนหัวซึ่งประกอบด้วยข้อมูลเมตาเช่น ชื่อแพ็กเกจ เวอร์ชัน สถาปัตยกรรม รายชื่อไฟล์ เป็นต้น
  • ไฟล์เก็บถาวร ( เพย์โหลด ) ซึ่งโดยปกติอยู่ใน รูปแบบ cpioและบีบอัดด้วยgzip เครื่องมือ นี้rpm2cpioช่วยให้สามารถเรียกไฟล์ cpio ได้โดยไม่ต้องติดตั้งแพ็คเกจ RPM [ 19 ]
    • Linux Standard Base กำหนดให้ใช้ gzip แต่แพ็กเกจ Fedora 30 จะ ถูกบีบอัดด้วย xzและแพ็กเกจ Fedora 31 อาจถูกบีบอัดด้วยzstd [ 20 ] RPM เวอร์ชันล่าสุดยังสามารถใช้การบีบอัดbzip2 , lzip [ 21 ]หรือlzma ได้ อีกด้วย
    • รูปแบบ RPM 5.0 รองรับการใช้ไฟล์ xarสำหรับการจัดเก็บถาวร

ไฟล์ SPEC

ไฟล์สเปคคือ "สูตร" สำหรับการสร้างแพ็กเกจ RPM ไฟล์สเปคจะลงท้ายด้วย ".spec" และประกอบด้วยชื่อแพ็กเกจ เวอร์ชัน หมายเลขการแก้ไข RPM ขั้นตอนการสร้าง ติดตั้ง และล้างแพ็กเกจ รวมถึงบันทึกการเปลี่ยนแปลง สามารถสร้างแพ็กเกจหลายรายการจากไฟล์สเปค RPM ไฟล์เดียวได้ หากต้องการ แพ็กเกจ RPM ถูกสร้างขึ้นจากไฟล์สเปค RPM โดยใช้เครื่องมือ rpmbuild

โดยปกติไฟล์ข้อมูลจำเพาะจะถูกแจกจ่ายภายในไฟล์ SRPM ซึ่งประกอบด้วยไฟล์ข้อมูลจำเพาะที่บรรจุรวมกับซอร์สโค้ด

เอสอาร์เอ็มพี

โดยทั่วไปแล้ว RPM คือซอฟต์แวร์ที่คอมไพล์ไว้ล่วงหน้าพร้อมสำหรับการติดตั้งโดยตรง นอกจากนี้ยังสามารถแจกจ่ายซอร์สโค้ดได้ด้วย โดยจะทำในรูปแบบ SRPM ซึ่งรวมถึงไฟล์ "SPEC" ที่อธิบายถึงซอฟต์แวร์และวิธีการสร้าง SRPM ยังอนุญาตให้ผู้ใช้สามารถคอมไพล์และอาจแก้ไขโค้ดได้ด้วย

แพ็กเกจซอฟต์แวร์อาจประกอบด้วยสคริปต์ที่ไม่ขึ้นกับแพลตฟอร์มเท่านั้น ในกรณีเช่นนี้ นักพัฒนาสามารถจัดเตรียมเพียงไฟล์ SRPM ซึ่งก็ยังคงเป็นไฟล์ RPM ที่สามารถติดตั้งได้

โนสอาร์ซี

นี่คือ SRPM เวอร์ชันพิเศษ ประกอบด้วยไฟล์ "SPEC" และอาจมีแพทช์ แต่ไม่รวมซอร์สโค้ด (โดยปกติเนื่องจากลิขสิทธิ์) [ 22 ]

ส้อม

ณ เดือนมิถุนายน 2010 มี RPM สองเวอร์ชันที่อยู่ระหว่างการพัฒนา เวอร์ชันหนึ่งนำโดยโครงการ Fedora และ Red Hat และอีกเวอร์ชันหนึ่งโดยกลุ่มแยกต่างหากซึ่งนำโดยผู้ดูแล RPM คนก่อน ซึ่งเป็นอดีตพนักงานของ Red Hat

RPM.org

การปรับปรุงโค้ดครั้งใหญ่ครั้งแรกของชุมชน rpm.org เกิดขึ้นในเดือนกรกฎาคม 2550 เวอร์ชัน 4.8 เปิดตัวในเดือนมกราคม 2553 เวอร์ชัน 4.9 ในเดือนมีนาคม 2554 เวอร์ชัน 4.10 ในเดือนพฤษภาคม 2555 เวอร์ชัน 4.11 ในเดือนมกราคม 2556 เวอร์ชัน 4.12 ในเดือนกันยายน 2557 และเวอร์ชัน 4.13 ในเดือนกรกฎาคม 2558

เวอร์ชันนี้ใช้โดยการแจกจ่ายเช่นFedora Linux , Red Hat Enterprise Linuxและอนุพันธ์ , openSUSE , SUSE Linux Enterprise , Unity Linux , Mageia , [ 23 ] OpenEmbedded , TizenและOpenMandriva Lx (เดิมชื่อMandriva )

RPM v5 (เลิกใช้งานแล้ว)

เจฟฟ์ จอห์นสัน ผู้ดูแล RPM มาตั้งแต่ปี 1999 ได้สานต่อความพยายามในการพัฒนา ร่วมกับผู้เข้าร่วมจากดิสทริบิวชันอื่นๆ อีกหลายแห่ง โดย RPM เวอร์ชัน 5 ได้เปิดตัวในเดือนพฤษภาคม 2007

เวอร์ชันนี้ถูกใช้โดยระบบปฏิบัติการต่างๆ เช่นWind River Linux (จนถึง Wind River Linux 10), Rosa Linux และOpenMandriva Lx (เดิมคือMandriva Linuxซึ่งเปลี่ยนไปใช้ rpm5 ในปี 2011 [ 24 ] ) และยังถูกใช้โดย โครงการ OpenPKGซึ่งจัดเตรียมแพ็กเกจสำหรับแพลตฟอร์ม UNIX ทั่วไปอื่นๆ ด้วย

OpenMandriva Lxได้เปลี่ยนกลับไปใช้ rpm.org [ 25 ]สำหรับเวอร์ชัน 4.0

OpenEmbeddedซึ่งเป็นผู้ใช้รายใหญ่รายสุดท้ายของ RPM5 ได้เปลี่ยนกลับไปใช้ rpm.org เนื่องจากปัญหาใน RPM5 [ 26 ] [ 27 ]

ดูเพิ่มเติม

  • เว็บไซต์อย่างเป็นทางการแก้ไขข้อมูลนี้ได้ที่วิกิดาต้า
  • "เอกสารอ้างอิงคำสั่ง RPM และ DPKG" packman.linux.is เก็บถาวรจากต้นฉบับเมื่อวันที่ 28 ตุลาคม 2016 เรียกดูเมื่อวันที่ 23 กันยายน 2025
  • Frye, Matt (8 กุมภาพันธ์ 2007). "เรื่องราวของ RPM" . Red Hat Magazine . สืบค้นเมื่อ23 กันยายน 2025 .{{cite web}}: CS1 maint: บริการเก็บถาวรที่เลิกใช้แล้ว ( ลิงก์ )
  • "คู่มือการสร้างแพ็กเกจ" . docs.fedoraproject.org . สืบค้นเมื่อ23 กันยายน 2025 .- วิธีการสร้างแพ็คเกจ RPM
  • msamir. "RPM" . MSamir . เก็บถาวรจากต้นฉบับเมื่อวันที่ 9 พฤศจิกายน 2009 . เรียกดูเมื่อวันที่ 23 กันยายน 2025 .- วิดีโอสอนวิธีการสร้างและแก้ไขไฟล์ RPM
  • "บันทึก RPM - การสร้าง RPM อย่างง่าย" . grahams.free-online.co.uk . สืบค้นเมื่อ23 กันยายน 2025 .{{cite web}}: CS1 maint: บริการเก็บถาวรที่เลิกใช้แล้ว ( ลิงก์ )
  • ปัวริเยร์, แดน (พฤศจิกายน 2001). "การบรรจุซอฟต์แวร์ด้วย RPM ตอนที่ 1" . www-106.ibm.com . เก็บถาวรจากต้นฉบับเมื่อวันที่ 7 กุมภาพันธ์ 2002 . สืบค้นเมื่อ23 กันยายน 2025 .
  • ชีลด์ส, เอียน (11 พฤษภาคม 2010). "เรียนรู้ลินุกซ์เบื้องต้น: การจัดการแพ็กเกจ RPM และ YUM" . ibm.com . เก็บถาวรจากต้นฉบับเมื่อ 16 พฤษภาคม 2010 . สืบค้นเมื่อ23 กันยายน 2025 .
ดึงข้อมูลมาจาก " https://en.wikipedia.org/w/index.php?title=RPM_Package_Manager&oldid=1338106651 "

สรุปเนื้อหา

ข้อมูลสำคัญจากบทความ

ข้อมูลสำคัญเกี่ยวกับ ตัวจัดการแพ็กเกจ RPM

RPM (เดิมชื่อRed Hat Package Managerปัจจุบันเป็นตัวย่อแบบเรียกซ้ำสำหรับRPM Package Manager ) เป็นระบบจัดการแพ็กเกจแบบโอเพนซอร์สและฟรี ชื่อ RPM...

ประวัติศาสตร์

RPM เดิมทีเขียนขึ้นในปี 1997 โดย Erik Troan และMarc Ewing [ 1 ] โดยอิงจาก pms , rpp , และ pm ประสบการณ์

คุณสมบัติ

สำหรับ ผู้ดูแลระบบที่ทำการ ติดตั้งและบำรุงรักษาซอฟต์แวร์ การใช้การจัดการแพ็กเกจแทนการสร้างด้วยตนเองมีข้อดี เช่น ความเรียบง่าย ความสม่ำเสมอ และความสามารถในการทำให้กระบวนการเหล่านี้เป็นไปโดยอัตโนมัติและไม่ต้องมีการโต้ตอบ rpm ใช้ Berkeley DB...

การดำเนินงานในท้องถิ่น

แพ็กเกจอาจมาจากภายในดิสทริบิวชันเฉพาะ (เช่น Red Hat Enterprise Linux ) หรือสร้างขึ้นสำหรับดิสทริบิวชันนั้นโดยฝ่ายอื่น (เช่น RPM Fusion สำหรับ Fedora Linux) [ 14 ] การพึ่งพาแบบวนซ้ำระหว่าง RPM ที่พึ่งพาซึ่งกันและกัน (ที่เรียกว่า " dependency hell ")...