Perché installiamo il software tramite i file `.dmg`?


28

Quando voglio installare un software, in genere scarico un file .dmg(Disk iMaGe). Quando l'ho aperto, questo .dmgfile ha un aspetto come quello che chiamerei un "disco virtuale" (da cui il nome presumo) ed è elencato in Findersotto devices. È anche elencato in Disk Utilitysotto Disk Imagese sembra che possa essere cancellato o smontato proprio come qualsiasi altro disco.

  • Qual è la logica per la quale il software deve essere installato con un tale "disco virtuale"?
  • Perché non viene come un semplice file binario o non so cosa?

12
Installazione del software può causare sempre d un m un g e.
dessert,

1
Un semplice file binario sarebbe un programma di installazione. Con DMG basta copiare l'applicazione senza eseguire un programma di installazione.
Thorbjørn Ravn Andersen,

10
La maggior parte delle app per Mac sembrano file singoli, ma in realtà sono "bundle di applicazioni", fondamentalmente una cartella con molti file all'interno. Finder lo visualizza come singola entità, ma puoi fare clic con il tasto destro su di essi e selezionare "Apri contenuti" per ispezionare i file all'interno. Quindi, "binario semplice" non funzionerà.
el.pescado,


L'ultimo paragrafo dovrebbe essere una domanda separata in quanto sta dando origine a risposte separate
user151019

Risposte:


34

I DMG hanno alcune caratteristiche chiave che li rendono superiori alle semplici vecchie cerniere

  • Sono un file system completo (ciò significa che possono archiviare i permessi dei file, avere sfondi delle cartelle personalizzati, ecc.)
  • Supportano gli EULA "obbligatori" prima del montaggio, il che è utile per le questioni legali
  • Fornire un ambiente di esecuzione più affidabile. Se è necessario eseguire il percorso assoluto per l'installazione (quale non è necessario) è possibile preparare il DMG, contrassegnarlo come di sola lettura e utilizzarlo per l'installazione

La caratteristica principale è che supportano l'intero filesystem HFS +. Zip (comunemente, le versioni di Linux a volte supportano le autorizzazioni) è stupido e supporta solo il raggruppamento di file e cartelle e nient'altro. Nessun metadata, solo i file.


14
Ulteriori punti: a partire dal 10.12, i file .dmg possono essere firmati in codice per integrità (i file .zip possono contenere codice firmato, ma non possono essere firmati in modo tale da sopravvivere al download). Inoltre, l'opzione "binario semplice" non funziona affatto, poiché la maggior parte dei software macOS viene fornita come pacchetti - cartelle con struttura interna (nascosta) complessa - piuttosto che file semplici.
Gordon Davisson,

9
"Zip è stupido e supporta solo ..." - Non sono d'accordo con questa valutazione. Solo perché qualcosa è semplice non significa che sia stupido. La semplicità è una virtù, e raramente è (spesso invisibile) metadati di file di qualsiasi valore in un programma di installazione distribuito.
Dai,

14
@Dai intende stupido come in scemo; il programma non sa cosa sta facendo, non che sia inutile.
Tim

3
Suppongo che ZIP non sia un buon confronto. Perché non ad esempio TAR compresso come tar.gz? Memorizza le autorizzazioni.
Ruslan,

2
@Dai, "raramente sono metadati di file (spesso invisibili) di qualsiasi valore in un programma di installazione distribuito" - vero su molte altre piattaforme, ma Apple ha una lunga storia di archiviazione di contenuti critici (ad es. Icone!) In "fork di risorse" ( in questi giorni, xattrs).
Charles Duffy,

3

Il software Mac può essere fornito come un .apppacchetto di applicazioni (essenzialmente una cartella contenente tutte le risorse del programma) o come programma di .pkginstallazione che è un programma che installa le applicazioni in modo simile a Windows.

Solo gli strumenti da riga di comando sono disponibili come semplici binari che verrebbero quindi copiati in un punto dell'utente PATHcome /usr/local/bin.

Questi possono essere impacchettati in un'immagine del disco OS X / macOS ( .dmg) o in un formato di archivio tradizionale come .zipo .tar.


Qual è la logica per la quale il software deve essere installato con un tale "disco virtuale"?

Questo dipende in gran parte dallo sviluppatore. A .dmgè solo un disco rigido virtuale, non un programma di installazione. La scelta di utilizzare a .dmgriguarda l'imballaggio anziché l'installazione.

Se un'applicazione è un semplice .apppacchetto, è autonoma e può essere eseguita facendo doppio clic su di essa. È comunemente copiato /Applicationsper comodità.

Oltre alla crittografia e agli EULA all'apertura, il vantaggio di un .dmgtipo di archivio superiore è il branding. .dmgÈ possibile assegnare icone personalizzate, immagini di sfondo personalizzate e il layout dei contenuti può essere corretto. .dmgdi solito vengono letti solo in modo che i contenuti rimangano esattamente come previsto dallo sviluppatore.

Costringono inoltre l'utente a selezionare dove desiderano un'applicazione; quando si decomprime un archivio, il contenuto verrà in genere estratto in qualsiasi posizione dell'archivio. Al contrario, .dmgs verrà montato nel filesystem e quindi il .appbundle dovrà essere esplicitamente copiato.


Perché non viene come un semplice file binario o non so cosa?

Un'applicazione Mac è più di un semplice binario. Oltre al binario (situato in <appname>.app/Contents/MacOS/) an .appinclude un numero di risorse in <appname>.app/Contents/Resources/. Queste risorse includono icone, grafici e file di localizzazione come en.lproj.


2

Esistono altri usi per i file .dmg diversi dall'installazione del software?

Un'altra utile funzionalità sui DMG (poiché hai chiesto informazioni su altri usi) è la possibilità di creare uno spazio di archiviazione crittografato e archiviare i file in quello spazio protetto. Utile se si desidera proteggere alcuni file, ma non crittografare l'intero disco rigido principale.

Vedi Utility Disco per macOS Sierra: crea un'immagine disco usando Utility Disco per maggiori informazioni sulla creazione di file .dmg crittografati.


La crittografia tuttavia è già possibile senza la necessità di .dmg. Unix non crittografa?
Pacerier,

@ Pacerier - oh di sicuro - come tutto con Linux / Unix, c'è più di un modo per fare qualcosa.
Ken,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.