.Deb và .rpm là gì và chúng khác với .msi như thế nào? [đóng cửa]


30

Các định dạng tệp này là gì và chúng khác với .msiđịnh dạng trong Windows như thế nào? Ngoài ra những ưu và nhược điểm của các chương trình quản lý gói này là gì?


.deb và .rpm tương tự như .msi hơn là .exe.
Ignacio Vazquez-Abrams

lưu ý: hỏi "những ưu và nhược điểm của vòng / phút so với deb / dpkg" ở đâu đó trên internet mang theo khả năng kích hoạt một cuộc chiến rực lửa.
strugee

Câu trả lời:


40

Các tệp như .deb.rpmgần giống với một .ziptệp. Chúng là một cây thư mục của các tệp và thư mục con chứa các tệp liên quan đến một ứng dụng cụ thể và / hoặc thư viện tệp.

Xa

Các .debtệp này dành cho các bản phân phối Linux có nguồn gốc từ Debian (Ubuntu, Linux Mint, v.v.). Các .rpmtệp được sử dụng chủ yếu bởi các bản phân phối xuất phát từ các bản phân phối dựa trên Redhat (Fedora, CentOS, RHEL) cũng như bản phân phối openSuSE.

Có gì đặc biệt về họ?

Các tệp này có một đặc điểm khác biệt khiến chúng khác biệt với .zipcác tệp, trong đó chúng có thể bao gồm một đặc tả có chứa các quy tắc cho biết phần mềm quản lý gói chạy trên hệ thống cài đặt một trong các tệp này để thực hiện các tác vụ bổ sung. Những nhiệm vụ này sẽ bao gồm những thứ như:

  • tạo tài khoản người dùng trên hệ thống
  • tạo / sửa đổi các tệp cấu hình không thực sự có trong tệp .debhoặc.rpm
  • Đặt quyền sở hữu / quyền trên các tệp sau khi cài đặt
  • chạy các lệnh như root trên hệ thống đang cài đặt gói
  • phụ thuộc, cả hai định dạng có thể bao gồm tên hoặc gói và / hoặc tên dịch vụ mà chúng yêu cầu phải có mặt trên một hệ thống, trước khi cài đặt.

Còn tập tin .msi thì sao?

.msicác tệp tương tự như .deb& .rpmtệp nhưng có thể thậm chí còn tinh vi hơn. Các .msitệp được Windows Installer sử dụng và cung cấp các tính năng bổ sung như:

  • Khung GUI
  • tạo trình tự gỡ cài đặt
  • Một khung trong chính nó - được sử dụng bởi các trình cài đặt bên thứ 3
  • Rollback
  • Quảng cáo
  • Giao diện người dùng
  • v.v.

Tôi khuyên bạn nên xem các trang Wikipedia khác nhau về các chủ đề này nếu bạn muốn giải thích sâu hơn.

Tài liệu tham khảo


Vì câu trả lời bắt đầu bằng "Các tệp như .deb và .rpm gần giống với tệp .zip" nên có thể đề cập rằng các gói gỡ lỗi thực sự là artài liệu lưu trữ và rpms là (có thể là một phần) lưu trữ cpio. Trong trường hợp các cuộc tranh luận, thật dễ dàng để xác minh rằng một cuộc tranh luận có thể được giải nén ar -x. Trong trường hợp của vòng / phút, tôi không biết nếu điều này là có thể.
Faheem Mitha

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

@ninjalj - cảm ơn tôi đã quên thêm lệnh đó. Tôi đã sử dụng nó để giải nén rpms khi tôi chỉ muốn một hoặc hai trong số chúng. Thông thường các tệp .spec.
slm

@ninjalj Cảm ơn, tôi không biết cái đó.
Faheem Mitha

31

Các câu trả lời khác liên quan đến phẩm chất .deb.rpmtương tự như .msi. Tất cả đều chứa phần mềm ở định dạng nén có thể thực hiện một số điều bổ sung. Những điều bổ sung đã được đề cập bao gồm thêm người dùng, tác vụ trước và sau khi cài đặt, đăng ký chương trình với hệ thống (ví dụ: Windows registry, xdg-dirs, OpenRC / systemd init, v.v.).

Điều khác biệt giữa các định dạng (và là một pro lớn) là sự phụ thuộc. Cả hai .deb.rpmtệp có thể và thực hiện liệt kê tên và phiên bản của các chương trình khác phải được cài đặt dưới dạng phần mềm cần thiết trước. Tự thân, đây chỉ là thông tin, nhưng ...

