Сегодня хочу поговорить о утилите из состава XCode PackageMaker, с помощью которой можно создавать установочные пакеты. Обычные приложения в Mac OS X ставятся просто – приложение перетаскивается в /Application, после чего им можно пользоваться. Однако есть класс приложений, которые невозможно так устанавливать. К ним относятся системные утилиты, требующие установки дополнительных модулей, запуска скриптов перед и после установки, повышения полномочий до административных, и т.п. Есть разные мнения по поводу инсталляции с помощью “установщиков” (очень рекомендую почитать отличную серию статей
PackageMaker находится в /Developer/Applications/Utilities:
Меня, как вы заметили, интересует знать о файловой активности приложений, и я расскажу о PackageMaker именно с этой стороны. Для построения списка файлов, которые нужно включить в установочный пакет, утилита использует функцию Snapshot’ов, которая следит за файловой активностью и далее позволяет включить в дистрибутив файлы, которые появились в системе. Конечно же, это только одна из функций утилиты, детальнее ознакомиться с ней можно в “
Итак, задача. Я хочу сделать установочный пакет программы, которую располагаю в /usr/local. Я предполагаю, что примерно таким образом создал
Запускаем PackageMaker и вводим первичные данные:
Свойства проекта по умолчанию такие:
Кстати, можно проверять такие условия:
Запускаем построение snapshot’а:
Когда будем готовы к установке, жмём Start:
Далее можно, например, как при компиляции Midnight Commander из исходных кодов, сделать “make install”, и утилита проследит за всеми создаваемыми в системе файлами, в итоге мы получим снимок для установки. Я же делаю всего несколько иллюстративных действий:
mkdir -p /usr/local/bin cp /bin/bash /usr/local/bin/testapp mkdir -p /usr/local/lib cp /usr/lib/libIOKit.dylib /usr/local/lib/libTestApp.dylib cp /usr/lib/libIOKit.A.dylib /usr/local/lib/libTestApp.A.dylib
Как только мы закончили, останавливаем слежение, и видим все изменения, которые были в системе (конечно же, не только наши):
Отбираем только те изменения, которые относятся к нашему создаваемому приложению:
Жмём “Build” и получаем установочный пакет “Test App.pkg”:
Всё, установочный пакет создан, теперь его можно проверить пробной установкой и распространить среди желающих:
Желающие изучить вопрос детальнее могут обраться к “