. deb และ. rpm คืออะไรและแตกต่างจาก. msi อย่างไร [ปิด]


30

รูปแบบไฟล์เหล่านี้คืออะไรและแตกต่างจาก.msiรูปแบบใน Windows อย่างไร ข้อดีและข้อเสียของแผนการจัดการแพ็คเกจเหล่านี้คืออะไร


.deb และ. rpm คล้ายกับ. msi มากกว่า. exe
Ignacio Vazquez-Abrams

หมายเหตุ: การถามว่า "อะไรคือข้อดีข้อเสียของ rpm กับ deb / dpkg" ที่อื่นบนอินเทอร์เน็ตมีความเป็นไปได้ที่จะเกิดสงครามเปลวไฟ
strugee

คำตอบ:


40

ไฟล์เช่น.debและ.rpmคล้ายกับ.zipไฟล์มากขึ้น พวกมันเป็นโครงสร้างไดเรกทอรีของไฟล์และไดเรกทอรีย่อยที่มีไฟล์ที่เกี่ยวข้องกับแอพพลิเคชั่นและ / หรือไลบรารีไฟล์

distros

.debไฟล์มีความหมายสำหรับการกระจายของลินุกซ์ที่ได้รับมาจาก Debian (อูบุนตูลินุกซ์มิ้นท์ ฯลฯ ) .rpmไฟล์จะถูกนำมาใช้เป็นหลักโดยการแจกแจงที่มาจาก distros ตาม Redhat (Fedora, CentOS, RHEL) เช่นเดียวกับโดย distro openSUSE

มีอะไรพิเศษเกี่ยวกับพวกเขา

ไฟล์เหล่านี้มีคุณสมบัติพิเศษอีกอย่างหนึ่งที่แยกพวกเขาออกจาก.zipไฟล์โดยที่พวกเขาสามารถรวมข้อมูลจำเพาะที่มีกฎที่บอกซอฟต์แวร์ตัวจัดการแพคเกจที่ทำงานบนระบบที่ติดตั้งหนึ่งในไฟล์เหล่านี้เพื่อทำงานเพิ่มเติม งานเหล่านี้จะรวมถึงสิ่งต่าง ๆ เช่น:

  • การสร้างบัญชีผู้ใช้ในระบบ
  • การสร้าง / แก้ไขไฟล์การกำหนดค่าที่ไม่ได้มีอยู่จริงใน.debหรือ.rpmไฟล์
  • ตั้งค่าความเป็นเจ้าของ / การอนุญาตไฟล์ต่าง ๆ หลังการติดตั้ง
  • เรียกใช้คำสั่งในฐานะรูทบนระบบที่ติดตั้งแพ็คเกจ
  • การขึ้นต่อกันทั้งสองรูปแบบสามารถรวมชื่อหรือแพ็คเกจและ / หรือชื่อบริการที่ต้องการให้แสดงบนระบบก่อนการติดตั้ง

แล้วไฟล์. msi ล่ะ

.msiไฟล์คล้ายกับ.deb& .rpmไฟล์ แต่มีความซับซ้อนยิ่งขึ้น .msiไฟล์จะถูกนำมาใช้โดยติดตั้ง Windows และนำเสนอคุณสมบัติเพิ่มเติมเช่น:

  • GUI Framework
  • การสร้างลำดับการถอนการติดตั้ง
  • เฟรมเวิร์กภายในตัวเอง - สำหรับใช้งานโดยผู้ติดตั้งบุคคลที่สาม
  • rollbacks
  • การโฆษณา
  • หน้าจอผู้ใช้
  • เป็นต้น

ฉันขอแนะนำให้ดูที่หน้า Wikipedia ต่างๆในหัวข้อเหล่านี้หากคุณต้องการคำอธิบายเชิงลึกเพิ่มเติม

อ้างอิง


เนื่องจากคำตอบเริ่มต้นด้วย "ไฟล์เช่น. deb และ. rpm นั้นคล้ายกับไฟล์. zip" มันอาจคุ้มค่าที่จะกล่าวถึงว่าแพ็คเกจ deb นั้นเป็นที่arเก็บถาวรจริงและ rpms เป็นส่วนหนึ่งของคลังเก็บ cpio ในกรณีของการเดบิตมันง่ายในการตรวจสอบว่าสามารถนำ deb มาได้ด้วยar -xหรือไม่ ในกรณีของรอบต่อนาทีฉันไม่ทราบว่าเป็นไปได้
Faheem Mitha

