Apa itu .deb dan .rpm dan apa bedanya dengan .msi? [Tutup]

30

Apa format file ini dan bagaimana mereka berbeda dari .msiformat di Windows? Juga apa pro dan kontra dari skema manajemen paket ini?

lubang kematian
sumber
.deb dan .rpm lebih mirip dengan .msi daripada .exe.
Ignacio Vazquez-Abrams
Catatan: menanyakan "apa pro dan kontra dari rpm vs deb / dpkg" di tempat lain di internet disertai dengan kemungkinan menghasut perang api.
strugee

Jawaban:

40

File seperti .debdan .rpmlebih mirip dengan .zipfile. Mereka adalah pohon direktori file dan sub-direktori yang berisi file yang terkait dengan aplikasi tertentu dan / atau pustaka file.

Distro

The .debfile yang dimaksudkan untuk distribusi Linux yang berasal dari Debian (Ubuntu, Linux Mint, dll). The .rpmfile yang digunakan terutama oleh distribusi yang berasal dari distro Redhat berbasis (Fedora, CentOS, RHEL) serta oleh distro openSUSE.

Apa yang spesial dari mereka?

File-file ini memiliki satu sifat khusus lain yang membedakan mereka dari .zipfile, di mana mereka dapat menyertakan spesifikasi yang berisi aturan yang memberitahu perangkat lunak manajer paket yang berjalan pada sistem yang menginstal salah satu file ini untuk melakukan tugas tambahan. Tugas-tugas ini akan mencakup hal-hal seperti:

  • membuat akun pengguna di sistem
  • membuat / memodifikasi file konfigurasi yang sebenarnya tidak ada di file .debatau.rpm
  • atur kepemilikan / izin pada file setelah instalasi
  • jalankan perintah sebagai root pada sistem yang menginstal paket
  • dependensi, kedua format dapat menyertakan nama atau paket dan / atau nama layanan yang harus ada pada suatu sistem, sebelum instalasi.

Bagaimana dengan file .msi?

.msifile mirip dengan .deb& .rpmfile tetapi kemungkinan bahkan lebih canggih. The .msifile yang digunakan oleh Windows Installer dan menawarkan fitur tambahan seperti:

  • Kerangka GUI
  • pembuatan urutan penghapusan instalan
  • Kerangka kerja dalam dirinya sendiri - untuk digunakan oleh pemasang pihak ketiga
  • Kembalikan
  • Iklan
  • Antarmuka pengguna
  • dll.

Saya sarankan untuk melihat berbagai halaman Wikipedia tentang hal-hal ini jika Anda menginginkan penjelasan yang lebih mendalam.

Referensi

slm
sumber
Karena jawabannya dimulai dengan "File seperti .deb dan .rpm lebih mirip dengan file .zip" mungkin perlu disebutkan bahwa paket deb sebenarnya adalah ararsip, dan rpms adalah (mungkin sebagian) arsip cpio. Dalam hal deb, mudah untuk memverifikasi bahwa deb dapat dibongkar ar -x. Dalam hal rpm saya tidak tahu apakah ini mungkin.
Faheem Mitha
@FaheemMitha:rpm2cpio package.rpm | cpio -idv
ninjalj
@ninjalj - terima kasih saya lupa menambahkan perintah itu. Saya telah menggunakannya untuk membongkar rpms ketika saya hanya ingin satu atau dua file dari mereka. Biasanya file .spec.
slm
@ninjalj Terima kasih, saya tidak tahu itu.
Faheem Mitha
31

Jawaban lainnya menyentuh kualitas .debdan .rpmyang mirip dengan .msi. Mereka semua berisi perangkat lunak dalam format terkompresi yang dapat melakukan beberapa hal tambahan. Hal-hal ekstra yang telah disebutkan termasuk menambahkan pengguna, tugas pra dan pasca pemasangan, mendaftarkan program dengan sistem (mis. Registri windows, xdg-dirs, OpenRC / systemd init, dll).

Yang membedakan format (dan merupakan pro besar) adalah dependensi. Baik .debdan .rpmfile dapat dan melakukan daftar nama dan versi program lain yang harus diinstal sebagai perangkat lunak prasyarat. Sendiri, ini hanya informasi, tetapi ...

