PKG to ZIP: как конвертировать и распаковать пакет установщика macOS

Файл PKG, скачанный для установки программы на Mac, нельзя просто переименовать в ZIP — это установочный пакет macOS в формате xar, и для извлечения его содержимого потребуется либо встроенная утилита pkgutil, либо сторонний архиватор, понимающий эту структуру. Запрос «pkg to zip» обычно возникает в двух ситуациях: нужно достать файлы из установщика без его запуска, либо требуется переслать содержимое пакета в привычном формате архива.

Хорошая новость: конвертация возможна на любой платформе — и на самом Mac через Терминал, и на Windows через архиваторы вроде 7-Zip, и даже через онлайн-сервисы. Ниже разберём все рабочие способы, их ограничения и типичные ошибки.

Что представляет собой формат PKG

Пакет PKG — это контейнер, который система macOS использует для установки приложений, драйверов и обновлений. Внутри находится служебная информация (скрипты установки, манифест PackageInfo, список файлов Bom) и архив Payload с самими данными. Именно Payload чаще всего и нужен пользователю, ищущему «pkg to zip».

Структурно PKG построен на формате xar (eXtensible ARchive), а полезная нагрузка внутри обычно сжата как gzip-архив. Это объясняет, почему простое переименование расширения не работает: ZIP и xar — разные форматы упаковки, и система не сможет открыть такой файл штатными средствами.

⚠️ Внимание: распаковка PKG не равна установке программы. Скрипты установщика не выполняются, зависимости не регистрируются, поэтому извлечённое приложение может не запуститься корректно. Используйте распаковку для анализа содержимого или извлечения отдельных файлов.

Способ 1: распаковка через pkgutil на Mac

Самый надёжный метод — встроенная утилита pkgutil, которая присутствует в любой актуальной версии macOS и не требует установки дополнительного ПО. Откройте Терминал (папка «Программы» → «Утилиты») и выполните команду развёртывания пакета:

pkgutil --expand-full ~/Downloads/package.pkg ~/Desktop/pkg_extracted

Флаг --expand-full автоматически распаковывает и сам пакет, и вложенный Payload, поэтому в целевой папке вы сразу увидите обычные файлы и каталоги. Если использовать более короткий вариант pkgutil --expand, содержимое Payload останется в виде архива и его придётся распаковывать отдельно.

После развёртывания полученную папку легко сжать в ZIP штатными средствами: кликните по ней правой кнопкой в Finder и выберите «Сжать», либо выполните в Терминале:

ditto -c -k --sequesterRsrc --keepParent ~/Desktop/pkg_extracted ~/Desktop/pkg_extracted.zip

☑️ Распаковка PKG через Терминал

Выполнено: 0 / 5

Способ 2: архиваторы 7-Zip и Keka

Если Терминал вам не подходит, с PKG справятся графические архиваторы. На Windows бесплатный 7-Zip умеет открывать xar-контейнеры: кликните правой кнопкой по файлу → 7-Zip → Открыть архив. Внутри вы увидите Payload — его нужно извлечь и открыть повторно как gzip-архив, а затем ещё раз, поскольку внутри обычно находится cpio-структура. Это многослойная распаковка, но она работает без установки macOS.

На Mac аналогичную задачу решает бесплатный архиватор Keka или утилита The Unarchiver. Перетащите PKG на иконку программы — она развернёт вложенные слои автоматически. После этого выделите извлечённые файлы и создайте из них обычный ZIP-архив.

  • 📦 7-Zip (Windows) — открывает PKG как многослойный архив, извлечение в несколько шагов
  • 🍎 Keka (macOS) — автоматически разворачивает вложенные архивы Payload
  • 🗂 The Unarchiver (macOS) — простой вариант для одноразовой распаковки
  • ⌨️ pkgutil (macOS) — штатный способ без сторонних программ
📊 Какой способ распаковки PKG вам ближе?
Терминал и pkgutil
Архиватор с графическим интерфейсом
Онлайн-конвертер
Ещё не решил(а)

Способ 3: онлайн-конвертеры

Сервисы, которые принимают PKG и отдают ZIP, существуют, но у них есть существенные ограничения. Во-первых, установочные пакеты часто весят сотни мегабайт или гигабайты, а бесплатные онлайн-конвертеры ограничивают размер загрузки. Во-вторых, вы передаёте файл на чужой сервер, что неприемлемо для конфиденциального ПО или корпоративных инсталляторов.

