Mengapa kami menginstal perangkat lunak melalui file `.dmg`?

28

Ketika saya ingin menginstal perangkat lunak, saya biasanya mengunduh file .dmg(Disk iMaGe). Ketika saya membukanya, .dmgfile ini terlihat seperti apa yang saya sebut "disk virtual" (karena itu saya kira namanya) dan terdaftar di Finderbawah devices. Itu juga terdaftar di Disk Utilitybawah Disk Imagesdan sepertinya itu bisa dihapus atau dilepas sama seperti disk lain.

  • Apa logika perangkat lunak yang perlu diinstal dengan "disk virtual" seperti itu?
  • Mengapa itu tidak muncul sebagai file biner sederhana atau saya tidak tahu apa?
Remi.b
sumber
12
Menginstal perangkat lunak selalu dapat menyebabkan d a m a g e.
hidangan penutup
1
File biner sederhana akan menjadi installer. Dengan DMG Anda cukup menyalin aplikasi tanpa menjalankan installer.
Thorbjørn Ravn Andersen
10
Sebagian besar aplikasi Mac terlihat seperti file tunggal, tetapi pada kenyataannya adalah "kumpulan aplikasi", pada dasarnya folder dengan banyak file di dalamnya. Finder menampilkannya sebagai entitas tunggal, tetapi Anda dapat mengeklik kanannya dan memilih "Buka konten" untuk memeriksa file di dalamnya. Jadi, "biner sederhana" tidak akan berfungsi.
el.pescado
4
Sejarah: blog.barthe.ph/2011/04/05/dmg_history
Wayfaring Stranger
Paragraf terakhir harus menjadi pertanyaan yang terpisah karena menimbulkan jawaban yang terpisah
user151019

Jawaban:

34

DMG memiliki beberapa fitur utama yang membuatnya lebih unggul daripada ritsleting tua biasa

  • Mereka adalah sistem file lengkap (artinya mereka dapat menyimpan izin file, memiliki latar belakang folder khusus, dll)
  • Mereka mendukung EULA “wajib” sebelum pemasangan yang bagus untuk barang legal
  • Berikan lingkungan eksekusi yang lebih andal. Jika Anda harus melakukan hal-hal path absolut untuk instalasi (yang mana seharusnya tidak Anda lakukan) Anda dapat menyiapkan DMG, tandai sebagai read-only dan gunakan itu untuk menginstal

Sungguh fitur utama adalah mereka mendukung sistem file HFS + lengkap. Zip (umumnya, versi Linux terkadang mendukung izin) bodoh dan hanya mendukung bundling file dan folder dan tidak ada yang lain. Tidak ada metadata, hanya file.

Sirene
sumber
14
Poin tambahan: mulai dari 10.12, file .dmg dapat ditandatangani kode untuk integritas (file .zip dapat berisi kode yang ditandatangani, tetapi tidak dapat ditandatangani dengan cara yang dapat bertahan saat mengunduh). Juga, opsi "biner sederhana" tidak berfungsi sama sekali, karena sebagian besar perangkat lunak macOS datang sebagai paket - folder dengan struktur internal yang kompleks (tersembunyi) - daripada file biasa.
Gordon Davisson
9
"Zip itu bodoh dan hanya mendukung ..." - Saya tidak setuju dengan penilaian itu. Hanya karena sesuatu itu sederhana tidak berarti itu bodoh. Kesederhanaan adalah suatu kebajikan, dan jarang ada (sering tidak terlihat) file metadata dari nilai apa pun di installer terdistribusi.
Dai
14
@Ai dia berarti bodoh seperti dalam bisu; program tidak tahu apa yang dilakukannya - bukan berarti tidak berguna.
Tim
3
Saya kira ZIP tidak terlalu banyak perbandingan yang baik. Kenapa tidak misalnya TAR terkompresi suka tar.gz? Itu memang menyimpan izin.
Ruslan
2
@Dai, "jarang ada (sering tidak terlihat) file metadata dari nilai apa pun di installer terdistribusi" - benar pada banyak platform lain, tetapi Apple memiliki sejarah panjang menyimpan konten penting (mis. Ikon!) Di "fork fork resource" ( hari ini, xattrs).
Charles Duffy
3

Perangkat lunak Mac dapat dikirim sebagai .appbundel aplikasi (pada dasarnya folder yang berisi semua sumber daya program) atau sebagai .pkgpenginstal yang merupakan program yang menginstal aplikasi dengan cara yang mirip dengan Windows.

Hanya alat baris perintah yang tersedia sebagai binari biasa yang kemudian akan disalin ke suatu tempat di pengguna PATHseperti /usr/local/bin.

Ini dapat dikemas dalam image disk OS X / macOS ( .dmg) atau format arsip tradisional seperti .zipatau .tar.


Apa logika perangkat lunak yang perlu diinstal dengan "disk virtual" seperti itu?

Ini sebagian besar tergantung pada pengembang. A .dmghanyalah hard drive virtual, bukan installer. Pilihan untuk menggunakan .dmgadalah tentang pengemasan daripada instalasi.

Jika suatu aplikasi adalah .appbundel sederhana, ia serba lengkap dan dapat dijalankan dengan mengklik dua kali. Biasanya disalin /Applicationsuntuk kenyamanan.

Selain enkripsi dan EULA pada pembukaan, manfaat .dmglebih dari jenis arsip adalah branding. .dmgs dapat diberikan ikon kustom, gambar latar belakang kustom dan tata letak konten dapat diperbaiki. .dmgs biasanya juga hanya dibaca sehingga isinya akan tetap persis seperti yang diinginkan pengembang.

Mereka juga memaksa pengguna untuk memilih di mana mereka ingin aplikasi; ketika Anda membuka zip arsip, konten biasanya akan diekstraksi ke mana pun arsip itu berada. Sebaliknya, .dmgs akan dipasang di sistem file dan kemudian .appbundel harus disalin secara eksplisit.


Mengapa itu tidak muncul sebagai file biner sederhana atau saya tidak tahu apa?

Aplikasi Mac lebih dari sekadar biner. Selain biner (terletak di <appname>.app/Contents/MacOS/), .apptermasuk sejumlah sumber daya di <appname>.app/Contents/Resources/. Sumber daya ini mencakup ikon, grafik, dan file pelokalan seperti en.lproj.

Wes Toleman
sumber
2

Apakah ada penggunaan lain untuk file .dmg selain instalasi perangkat lunak?

Fitur lain yang bermanfaat tentang DMG (karena Anda bertanya tentang kegunaan lain) adalah kemampuan untuk membuat ruang penyimpanan terenkripsi dan menyimpan file di ruang terlindung itu. Berguna jika Anda ingin melindungi beberapa file, tetapi tidak mengenkripsi seluruh hard disk utama Anda.

Lihat Disk Utility untuk macOS Sierra: Buat image disk menggunakan Disk Utility untuk info lebih lanjut tentang membuat file .dmg terenkripsi.

Ken
sumber
Namun enkripsi sudah bisa dilakukan tanpa perlu .dmg. Bukankah Unix mengenkripsi?
Pacerier
@ Pacerier - oh pasti - seperti semuanya dengan Linux / Unix, ada lebih dari satu cara untuk melakukan sesuatu.
Ken