Biasanya Anda tidak berinteraksi langsung .debdan .rpmmengajukan file seperti yang Anda lakukan dengan .msifile. Bahkan, seperti disinggung sebelumnya, a .debbiasanya hanya arsip (ar atau tar) dikompresi dengan xz dengan file yang terkandung dalam tata letak direktori tertentu. Sebagai gantinya Anda menggunakan alat suka dpkgdan rpmuntuk memanipulasi file-file ini.

dpkgdan rpmakan menginstal konten .debdan .rpmfile dan memverifikasi semua perangkat lunak prasyarat diinstal. Menjalankan program ini mirip dengan mengklik pada .msifile. Pengguna, bagaimanapun, biasanya tidak berinteraksi dengan dpkgatau rpmmelainkan menggunakan apt-getdan yummenginstal paket. Alat-alat ini tidak memiliki analog yang tepat di windows.

Kedua apt-getdan yumdapat mengambil file dari jarak jauh (atau lokal) repositori dan menggunakan informasi dependensi disimpan dalam .debdan .rpmfile untuk mengambil dan memasang pra-syarat tidak dipenuhi. Dengan alat-alat ini saya tidak perlu tahu atau khawatir tentang perangkat lunak lain apa yang saya butuhkan, saya hanya dapat menentukan apt-get install chromiumdan tahu bahwa apt-getakan memastikan saya memiliki gtk +, alsa, pustaka X tertentu, dll yang diinstal tanpa saya harus mencari dan menginstalnya secara manual .debdan .rpmfile.

apt-getdan yumadalah dua manajer paket besar, Anda juga akan menemukan emergedan di pacmanluar sana, yang melakukan pekerjaan yang sama meskipun dengan mekanisme dasar yang berbeda.

casey
sumber
7
+1 untuk berbicara tentang manajemen ketergantungan. Ini seharusnya tidak diabaikan.
ldrumm
1
Catatan: Saya yakin .debitu dikemas menggunakan arutilitas. tidak tahu kenapa.
strugee
1
juga, jika Anda akan dihitung emergesebagai manajer paket, mungkin Anda juga harus mempertimbangkan port BSD (meskipun saya tidak tahu banyak tentang mereka, jadi saya tidak yakin apakah mereka memiliki setara dengan manajer paket pada GNU / Linux).
strugee
3
@ Strugee benar, saya telah mengedit untuk mencerminkan itu. Secara teknis, portage adalah mesin manajemen paket di belakang emergedan sangat mirip dengan port. Itu semua berbasis sumber dan sangat dapat dikonfigurasi, tetapi jika suatu perintah akan menginstal / mencopot, menangani dependensi dan menyimpan database paket yang diinstal, saya akan menyebutnya manajer paket. Komentar yang bagus
casey
@casey: Di mana saya bisa mendapatkan informasi lebih lanjut tentang mekanisme yang mendasari dpkg dan rpm?
lubang kematian
4

Ini memiliki fungsi yang cukup sama dengan file MSI di Windows:

  • itu mendaftarkan perangkat lunak dalam registri,
  • itu mendaftar file mana yang telah diinstal dengan paket itu.

Di Linux, mereka juga mengelola dependensi antara paket-paket lain.

Format manajemen paket ini melakukan banyak hal lain, tetapi ini adalah fungsi utama.

Vinz
sumber
2

.rpmfile adalah paket RPM, yang merujuk pada jenis paket yang digunakan oleh distro Red Hat dan Red Hat (misalnya Fedora, RHEL, CentOS). .debfile adalah paket DEB, yang merupakan tipe paket yang digunakan oleh Debian dan Debian-derivatif (misalnya Debian, Ubuntu).

Saat diunduh, mereka biasanya diinstal melalui perintah rpmdan dpkgmasing-masing pada distro yang relevan. Dengan kata lain, mereka adalah file yang diinstal oleh rpmdan dpkgbukan .msiatau .exemen - setup file yang dapat dieksekusi yang menginstal sendiri.

