Dlaczego tak wiele plików do pobrania dla komputerów Mac .dmg zawiera tylko jeden plik .pkg?

22

Zauważyłem, że wiele pobrań to dmg (obraz dysku), który zawiera pojedynczy plik pkg (pakiet instalacyjny). Zwykle pkg wydaje się być już skompresowany, ponieważ dmg nie zmniejsza znacznie rozmiaru pliku, jeśli w ogóle.

Przykład :

Oszczędność 737,658 bajtów, czyli 0,6% pierwotnego rozmiaru pliku.

Czy istnieje powód, aby nie dystrybuować pkg? Czy oszczędności na kompresji o 0,6% są tak ważne? A może po prostu zawsze tak było na komputerze Mac?

(Tak, zdaję sobie sprawę, że 737 658 bajtów razy sumuje się miliony pobrań pobieranych przez dmg, ale zawsze wydaje się denerwujące mieć dodatkowe kroki w celu zamontowania dmg, uruchomienia instalatora, a następnie odmontowania dmg. Może lepszym pytaniem jest „dlaczego Mac OS X nie rozpoznaje dmg z pojedynczym pkg w środku jako tylko pkg i po prostu instaluje go bez konieczności montowania i odmontowywania?”)

Jim McKeeth
źródło
Właściwie nowoczesne pakiety to pliki płaskie, a nie foldery. Więc umieszczenie ich w pliku dmg tylko w celu zapewnienia płaskiego pliku nie jest już konieczne.
mlaster,
@mlaster To nie wydaje się prawdą. Czy masz przykład?
Gerry
1
radiosilenceapp.com/downloads/Private%20Eye.pkg jest jednym z przykładów, podobnie jak JavaForMacOSX10.7.pkg (chociaż Apple nadal ma go jako .dmg, gdy jest gotowy do pobrania). Mam kilka innych w moim archiwum Pobrane, ale zdecydowanie nie jest to jeszcze uniwersalne. filewyświetla je jako „Archiwum XAR - wersja 1”. Ale jest problem z upewnieniem się, że serwer WWW jest skonfigurowany tak, aby wymuszał pobieranie plików .pkg zamiast wyświetlania. (Spodziewam się, że niektórzy deweloperzy używają .zip zamiast .dmg z tego samego powodu - nawet najgorzej skonfigurowane serwery i przeglądarki wiedzą, jak pobierać pliki .zip).
TJ Luoma,
1
Jednak nawet po otrzymaniu plików płaskich wielu programistów umieszcza pliki .pkg wewnątrz .zip, ponieważ mogą liczyć na serwery, aby ich typ MIME był ustawiony poprawnie dla plików .zip, ale niekoniecznie dla .pkg (lub .dmg w tym przypadku ).
TJ Luoma,

Odpowiedzi:

24

Technicznie rzecz biorąc, plik .pkg nie jest plikiem , ale folderem . Może więc zebranie go w jednym pliku jest niezbędne do pobrania.

GEdgar
źródło
1
Nawet nie zdawałem sobie z tego sprawy, ale trafiłeś w sedno.
Gerry
Nie wiedziałem też o pliku .pkg. Wiedza, że ​​to wszystko ma sens. Dzięki!
Jim McKeeth,
2
Spakowanie go do dmg oznacza, że ​​wszelkie rozszerzone atrybuty plików i / lub widelce zasobów OS X są zachowane i można je obsługiwać z serwera innego niż OS X. Z tego powodu format pakietu został zaktualizowany w celu uwzględnienia płaskich plików w najnowszych wersjach systemu OS X.
Joe Block
6
Ta odpowiedź nie jest już do końca prawdą, .pkgpliki są obecnie czymś więcej niż zwykłym folderem: en.wikipedia.org/wiki/Installer_(OS_X)#Installer_package
t0r0X
1
@wisbucky: to musi być nowsze niż 2011, jak zauważył t0r0X.
GEdgar
14

Dane na obrazie DMG można sprawdzić pod kątem integralności za pomocą narzędzia dyskowego. Możesz wprowadzić obowiązkową zgodę użytkownika na licencję przed zainstalowaniem dmg. Można go zablokować przed modyfikacją. Możesz łatwo dodawać ukryte pliki i foldery w DMG. Możesz zrobić obraz tła. Możesz zabezpieczyć się przed usuwaniem danych podczas przesyłania przez systemy plików nieobsługujące metadanych, takie jak FAT.

Właściwie wiele powodów .

iskra
źródło
1
Wszystkie fajne funkcje DMG, ale nie dodają niczego do PKG, chyba że poważnie nie mogą zweryfikować swojej integralności.
Jim McKeeth,
6

Jednym z możliwych powodów może być to, że Safari domyślnie automatycznie montuje pliki DMG, a okno Findera wyskakuje z zawartością. Z kolei folder DMG może być nazwany na przykład obrazem tła. Zakładam, że można to uznać za bardziej przyjazne dla użytkownika niż szukanie instalatora w folderze Pobrane, ale zgadzam się, że to dość dyskusyjne.

Innym powodem może być możliwość grupowania również innych plików pomocniczych, na przykład plików dokumentacji lub nawet dodatkowych instalatorów.

Jednak na początku nie jest to tak powszechna dystrybucja. Większość aplikacji jest rozpowszechniana jako samodzielne foldery .app w pliku DMG (jeśli nie teraz w App Store). Twój przykład wydaje mi się raczej wyjątkiem, choć może jest bardziej powszechny w przypadku niektórych kanałów dystrybucji? Osobiście nie zastanawiałbym się nad tym znacznie dalej.

Gerry
źródło
1
+ 1 za ostatni akapit - Myślałem, że z powodu niektórych trojanów .dmg s nie są (zdecydowanie nie powinny) być automatycznie montowane
użytkownik151019
@Gerry, montowane automatycznie? Co to za szalone ustawienie?
Pacerier
@Gerry, czy nie jest to sprzeczne z „..agree to licence ..” w apple.stackexchange.com/a/30698/6533 ?
Pacerier
1

Jeszcze innym powodem jest to, że nie można uruchamiać plików .pkg bezpośrednio z woluminów sieciowych, ale można uruchomić .dmg z woluminu sieciowego, a następnie uruchomić pakiet.

benwiggy
źródło