@FaheemMitha:rpm2cpio package.rpm | cpio -idv
ninjalj

@ninjalj - ขอบคุณฉันลืมเพิ่มคำสั่งนั้น ฉันใช้มันเพื่อคลายไฟล์ rpms เมื่อฉันต้องการไฟล์หนึ่งหรือสองไฟล์เท่านั้น โดยปกติแล้วไฟล์. spec
slm

@ninjalj ขอบคุณฉันไม่รู้เลย
Faheem Mitha

31

คำตอบอื่น ๆ ลามปามคุณภาพของ.debและที่คล้ายกับ.rpm .msiพวกเขาทั้งหมดมีซอฟต์แวร์ในรูปแบบการบีบอัดที่สามารถทำสิ่งพิเศษบางอย่าง สิ่งพิเศษที่กล่าวถึงแล้วรวมถึงการเพิ่มผู้ใช้งานก่อนและหลังการติดตั้งลงทะเบียนโปรแกรมด้วยระบบ (เช่น windows registry, xdg-dirs, OpenRC / systemd init เป็นต้น)

สิ่งที่แตกต่างรูปแบบ (และเป็นมืออาชีพมาก) คือการพึ่งพา ทั้งไฟล์.debและ.rpmสามารถทำชื่อรายการและเวอร์ชั่นของโปรแกรมอื่นที่ต้องติดตั้งเป็นซอฟต์แวร์ที่จำเป็นต้องมีก่อน ด้วยตัวเองนี่เป็นเพียงข้อมูล แต่ ...

คุณมักจะไม่เกี่ยวข้องโดยตรงกับการโต้ตอบ.debและ.rpmไฟล์ที่วิธีการที่คุณทำกับ.msiไฟล์ ในความเป็นจริงตามที่กล่าวถึงก่อนหน้านี้ a .debมักเป็นเพียงไฟล์เก็บถาวร (ar หรือ tar) ที่บีบอัดด้วย xz ด้วยไฟล์ที่มีอยู่ในรูปแบบไดเรกทอรีเฉพาะ แต่คุณใช้เครื่องมือเช่นdpkgและrpmจัดการไฟล์เหล่านี้

dpkgและrpmจะติดตั้งเนื้อหาของ.debและ.rpmไฟล์และตรวจสอบว่ามีการติดตั้งซอฟต์แวร์ที่จำเป็นก่อนหน้าทั้งหมดแล้ว การรันโปรแกรมเหล่านี้คล้ายกับการคลิกที่.msiไฟล์ อย่างไรก็ตามโดยทั่วไปผู้ใช้จะไม่โต้ตอบกับdpkgหรือrpmแต่ใช้apt-getและyumติดตั้งแพ็คเกจแทน เครื่องมือเหล่านี้ไม่มี analogs ที่แน่นอนบน windows

ทั้งสองapt-getและyumสามารถดึงไฟล์จากที่เก็บระยะไกล (หรือภายในเครื่อง) และใช้ข้อมูลการพึ่งพาที่เก็บไว้ใน.debและ.rpmไฟล์เพื่อดึงและติดตั้งสิ่งที่จำเป็นต้องมีล่วงหน้า ด้วยเครื่องมือเหล่านี้ผมไม่จำเป็นต้องรู้หรือกังวลเกี่ยวกับสิ่งที่ซอฟแวร์ที่ผมอื่น ๆ ที่จำเป็นต้องฉันเพียงแค่สามารถระบุapt-get install chromiumและรู้ว่าapt-getจะให้แน่ใจว่าฉันได้ดี +, ALSA ห้องสมุด X บาง ฯลฯ การติดตั้งโดยไม่ต้องฉันต้องด้วยตนเองค้นหาและติดตั้งเหล่านั้น.debและ.rpmไฟล์

apt-getและyumเป็นผู้จัดการแพคเกจใหญ่สองรายคุณจะพบemergeและpacmanทำเช่นนั้นซึ่งทำงานเดียวกันแม้ว่าจะมีกลไกพื้นฐานที่แตกต่างกัน


7
+1 สำหรับการพูดคุยเกี่ยวกับการจัดการการพึ่งพา สิ่งนี้ไม่ควรมองข้าม
ldrumm

1
หมายเหตุ: ฉันเชื่อว่า.debมีการบรรจุโดยใช้arโปรแกรมอรรถประโยชน์ ไม่รู้ว่าทำไม
strugee