Paket RPM dan DEB berbeda dari MSI dalam berbagai cara.

  • Seperti di atas, mereka adalah file yang memerlukan alat lain (yaitu rpmdan dpkg) untuk menginstal.
  • Ketika diinstal, mereka ditambahkan ke database, yang tidak terjadi pada file MSI. File MSI mencantumkan program dalam registri, tetapi penghapusan instalan oleh Control Panel tidak akan menghapus sepenuhnya semua file yang diinstal dari disk. Jadi, ketika paket RPM dan DEB di-uninstall, semua file dihapus dengan bersih.
  • Mereka biasanya tidak diunduh dan diinstal secara langsung, tetapi melalui manajer paket seperti yumdan aptitudemasing-masing - ada yang disebut repositori yang menawarkan paket yang dikompilasi untuk sistem yang relevan, dan manajer paket akan menginstal semua dependensi secara otomatis dari data dalam repositori.
  • Paket yang diinstal biasanya menjalankan beberapa alat konfigurasi, misalnya jika Anda menginstal GDM pada sistem yang sudah diinstal dengan LightDM, alat bertanya apakah Anda lebih suka menggunakan GDM dari LightDM.
  • Saat menginstal paket, selain dependensi beberapa paket disarankan, yang menunjukkan paket tidak diperlukan tetapi mungkin berguna bagi pengguna.
Davidson Chua
sumber
1

Keduanya .debdan .rpmmerupakan paket Perangkat Lunak untuk Distribusi GNU / Linux, yang berisi perangkat lunak (program), aplikasi, dll.) Dan informasi untuk perangkat lunak "* installer *" tentang perangkat lunak itu sendiri dan instruksi tentang cara menginstal apa dan di mana benar.

  • .debPaket Perangkat Lunak Debian , pada Distribusi Debian (berbasis). Diinstal melalui eg apt/ aptitude(baris perintah), atau secara grafis melalui eg " Synaptic " " Ubuntu Software Center ", " Gdebi ", ...
  • .rpmRed Hat Package Manager : dalam Distribusi Linux Fedora / Red Hat (berbasis). Diinstal melalui eg yum(baris perintah), atau secara grafis melalui mis. " Yumex "
  • .msiadalah → Penginstal Microsoft : Sama seperti di atas, untuk Microsoft Windows OS

Pemasang sendiri juga dapat menangani pemeliharaan, pembaruan, dan / atau penghapusan paket. Juga: di sini, " installer " berarti perangkat lunak untuk menyelesaikan tugas-tugas ini dengan benar - ini juga memberikan informasi yang disebutkan untuk pengguna itu sendiri, tentu saja, untuk menyelesaikan tugas-tugas tersebut secara manual.

erch
sumber
1
PackageKit bukan aplikasi. ini adalah pustaka abstraksi untuk berbagai manajer paket di seluruh distribusi.
strugee
@ Strugee dang, mengira ini adalah namanya. Saya benar-benar berharap yumexadalah nama yang tepat ... terima kasih atas petunjuknya
er.
Saya percaya standar pada Fedora adalah Perangkat Lunak GNOME.
strugee
@ Strugee Saya mencoba Fedora untuk sementara waktu, menggunakan LXDE dan mengingat grafis front-end untuk manajemen paket, tapi namanya ... Saya kira, apa pun yang bekerja dan sesuai dengan keinginan seseorang :)
erch
1

.deb: Paket Debian digunakan untuk distro Linux berbasis Debian seperti Ubuntu, Linux Mint dll.

.rpm: rpminstaller untuk distro Linux Red Hat seperti RHEL, Fedora dan CentOS

.msi: Penginstal biner untuk platform Windows

Jeevan Roy Dsouza
sumber
selamat datang di Stack Exchange! sebuah penjelasan mengapa Anda telah downvoted: Saya bukan salah satu dari dua orang yang downvoted, tetapi dugaan saya adalah mereka melakukan itu karena Anda menyiratkan bahwa Debian dan / atau Ubuntu bukan GNU / Linux, dan itu adalah Salah. mereka. (dan ada lebih banyak distribusi dari sekedar Debian, Ubuntu dan Fedora.) juga, Anda tidak benar-benar menjelaskan apa pun.
strugee
1
Pembaruan: diedit untuk menghapus implikasi itu
Davidson Chua
Saya kira downvotes sebenarnya hanya untuk memberikan deskripsi satu baris tentang apa arti file tersebut, bukan penjelasan sebenarnya tentang bagaimana paket-paket ini berbeda satu sama lain. Lihatlah jawaban yang dipilih di sini, itulah jenis kualitas yang mereka harapkan dari jawaban :)
Munim