Почему так много Mac скачивает .dmg, который содержит только один .pkg?

21

Я заметил, что многие загрузки - это dmg (образ диска), который содержит один файл pkg (установочный пакет). Обычно pkg кажется уже сжатым, поскольку dmg не сильно уменьшает размер файла, если он вообще есть.

Пример :

Экономия 737 658 байт, или 0,6% от исходного размера файла.

Есть ли причина не просто распространять pkg? Важна ли экономия сжатия на 0,6%? Или это просто так всегда было сделано на Mac?

(Да, я понимаю, что 737,658 байт умножают на все миллионы загрузок, которые получает dmg, но это всегда раздражает, когда появляются дополнительные шаги для монтирования dmg, запуска установщика, а затем размонтирования dmg. лучший вопрос: «почему Mac OS X не распознает dmg с одним pkg внутри него как просто pkg и просто устанавливает его, не требуя всего этого монтирования и размонтирования?»)

Джим Маккит
источник
На самом деле современные пакеты - это плоские файлы, а не папки. Так что помещать их в dmg просто для предоставления плоского файла больше не нужно.
mlaster
@mlaster Это не похоже на правду. У вас есть пример?
Джерри
1
radiosilenceapp.com/downloads/Private%20Eye.pkg является одним из примеров, как и JavaForMacOSX10.7.pkg (хотя Apple все еще имеет его как .dmg, когда он готов к загрузке). У меня есть несколько других в моем архиве загрузок, но он определенно не универсален. fileперечисляет их как «xar archive - version 1». Но возникает проблема с тем, чтобы убедиться, что веб-сервер настроен на загрузку, а не отображение файлов .pkg. (Я ожидаю, что некоторые разработчики используют .zip вместо .dmg по той же причине - даже самые плохо настроенные веб-серверы и браузеры знают, что нужно загружать файлы .zip).
TJ Luoma
1
Однако даже после того, как мы получили плоские файлы, многие разработчики помещают файлы .pkg в файл .zip, потому что они могут рассчитывать на серверы, чтобы их тип MIME был правильно установлен для файлов .zip, но не обязательно для .pkg (или .dmg в этом отношении). ).
TJ Luoma

Ответы:

24

Технически, .pkg - это не файл , а папка . Поэтому, возможно, сбор его в один файл необходим для загрузки.

GEdgar
источник
1
Я даже не осознавал этого, но ты ударился ногтем по голове.
Джерри
Я тоже не знал об этом .pkg. Зная, что все это имеет смысл. Спасибо!
Джим Маккит
2
Упаковка его в dmg означает, что любые расширенные атрибуты файлов и / или разветвления ресурсов OS X сохранены, и вы можете обслуживать их с веб-сервера, не являющегося OS X. Это также, почему формат пакета был обновлен, чтобы включать плоские файлы в последних версиях OS X.
Джо Блок
5
Этот ответ уже не совсем верный, в .pkgнастоящее время файлы представляют собой нечто большее, чем обычную папку: en.wikipedia.org/wiki/Installer_(OS_X)#Installer_package
t0r0X,
1
@wisbucky: это должно быть более новым, чем в 2011 году, как отмечает t0r0X.
GEdgar
14

Данные на образе DMG можно проверить на целостность с помощью утилиты Disk. Вы можете сделать обязательным для пользователя согласие с лицензией перед монтированием dmg. Это может быть заблокировано от модификации. Вы можете легко добавлять скрытые файлы и папки в DMG. Вы можете сделать фоновое изображение. Вы можете обезопасить себя от вскрытия во время транзита через файловые системы без метаданных, такие как FAT.

На самом деле множество причин .

Iskra
источник
1
Все интересные функции DMG, но они ничего не добавляют в PKG, если они серьезно не могут проверить свою целостность.
Джим Маккит
6

Одной из возможных причин может быть то, что Safari по умолчанию автоматически монтирует файлы DMG, и что окно Finder будет всплывать с содержимым. В свою очередь папка DMG может быть оформлена, например, с помощью фонового изображения. Я предполагаю, что это может считаться более удобным для пользователя, чем поиск в папке «Загрузки» программы установки, но я согласен, что это довольно спорный вопрос.

Другой причиной может быть возможность сгруппировать вместе и другие вспомогательные файлы, например файлы документации или даже вспомогательные установщики.

Тем не менее, это не такой распространенный дистрибутив для начала. Большинство приложений распространяются в виде автономных папок .app внутри файла DMG (если не через App Store сейчас). Ваш пример кажется мне скорее исключением, хотя, возможно, он более распространен для некоторых конкретных каналов распространения? Лично я бы не стал на этом останавливаться.

Gerry
источник
1
+1 за последний абзац - я думал, что из-за сом троянов .dmg s не (определенно не должны) автоматически монтироваться
Марк
@ Джерри, автоматически монтируется ?? Что за сумасшедшая обстановка?
Pacerier
@ Джерри, разве это не противоречит ".. согласен на лицензию .." в apple.stackexchange.com/a/30698/6533 ?
Pacerier
1

Еще одна причина заключается в том, что вы не можете запускать файлы .pkg непосредственно с сетевых томов, но вы можете запустить .dmg с сетевого тома, а затем запустить пакет.

benwiggy
источник