Bạn thường không tương tác trực tiếp .deb.rpmtập tin theo cách bạn làm với .msicác tập tin. Trong thực tế, như đã đề cập trước đó, a .debthường chỉ là một kho lưu trữ (ar hoặc tar) được nén với xz với các tệp được chứa trong một bố cục thư mục cụ thể. Thay vào đó, bạn sử dụng các công cụ như dpkgrpmđể thao tác các tệp này.

dpkgrpmsẽ cài đặt nội dung .deb.rpmtệp và xác minh tất cả phần mềm cần thiết đã được cài đặt. Chạy các chương trình này tương tự như nhấp vào một .msitập tin. Tuy nhiên, người dùng thường không tương tác với dpkghoặc rpmthay vào đó sử dụng apt-getyumcài đặt các gói. Những công cụ này không có tương tự chính xác trên windows.

Cả hai apt-getyumcó thể tìm nạp các tệp từ kho lưu trữ từ xa (hoặc cục bộ) và sử dụng thông tin phụ thuộc được lưu trữ trong .deb.rpmtệp để tìm nạp và cài đặt bất kỳ điều kiện tiên quyết nào không được đáp ứng. Với những công cụ này tôi không cần biết hoặc lo lắng về phần mềm nào khác tôi cần, tôi chỉ có thể chỉ định apt-get install chromiumvà biết rằng apt-getsẽ đảm bảo tôi đã cài đặt gtk +, alsa, thư viện X, v.v. mà không cần tôi phải tự tìm và cài đặt chúng .deb.rpmcác tập tin.

apt-getyumlà hai nhà quản lý gói lớn, bạn cũng sẽ tìm thấy emergepacmanthực hiện cùng một công việc mặc dù với các cơ chế cơ bản khác nhau.


7
+1 để nói về quản lý phụ thuộc. Điều này không nên bỏ qua.
ldrumm

1
lưu ý: Tôi tin rằng .debs được đóng gói bằng cách sử dụng artiện ích. không biết tại sao
strugee

1
Ngoài ra, nếu bạn định tính emergelà người quản lý gói, có lẽ bạn cũng nên xem xét các cổng BSD (mặc dù tôi không biết nhiều về chúng, vì vậy tôi không chắc chúng có tương đương với trình quản lý gói trên GNU / Linux).
strugee

3
@strugee đúng, tôi đã chỉnh sửa để phản ánh điều đó. Về mặt kỹ thuật, portage là công cụ quản lý gói phía sau emergevà nó rất giống với các cổng. Tất cả đều dựa trên nguồn và rất có thể định cấu hình, nhưng nếu một lệnh sẽ cài đặt / gỡ cài đặt, xử lý các phụ thuộc và giữ cơ sở dữ liệu của các gói đã cài đặt, tôi sẽ gọi nó là trình quản lý gói. Ý kiến ​​tốt.
casey

@casey: Tôi có thể lấy thêm thông tin về các cơ chế cơ bản của dpkg và vòng / phút ở đâu?
hố tử thần

4

Nó có các chức năng khá giống như một tệp MSI trong Windows:

  • Nó đăng ký phần mềm trong một sổ đăng ký,
  • nó đăng ký tập tin nào đã được cài đặt với gói đó.

Trong Linux, họ cũng quản lý các phụ thuộc giữa các gói khác.

Định dạng quản lý gói này làm nhiều việc khác, nhưng đây là chức năng chính.


2

.rpmcác tệp là các gói RPM, tham chiếu đến loại gói được sử dụng bởi các phân phối có nguồn gốc từ Red Hat và Red Hat (ví dụ: Fedora, RHEL, CentOS). .debcác tệp là các gói DEB, là loại gói được sử dụng bởi các dẫn xuất Debian và Debian (ví dụ: Debian, Ubuntu).

Khi được tải xuống, chúng thường được cài đặt thông qua các lệnh rpmdpkglệnh tương ứng trên các bản phát hành có liên quan. Nói cách khác, chúng là các tệp được cài đặt bởi rpmdpkghơn là .msihoặc .exethiết lập các tệp có thể thực thi được tự cài đặt.

