Как извлечь содержимое DMG без его монтирования? Я хочу добавить систему автообновления в свое приложение. Он загружает DMG с веб-сайта, а затем извлекает из него новую версию приложения.
Выписка из DMG
Ответы (3)
Некоторые файлы .dmg можно извлечь с помощью 7-zip.
$ 7z x your.dmg
$ ls
your.dmg
0.MBR
1.Primary GPT Header
2.Primary GPT Table
3.free
4.hfs
5.free
6.Backup GPT Table
7.Backup GPT Header
... и после извлечения файла 4.hfs:
$ 7z x 4.hfs
... вы получите содержимое файла .dmg.
Вы также можете смонтировать .dmg в Mac OS X с помощью команды hdiutil (которая также используется Homebrew Cask).
См. этот вопрос Ask Ubuntu, чтобы узнать больше о вариантах использования в Linux.
7z.
- person Mengdi Gao; 17.09.2017
Dmg — это просто формат, используемый для MacOS. Это несжатый формат файла, такой как zip или tar.gz. У вас есть несколько вариантов его монтирования. Вот несколько вариантов.
- Дважды щелкните по нему, чтобы смонтировать.
- Используйте
hdiutil attach your.dmgдля монтирования файла dmg. После установки на него используйте командную строку, чтобы извлечь нужные файлы.
Это противоречит дизайну DMG, поэтому это очень болезненно. DMG предназначены для монтажа, в этом весь смысл их существования. Вам нужно будет полагаться на экспериментальный код, если вы хотите сделать что-то подобное. Возможно, вам будет удобнее использовать не-DMG-архив, такой как zip-файл, или настроить автоматический процесс обновления на загрузку, монтирование, и размонтирование предоставленного вами DMG-файла.