Поэтому я упаковываю инструмент для принтера для нашей компании, состоящий из двух файлов .pkg (драйверы) и файла .app.
Сейчас я использую следующую команду для сборки пакета:
pkgbuild --root ./content --script ./scripts --identifier com.MyGreatCompany --version 0.1 --install-location /tmp/ ./PrinterTool.pkg
Таким образом, при установке пакета все содержимое помещается в каталог /tmp/. После этого скрипт после установки завершает установку следующим образом:
installer -verbose -pkg /private/tmp/PackageOne.pkg -target /
installer -verbose -pkg /private/tmp/PackageTwo.pkg -target /
/bin/rm -rf /Applications/Utilities/PrinterTool.app
/bin/mv -f /private/tmp/PrinterTool.app /Applications/Utilities/PrinterTool.app
Это работает. Первая попытка установки проходит успешно, но когда я пытаюсь переустановить тот же пакет, что-то идет не так. Файл .app не копируется в папку /tmp и, следовательно, не перемещается в папку Utilities.
Итак, я хотел бы знать две вещи:
- Есть ли объяснение, почему файл .app копируется только один раз?
- Это лучший способ упаковать несколько типов файлов? У меня такое ощущение, что помещать его в папку /tmp не нужно. По умолчанию файлы пакета помещаются в какую-то папку установщика /tmp, верно? Разве это не может быть рабочим каталогом, из которого будет запускаться постустановочный скрипт?