Аналитики Gartner говорят, что доля Mac платформы в корпоративном секторе растет год от года. Поэтому вопрос централизованного управления Mac пакетами в корпоративных средах становится все более актуальным. Каковы преимущества использования централизованного управления ПО? Среди них:

  1. возможность устанавливать приложения на большое количество клиентов с едиными настройками;
  2. минимизация количества проблем и инцидентов с ПО за счет применения единых стандартов подготовки установочных пакетов;
  3. установка инсталляционных пакетов не требует действий от пользователя и каких-либо дополнительных привилегий.

Тема управления ПО достаточна обширна. Выше приведены лишь наиболее яркие и бытовые примеры. Поэтому в нашей компании подготовка инсталляционных пакетов Mac OS предоставляется в качестве отдельного сервиса.

План первой части статьи:

  1. Форматы, типы пакетов. В данном разделе рассмотрим разновидности пакетов и их структуру.
  2. Краткий обзор наиболее популярных инструментов для подготовки инсталляционных пакетов.

(под катом много фото)


1. Форматы, типы пакетов

Рассмотрим один из самых известных типов payload package:

image

Archive.bom – бинарный файл, который содержит список файлов для всего проекта. Для просмотра данных можно использовать Isbom в terminal.

Archive.pax.gz – отображается как pax архив и сжат с gzip tool.

Info.plist – xml файл содержащий настройки по умолчанию для всего пакета. Для просмотра содержимого используется Property list Editor tool, также можно просмотреть файл c текстовым редактором.

PkgInfo – простой текстовый файл, содержащий файл и тип создания всего пакета.

Resources – папка языкового пакета, содержащая простые строки локализации.

Meta-package
Содержит несколько payload пакетов в одном инсталляционном пакете (Contents/Packages). Meta package не устанавливает файлы сами по себе. Вместо этого он содержит в себе компоненты в виде пакетов. В Meta package можно установить отдельный package, который необходим. Meta package удобен для больших программных продуктов, когда имеется большое количество файлов, которое необходимо распространять.

image

Flat-package
Flat-пакет использует структуру отличную от предыдущих. Во-первых, Contents не содержит info.plist и PkgInfo. Во-вторых, сохраняет свои payload и resource на корневом уровне. И distribution.dist файл это просто Distribution.

Flat-пакет также использует более компактный формат для payload. Каждый payload имеет 3 файла. Bom файл занимает место Archive.bom. Payload файл заменяет Archive.pax.gz, а PackageInfo заменяет XML, PkgInfo. Flat-package хранит скрипты установки иначе. Pre-install, post-install action-ы стали payload action-ом. Payload состоит из главного имени пакета и тип action.

image

Bom – содержит список путей и файлов для всего проекта.

Payload – файлы запакованные в архив cpio.tgz.

PackageInfo – содержит информацию о пакете.

Distribution – описывает какие компоненты будут установлены на системе.

Resources – папка языкового пакета, содержащая простые строки локализации.

2. Краткий обзор инструментов для packaging

На сегодняшний день существует множество инструментов для создания package под Mac OS. Мы рассмотрим несколько наиболее известных:

Iceberg
Бесплатный инструмент разработанный Stephan Sudre. Очень популярен среди Mac OS X администраторов. Можно создавать package и metapackage, не поддерживает создание flat-пакетов. Имеет дружелюбный интерфейс и прост в использовании, имеется подробная документация применения инструмента на сайте. Также есть поддержка создания пакетов из файловой системы через snapshot. На сегодняшний день доступная версия 1.2.9 (не обновлялась с 2010 года) может быть загружена.

Package Maker
Package Maker также может быть загружен с официального сайта Apple и считается одним из самых надежных и часто используемых из всех существующих инструментов. Microsoft, в том числе, отдает предпочтение этому инструменту и свои решения показывает в среде Package Maker. Инструмент входит в набор developer tool (XCode). Package Maker позволяет создавать Single Package, Metapackage и Distribution package. Особенностью данного инструмента является создание снимков (snapshot) файловой системы в определенный момент, что полезно, так как позволяет найти разницу в файлах. На Mac OS Package Maker находится в /Developer/Applications/Utilities.

Composer от JAMF Software
Удобный инструмент, который позволяет делать package следующих форматов: .pkg, .mpkg, .dmg. Также с его помощью можно делать снимки файловой системы для дальнейшего сравнения разницы. Он имеет хорошую документацию на английском. В свою очередь JAMF Software проводит тренинги и сертификацию для своих продуктов, и что немаловажно, существует форум, где можно найти множество советов по созданию пакетов в среде Composer. Данный инструмент является платным и на сегодняшний день стоит $99.95 (Commercial version) и $79.95 (Education version). Также можно скачать пробную версию заполнив форму request trial.

Во второй части статьи продемонстрируем, как создать пакет в среде Package Maker.

Автор: Eduard123

Комментарии (10)


  1. vaniaPooh
    29.04.2015 18:18
    -1

    Мы Debian пакеты собирали и ставили на Винду и Мак. Дешево и сердито.


    1. Ruslan123
      29.04.2015 18:25

      Интересный подход… А на Винде и Мак использовали Wine? Какие тулы использовали для подготовки пакетов (настроек)?


      1. vaniaPooh
        29.04.2015 18:35

        Пакеты собираются обычными средствами сборки Debian пакетов, а вот бинарное содержимое пакетов должно быть собрано под каждую платформу по отдельности. Мы правда собирали Java код, поэтому нам все равно.


        1. Draug
          29.04.2015 18:49

          Каким образом затем пакет устанавливаете в систему?


          1. Ruslan123
            30.04.2015 10:52

            присоединяюсь к вопросу, интересно узнать о вашем опыте развертывания…


        1. Draug
          29.04.2015 18:58

          Для Linux окружения есть интересная штука AppImageKit. (ссылка)
          По сути можно собрать бинарник/образ с приложением, чем-то похоже на пакеты в macosx.


    1. jhekasoft
      29.04.2015 20:27
      +2

      Расскажите подробнее про процедуру. Каким образом deb-пакет устанавливается на Windows, OS X?


  1. Kentzo
    30.04.2015 09:04
    +2

    Iceberg — морально устарел, насколько я помню не умеет ряд фич появившихся в свежих версия Mac OS X
    Package Maker — мертв
    Composer — никогда не использовал…

    Сейчас Apple рекомендует 3 инструмента для создания пакетов: pkgbuild, pkgutil и productbuild.


    1. Ruslan123
      30.04.2015 10:51

      А вы используете данные тулы на практике?


      1. Kentzo
        30.04.2015 22:30

        Переодически.