Выписка из DMG

Как извлечь содержимое DMG без его монтирования? Я хочу добавить систему автообновления в свое приложение. Он загружает DMG с веб-сайта, а затем извлекает из него новую версию приложения.


person Henry Manister    schedule 26.07.2012    source источник


Ответы (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.

person Mengdi Gao    schedule 21.02.2015
comment
7zip только для Windows. - person Ky Leggiero; 15.09.2017
comment
@BenLeggiero Не совсем так, установите p7zip в Linux/macOS, который содержит приложение командной строки 7z. - person Mengdi Gao; 17.09.2017
comment
Извлечение файлов dmg с помощью 7z, похоже, пропускает исполняемые биты, что делает извлеченные приложения из DMG нефункциональными. Может быть связано: sourceforge.net/p/p7zip/bugs/113 - person Motin; 14.09.2018

Dmg — это просто формат, используемый для MacOS. Это несжатый формат файла, такой как zip или tar.gz. У вас есть несколько вариантов его монтирования. Вот несколько вариантов.

  1. Дважды щелкните по нему, чтобы смонтировать.
  2. Используйте hdiutil attach your.dmg для монтирования файла dmg. После установки на него используйте командную строку, чтобы извлечь нужные файлы.
person Alston    schedule 18.07.2018
comment
Это то, что мне нужно. Можно ли получить смонтированный путь из вывода терминала? - person Tails; 18.06.2021

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

person Brighid McDonnell    schedule 27.07.2012
comment
Проект, который вы связали, является портативным решением. Монтировать образы DMG в OSX легко, поскольку другие ответы проверены. - person bluszcz; 24.01.2018