1
ถ้าคุณจะนับemergeเป็นผู้จัดการแพ็คเกจบางทีคุณควรพิจารณาพอร์ต BSD ด้วย (แม้ว่าฉันจะไม่ค่อยรู้เรื่องพวกเขามากนักดังนั้นฉันไม่แน่ใจว่าพวกเขามีเทียบเท่ากับตัวจัดการแพ็คเกจบน GNU / ลินุกซ์)
strugee

3
@strugee จริงฉันได้แก้ไขเพื่อสะท้อนให้เห็นว่า นอกจากนี้ในทางเทคนิคแล้วพอร์เทจเป็นเอ็นจิ้นการจัดการแพ็กเกจด้านหลังemergeและคล้ายกับพอร์ตมาก เป็นแหล่งที่มาทั้งหมดและสามารถกำหนดค่าได้มาก แต่ถ้าคำสั่งจะติดตั้ง / ถอนการติดตั้งจัดการการพึ่งพาและเก็บฐานข้อมูลของแพ็คเกจที่ติดตั้งไว้ฉันจะเรียกมันว่า manager manager ความคิดเห็นที่ดี
casey

@casey: ฉันจะหาข้อมูลเพิ่มเติมเกี่ยวกับกลไกพื้นฐานของ dpkg และ rpm ได้ที่ไหน?
Deathholes

4

มันมีฟังก์ชั่นเหมือนกับไฟล์ MSI ใน Windows:

  • ลงทะเบียนซอฟต์แวร์ในรีจิสทรี
  • จะลงทะเบียนว่าไฟล์ใดได้รับการติดตั้งด้วยแพ็คเกจนั้น

ภายใต้ Linux พวกเขายังจัดการการพึ่งพาระหว่างแพ็คเกจอื่น ๆ

รูปแบบการจัดการแพ็กเกจนี้ทำสิ่งอื่น ๆ อีกมากมาย แต่นี่เป็นหน้าที่หลัก


2

.rpmไฟล์คือแพ็คเกจ RPM ซึ่งอ้างถึงประเภทแพคเกจที่ใช้โดย Red Hat และ Distros ที่ได้จาก Red Hat (เช่น Fedora, RHEL, CentOS) .debไฟล์เป็นแพ็คเกจ DEB ซึ่งเป็นประเภทแพคเกจที่ใช้โดย Debian และ Debian-Derivatives (เช่น Debian, Ubuntu)

เมื่อดาวน์โหลดพวกเขามักจะติดตั้งผ่านทางrpmและdpkgคำสั่งตามลำดับใน distros ที่เกี่ยวข้อง กล่าวอีกนัยหนึ่งก็คือไฟล์ที่ติดตั้งโดยrpmและdpkgแทนที่จะเป็น.msiหรือ.exeไฟล์ติดตั้งซึ่งเป็นไฟล์ปฏิบัติการที่ติดตั้งได้เอง

แพ็คเกจ RPM และ DEB นั้นแตกต่างจาก MSI ในหลายวิธี

  • ดังกล่าวข้างต้นเป็นไฟล์ที่ต้องใช้เครื่องมืออื่น ๆ (เช่นrpmและdpkg) เพื่อติดตั้ง
  • เมื่อติดตั้งแล้วจะมีการเพิ่มลงในฐานข้อมูลซึ่งไม่ใช่ในไฟล์ MSI MSI ไฟล์รายการโปรแกรมในรีจิสทรี แต่ถอนการติดตั้งจากแผงควบคุมเป็นไปได้ยากที่จะสมบูรณ์ลบทุกไฟล์ที่ติดตั้งจากดิสก์ ดังนั้นเมื่อถอนการติดตั้งแพ็คเกจ RPM และ DEB ไฟล์ทั้งหมดจะถูกลบอย่างหมดจด
  • โดยทั่วไปจะไม่ดาวน์โหลดและติดตั้งโดยตรง แต่ผ่านผู้จัดการแพคเกจเช่นyumและaptitudeตามลำดับ - มีที่เก็บข้อมูลที่เรียกว่าแพคเกจที่รวบรวมสำหรับระบบที่เกี่ยวข้องและผู้จัดการแพคเกจจะติดตั้งการอ้างอิงทั้งหมดโดยอัตโนมัติจากข้อมูลในที่เก็บ
  • แพคเกจที่ติดตั้งมักจะใช้เครื่องมือกำหนดค่าหลายอย่างเช่นถ้าคุณติดตั้ง GDM บนระบบที่ติดตั้งด้วย LightDM แล้วเครื่องมือจะถามว่าคุณต้องการใช้ GDM ของ LightDM หรือไม่
  • เมื่อติดตั้งแพคเกจนอกเหนือจากการอ้างอิงบางแพคเกจแนะนำซึ่งแสดงแพคเกจไม่จำเป็นแต่อาจเป็นประโยชน์กับผู้ใช้