Các gói RPM và DEB khác với MSI theo nhiều cách.

  • Như trên, chúng là các tệp yêu cầu các công cụ khác (tức là rpmdpkg) để cài đặt.
  • Khi được cài đặt, chúng được thêm vào cơ sở dữ liệu, đây không phải là trường hợp trong các tệp MSI. Các tệp MSI liệt kê chương trình trong sổ đăng ký, nhưng việc gỡ bỏ Bảng điều khiển không thể xóa hoàn toàn tất cả các tệp đã cài đặt khỏi đĩa. Do đó, khi các gói RPM và DEB được gỡ cài đặt, tất cả các tệp sẽ được xóa sạch.
  • Chúng thường không được tải xuống và cài đặt trực tiếp, nhưng thông qua các trình quản lý gói như yumaptitudetương ứng - có cái gọi là kho cung cấp các gói được biên dịch cho hệ thống có liên quan và trình quản lý gói sẽ tự động cài đặt tất cả các phụ thuộc từ dữ liệu trong kho.
  • Các gói đã cài đặt thường chạy một số công cụ cấu hình, ví dụ: nếu bạn cài đặt GDM trên hệ thống đã được cài đặt với LightDM, các công cụ sẽ hỏi bạn có muốn sử dụng GDM của LightDM không.
  • Khi cài đặt các gói, ngoài các gói phụ thuộc, một số gói được đề xuất, hiển thị các gói không bắt buộc nhưng có thể hữu ích cho người dùng.

1

Cả hai .deb.rpmlà các gói Phần mềm cho Phân phối GNU / Linux, chứa phần mềm (chương trình, ứng dụng, v.v.) và thông tin cho phần mềm "* trình cài đặt *" về chính phần mềm và hướng dẫn về cách cài đặt cái gì và ở đâu chính xác

  • .debGói phần mềm Debian , trên các bản phân phối Debian (dựa trên). Được cài đặt thông qua eg apt/ aptitude(Dòng lệnh) hoặc đồ họa thông qua ví dụ: " Synaptic " " Trung tâm phần mềm Ubuntu ", " Gdebi ", Khắc
  • .rpmTrình quản lý gói Red Hat : trong các bản phân phối Linux của Fedora / Red Hat (dựa trên). Được cài đặt qua eg yum(dòng lệnh) hoặc đồ họa thông qua ví dụ: " yumex "
  • .msilà → Microsoft Installer : Hoàn toàn giống như trên, đối với Microsoft Windows OS

Bản thân các trình cài đặt cũng có thể xử lý bảo trì, cập nhật và / hoặc gỡ bỏ các gói. Ngoài ra: ở đây, "trình cài đặt " có nghĩa là phần mềm để thực hiện chính xác các tác vụ này - tất nhiên nó cũng cung cấp thông tin được đề cập cho chính người dùng để thực hiện các tác vụ đó theo cách thủ công.


1
GóiKit không phải là một ứng dụng. đó là một thư viện trừu tượng cho các trình quản lý gói khác nhau trên các bản phân phối.
strugee

@strugee dang, nghĩ đây là tên. Tôi thực sự hy vọng yumexlà tên đúng cảm ơn vì gợi ý
erch 4/12/13

Tôi tin rằng mặc định trên Fedora là Phần mềm Gnome.
strugee

@strugee Tôi đã dùng thử Fedora một thời gian, đã sử dụng LXDE và nhớ một giao diện đồ họa để quản lý gói, nhưng tên là tôi đoán, bất cứ điều gì hoạt động và phù hợp nhất với mong muốn của mọi người :)
erch 4/12/13

1

.deb: Gói Debian được sử dụng cho các bản phân phối Linux dựa trên Debian như Ubuntu, Linux Mint, v.v.

.rpm: trình rpmcài đặt cho các bản phân phối Linux dựa trên Red Hat như RHEL, Fedora và CentOS

.msi: Trình cài đặt nhị phân cho nền tảng Windows


Chào mừng đến với Stack Exchange! một lời giải thích về lý do tại sao bạn bị hạ cấp: Tôi không phải là một trong hai người bị đánh giá thấp, nhưng tôi đoán là họ đã làm như vậy bởi vì bạn ngụ ý rằng Debian và / hoặc Ubuntu không phải là GNU / Linux, và đó là sai. họ đang. (và có nhiều bản phân phối hơn cả Debian, Ubuntu và Fedora.) Ngoài ra, bạn không thực sự giải thích bất cứ điều gì.
strugee

1
Cập nhật: được chỉnh sửa để xóa hàm ý đó
Davidson Chua

Tôi đoán rằng các downvote thực sự chỉ để đưa ra một mô tả một dòng về ý nghĩa của tệp, chứ không phải là lời giải thích thực tế về cách các gói này khác nhau. Hãy xem câu trả lời được chọn ở đây, đó là loại chất lượng mà họ mong đợi từ câu trả lời :)
Munim
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.