Dlaczego instalujemy oprogramowanie za pomocą plików `.dmg`?

28

Kiedy chcę zainstalować oprogramowanie, zazwyczaj pobieram a .dmg (Dysk iMaGe) plik. Kiedy to otworzę, to .dmg plik wygląda jak coś, co nazwałbym „dyskiem wirtualnym” (stąd nazwa, którą zakładam) i jest wymieniony w Finder pod devices. Jest również wymieniony w Disk Utility pod Disk Images i wygląda na to, że można go wymazać lub odmontować, tak jak każdy inny dysk.

  • Jaka jest logika, dla której oprogramowanie musi być zainstalowane z takim „wirtualnym dyskiem”?
  • Dlaczego nie jest to prosty plik binarny lub nie wiem co?
Remi.b
źródło
12
Instalacja oprogramowania może zawsze spowodować re za m za sol mi.
dessert
1
Prostym plikiem binarnym byłby instalator. Z DMG wystarczy skopiować aplikację bez uruchamiania instalatora.
Thorbjørn Ravn Andersen
10
Większość aplikacji Mac wygląda jak pojedyncze pliki, ale w rzeczywistości są to „pakiety aplikacji”, zasadniczo folder z wieloma plikami w środku. Finder wyświetla go jako pojedynczą jednostkę, ale możesz kliknąć prawym przyciskiem myszy i wybrać „Otwórz zawartość”, aby sprawdzić pliki wewnątrz. „Prosty plik binarny” nie zadziała.
el.pescado
4
Historia: blog.barthe.ph/2011/04/05/dmg_history
Wayfaring Stranger
Ostatni akapit powinien być osobnym pytaniem, ponieważ prowadzi do oddzielnych odpowiedzi
Mark

Odpowiedzi:

34

DMG mają kilka kluczowych cech, które czynią je lepszymi od zwykłych starych zamków

  • Są pełnym systemem plików (co oznacza, że ​​mogą przechowywać uprawnienia do plików, mieć niestandardowe tła folderów itp.)
  • Obsługują „obowiązkowe” licencje EULA przed montażem, co jest miłe dla rzeczy prawnych
  • Zapewnij bardziej niezawodne środowisko wykonawcze. Jeśli musisz wykonać absolutną ścieżkę do instalacji (której tbh nie powinieneś), możesz przygotować DMG, oznaczyć go jako tylko do odczytu i użyć go do instalacji

Naprawdę kluczową cechą jest to, że obsługują pełny system plików HFS +. Zip (często wersje Linuksa czasami wspierają uprawnienia) jest głupi i obsługuje tylko pakowanie plików i folderów i nic więcej. Brak metadanych, tylko pliki.

Sirens
źródło
14
Dodatkowe punkty: począwszy od wersji 10.12 pliki .dmg mogą być podpisane kodem w celu zapewnienia integralności (pliki .zip mogą zawierać podpisany kod, ale nie może być podpisany w sposób, który przetrwa pobieranie). Ponadto opcja „prosty plik binarny” w ogóle nie działa, ponieważ większość oprogramowania MacOS ma postać pakietów - folderów o złożonej (ukrytej) strukturze wewnętrznej - zamiast zwykłych plików.
Gordon Davisson
9
„Zip jest głupi i tylko wspiera ...” - nie zgadzam się z tą oceną. To, że coś jest proste, nie znaczy, że jest głupie. Prostota jest zaletą i rzadko jest (często niewidoczna) metadanymi pliku o dowolnej wartości w rozproszonym instalatorze.
Dai
14
@ Dai znaczy głupi jak w niemym; program nie wie, co robi - nie jest bezużyteczny.
Tim
3
Przypuszczam, że ZIP nie jest zbyt dobrym porównaniem. Dlaczego nie np. skompresowany TAR jak tar.gz? Przechowuje uprawnienia.
Ruslan
2
@Dai, „rzadko jest (często niewidoczny) metadane pliku o jakiejkolwiek wartości w rozproszonym instalatorze” - prawda na wielu innych platformach, ale Apple ma długą historię przechowywania krytycznych treści (np. Ikon!) W „zasobach widłowych” ( te dni, xattrs).
Charles Duffy
3

Oprogramowanie Mac może być dostarczone jako .app pakiet aplikacji (zasadniczo folder zawierający wszystkie zasoby programu) lub jako .pkg instalator, który jest programem, który instaluje aplikacje w podobny sposób jak Windows.

Tylko narzędzia wiersza poleceń są dostępne jako zwykłe pliki binarne, które następnie zostałyby skopiowane do dowolnego miejsca użytkownika PATH Jak na przykład /usr/local/bin.

Można je spakować na obraz dysku OS X / macOS ( .dmg ) lub tradycyjny format archiwum, taki jak .zip lub .tar.


Jaka jest logika, dla której oprogramowanie musi być zainstalowane z takim „wirtualnym dyskiem”?

To zależy głównie od programisty. ZA .dmg to tylko wirtualny dysk twardy, a nie instalator. Wybór wykorzystania a .dmg dotyczy pakowania, a nie instalacji.

Jeśli aplikacja jest prosta .app pakiet jest samowystarczalny i można go uruchomić, klikając go dwukrotnie. Jest powszechnie kopiowany do /Applications dla wygody.

Poza szyfrowaniem i umowami EULA przy otwieraniu, zaletą jest .dmg ponad typem archiwum jest branding. .dmg s można nadać niestandardowe ikony, niestandardowe obrazy tła i układ zawartości można naprawić. .dmg s są również często tylko do odczytu, więc zawartość pozostanie dokładnie taka, jaką zamierzał deweloper.

Zmuszają również użytkownika do wyboru miejsca, w którym chcieliby otrzymać aplikację; po rozpakowaniu archiwum zawartość zostanie zazwyczaj wyodrębniona do miejsca, w którym znajdowało się archiwum. W przeciwieństwie, .dmg s zainstaluje się w systemie plików, a następnie w .app pakiet musi być jawnie skopiowany.


Dlaczego nie jest to prosty plik binarny lub nie wiem co?

Aplikacja Mac to coś więcej niż tylko plik binarny. Oprócz pliku binarnego (znajdującego się w <appname>.app/Contents/MacOS/ ) an .app zawiera szereg zasobów <appname>.app/Contents/Resources/. Te zasoby obejmują ikony, grafikę i pliki lokalizacji, takie jak en.lproj.

Wes Toleman
źródło
2

Czy istnieje inne wykorzystanie plików .dmg niż Oprogramowanie   instalacja?

Inną przydatną funkcją DMG (ponieważ pytałeś o inne zastosowania) jest możliwość utworzenia zaszyfrowanej przestrzeni dyskowej i przechowywania plików w tym chronionym miejscu. Przydatne, jeśli chcesz chronić niektóre pliki, ale nie szyfrujesz całego głównego dysku twardego.

Widzieć Narzędzie dyskowe dla macOS Sierra: Utwórz obraz dysku za pomocą Narzędzia dyskowego aby uzyskać więcej informacji na temat tworzenia zaszyfrowanych plików .dmg.

Ken
źródło
Szyfrowanie jest już jednak możliwe bez potrzeby .dmg. Czy Unix nie szyfruje?
Pacerier
@ Pacerier - oh na pewno - jak wszystko z Linuksem / Uniksem, istnieje więcej niż jeden sposób na zrobienie czegoś.
Ken