1

ทั้งสอง.debและ.rpmเป็นแพ็คเกจซอฟต์แวร์สำหรับ GNU / Linux ดิสทริบิวชั่นที่มีซอฟต์แวร์ (โปรแกรม) แอปพลิเคชัน ฯลฯ ) และข้อมูลสำหรับซอฟต์แวร์ "* ตัวติดตั้ง *" เกี่ยวกับตัวซอฟต์แวร์เองและคำแนะนำเกี่ยวกับวิธีการติดตั้ง ได้อย่างถูกต้อง

  • .debแพคเกจซอฟต์แวร์ Debian บนการแจกแจงแบบ Debian ติดตั้งผ่านเช่นapt/ aptitude(บรรทัดคำสั่ง) หรือแบบกราฟิกผ่านเช่น " Synaptic " " Ubuntu Software Center ", " Gdebi ", ...
  • .rpmRed Hat Package Manager : ในการแจกจ่าย Linux ของ Fedora / Red Hat ติดตั้งผ่านเช่นyum(บรรทัดคำสั่ง) หรือกราฟิกผ่านเช่น " yumex "
  • .msiคือ→ตัวติดตั้ง Microsoft : ค่อนข้างเหมือนข้างต้นสำหรับ Microsoft Windows OS

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


1
PackageKit ไม่ใช่แอปพลิเคชัน มันเป็นห้องสมุดนามธรรมสำหรับผู้จัดการบรรจุภัณฑ์ที่แตกต่างกันในการกระจาย
strugee

@strugee แดงคิดว่านี่เป็นชื่อ ฉันหวังว่าyumexเป็นชื่อที่ถูกต้อง ... ขอบคุณสำหรับคำใบ้
erch

ฉันเชื่อว่าค่าเริ่มต้นของ Fedora คือซอฟต์แวร์ GNOME
strugee

@strugee ฉันลองใช้ Fedora ซักพักแล้วใช้ LXDE และจดจำส่วนหน้าแบบกราฟิกสำหรับการจัดการบรรจุภัณฑ์ แต่ชื่อคือ ... ฉันเดาว่าอะไรก็ตามที่ใช้ได้ผลและเหมาะสมกับความต้องการของคนที่ดีที่สุด :)
erch

1

.deb: แพ็คเกจ Debian ใช้สำหรับ Linux Distros ที่ใช้ Debian เช่น Ubuntu, Linux Mint เป็นต้น

.rpm: ตัวrpmติดตั้งสำหรับ distros Linux ที่ใช้ Red Hat เช่น RHEL, Fedora และ CentOS

.msi: โปรแกรมติดตั้งไบนารีสำหรับแพลตฟอร์ม Windows


ยินดีต้อนรับสู่ Stack Exchange! คำอธิบายว่าทำไมคุณถึงถูกลดระดับลง: ฉันไม่ได้เป็นหนึ่งในสองคนที่ downvoted แต่ฉันเดาว่าพวกเขาทำเช่นนั้นเพราะคุณหมายความว่า Debian และ / หรือ Ubuntu ไม่ใช่ GNU / Linux และนั่นก็คือ เท็จ พวกเขาเป็น. (และมีการกระจายมากขึ้นกว่า Debian, Ubuntu และ Fedora) นอกจากนี้คุณยังไม่ได้อธิบายอะไรเลย
strugee

1
อัปเดต: แก้ไขเพื่อลบความหมายนั้น
Davidson Chua

ฉันเดาว่า downvotes นั้นเป็นเพียงแค่ให้คำอธิบายหนึ่งบรรทัดในความหมายของไฟล์ไม่ใช่คำอธิบายที่แท้จริงว่าแพ็กเกจเหล่านี้แตกต่างจากกันอย่างไร ดูคำตอบที่เลือกไว้ที่นี่ซึ่งเป็นคุณภาพที่พวกเขาคาดหวังจากคำตอบ :)
Munim
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.