macos — запуск pkg в dmg переполнение стека

Попытка поиска в Google, но не могу найти никакой информации.

Мне нужно выполнить файл pkg, который существует в файле dmg через код. Причина — обновление программного обеспечения. Я загружаю обновление через свое приложение (которое является dmg) и мне нужно его запустить. В Windows это довольно просто: запустите exe. Не можете понять, как этого добиться на Mac.

Что касается фреймворков, я использую wxWidgets с какао (если это помогает).

1

Решение

Я не знаю способа сделать это напрямую с API-интерфейсами Cocoa, но вы можете использовать внешние команды для этого: /usr/bin/hdiutil attach /path/to/image.dmg смонтировать образ диска, то что-то вроде /usr/sbin/installer -package /Volumes/mountedvolume/installer.pkg -target / установить пакет (см. man installer для получения дополнительной информации и вариантов). Обратите внимание, что если пакет требует прав администратора для установки, вам нужно запустить installer команда от имени root.

РЕДАКТИРОВАТЬ: чтобы получить полный путь подключенного тома, вам, вероятно, придется проанализировать вывод hdiutil, Это будет выглядеть примерно так, хотя это будет существенно зависеть от формата образа диска:

/dev/disk2              Apple_partition_scheme
/dev/disk2s1            Apple_partition_map
/dev/disk2s2            Apple_HFS                       /Volumes/mountedvolume
1

Другие решения


По вопросам рекламы [email protected]