Если файл небольшой и не содержит чувствительных данных, схема проста: загружаете PKG на страницу сервиса, выбираете целевой формат ZIP, дожидаетесь обработки и скачиваете результат. Перед использованием проверьте, что сервис действительно поддерживает xar-пакеты, а не просто переименовывает файл.

⚠️ Внимание: не загружайте в онлайн-конвертеры установщики с лицензионными ключами, корпоративными сертификатами или персональными данными. Для таких файлов используйте только локальные способы — pkgutil или архиватор.

Сравнение способов конвертации

Выбор метода зависит от вашей платформы, размера файла и того, насколько глубоко нужно разобрать пакет. Сводная таблица поможет определиться:

СпособПлатформаСложностьОграничения
pkgutil --expand-fullmacOSНизкаяТребует Терминал
7-ZipWindowsСредняяМногослойная распаковка вручную
Keka / The UnarchivermacOSНизкаяНужна установка программы
Онлайн-конвертерЛюбаяНизкаяЛимит размера, риски приватности

На Mac оптимален pkgutil: он штатный, быстрый и корректно обрабатывает все слои пакета. На Windows без альтернатив остаётся 7-Zip — просто будьте готовы открыть архив два-три раза подряд, пока не доберётесь до файлов.

Типичные проблемы и их решения

Самая частая жалоба — «архиватор не открывает PKG». Возможная причина: файл повреждён при скачивании. Проверьте его размер и, если известна контрольная сумма от источника, сверьте её. На Mac это делается командой shasum -a 256 файл.pkg. Несовпадение суммы означает, что пакет нужно скачать заново.

Вторая ситуация — после распаковки видны только служебные файлы, а самой программы нет. Это значит, что вы развернули внешний слой, но не Payload. Найдите в результате файл с именем Payload (без расширения) и распакуйте его как архив — именно там лежат данные.

  • 🔍 Ошибка «не удаётся открыть» — проверьте целостность файла через контрольную сумму
  • 📄 Видны только Scripts и PackageInfo — распакуйте вложенный Payload отдельно
  • 🔒 pkgutil сообщает о проблемах с подписью — используйте --expand-full, он не проверяет подпись при распаковке
  • 💾 Не хватает места — развёрнутый пакет может занимать заметно больше исходного PKG
Что находится внутри PKG-файла

Помимо Payload с данными, в пакете лежат: PackageInfo (манифест с метаданными), Bom (список файлов с правами доступа), Scripts (скрипты preinstall/postinstall), а иногда Resources с локализациями и изображениями установщика. Для извлечения программы нужен только Payload.

Когда распаковка PKG действительно нужна

Извлечение содержимого установщика оправдано в нескольких сценариях: анализ пакета перед установкой (проверка, какие файлы и куда будут записаны), извлечение драйвера или отдельного компонента без полной инсталляции, восстановление файлов из старого установщика, когда разработчик прекратил поддержку. Также распаковку используют системные администраторы при подготовке пакетов к развёртыванию.

Если же ваша цель — просто установить программу, распаковывать ничего не нужно: дважды кликните по PKG и следуйте штатному мастеру установки macOS. Конвертация в ZIP имеет смысл только для доступа к внутренностям пакета или передачи его содержимого в удобном виде.

Часто задаваемые вопросы

Можно ли просто переименовать .pkg в .zip?

Нет. PKG построен на формате xar, а ZIP — это отдельный формат архивации. Переименование не меняет внутреннюю структуру файла, и архиватор не сможет его открыть. Нужна именно распаковка с последующим сжатием содержимого в ZIP.

Как открыть PKG на Windows?

Установите бесплатный 7-Zip, кликните по файлу правой кнопкой и выберите «Открыть архив». Внутри найдите Payload и извлеките его — возможно, придётся открыть вложенные слои gzip и cpio по очереди, пока не появятся обычные файлы.

Запустится ли программа, извлечённая из PKG вручную?

Не гарантированно. Распаковка не выполняет установочные скрипты, не создаёт необходимые связи и не выставляет права так, как это делает установщик. Приложение может запуститься, а может потребовать полноценной установки.

Чем посмотреть содержимое PKG без распаковки?

На Mac выполните в Терминале команду pkgutil --payload-files путь_к_файлу.pkg — она выведет полный список файлов внутри пакета, ничего не извлекая на диск.

Безопасно ли загружать PKG в онлайн-конвертер?

Для публичных установщиков без чувствительных данных — допустимо, если размер файла укладывается в лимиты сервиса. Для корпоративных пакетов, инсталляторов с сертификатами или лицензионными данными используйте только локальные инструменты: pkgutil, Keka или 7-Zip.