Открыть сервисСервис

Папка Packages в macOS

Packages — служебная папка в файловой системе macOS (и iOS), расположенная в корне системного тома /System/Library/ или в корне пользовательского домена, в которой операционная система хранит установленные пакеты программного обеспечения в формате .pkg. Папка является частью механизма управления пакетами Apple (Apple Installer / BOM), позволяющего отслеживать, какие файлы какого программного обеспечения были установлены в систему, и обеспечивать корректное удаление или обновление приложений.

Назначение

Папка Packages выполняет две основные функции:

  • Учёт установленных пакетов. Каждый установщик macOS, запускаемый через Installer.app, формирует список всех файлов, которые он размещает в системе, и сохраняет эту информацию в виде пакета (.pkg или метаданных в /var/db/receipts/).
  • Обеспечение обратимости установки. Благодаря сохранённым данным система может корректно удалять программное обеспечение, обновлять его до новых версий и разрешать конфликты между пакетами.

Расположение и структура

В разных версиях macOS папка Packages может находиться в нескольких местах:

ПутьНазначение
/System/Library/Системные пакеты, поставляемые вместе с ОС
/Library/Пакеты, установленные администратором для всех пользователей
~/Library/Пакеты, установленные отдельным пользователем

Внутри папки хранятся файлы с расширениями .pkg, .mpkg, а также служебные файлы в формате BOM (Bill of Materials) и расписания установки (.plist), которые описывают содержимое каждого пакета.

Связь с Installer.app

Installer.app — стандартное приложение macOS для установки программного обеспечения. При запуске .pkg-файла Installer:

  1. Распаковывает содержимое пакета во временную папку.
  2. Проверяет цифровую подпись и целостность файлов.
  3. Копирует файлы в целевые каталоги.
  4. Записывает информацию об установленных файлах в папку Packages и /var/db/receipts/.

Команда pkgutil --pkgs в терминале позволяет получить список всех зарегистрированных пакетов, а pkgutil --files <package-id> — перечень файлов, входящих в конкретный пакет.

Удаление пакетов

Стандартный способ удаления программного обеспечения в macOS — перемещение приложения в Корзину. Однако для пакетов, установленных через Installer, этого недостаточно, так как остаются служебные файлы. Полное удаление выполняется командами:

  • sudo pkgutil --forget <package-id> — удаляет запись о пакете из системы.
  • Ручное удаление файлов, перечисленных в выводе pkgutil --files.

Роль в обновлениях системы

При обновлении macOS через Мастер обновления (Software Update) система загружает пакеты обновлений, устанавливает их и обновляет содержимое папки Packages. Это позволяет откатывать обновления при сбоях и восстанавливать целостность системных компонентов.

Особенности в iOS

В iOS папка Packages аналогична macOS, но доступ к ней ограничен из-за песочницы (sandbox) приложений. Системные пакеты в iOS хранятся в зашифрованном виде, и прямой доступ к ним возможен только на устройствах с разрешённой загрузкой (jailbreak).

Интересные факты

  • Идентификаторы пакетов в macOS часто начинаются с com.apple., что указывает на принадлежность к системным компонентам.
  • Папка Packages тесно связана с технологией Apple Silicon, где обновления системы поставляются в виде пакетов с подписью Apple.
  • В macOS Big Sur и новее системные пакеты хранятся в защищённом системном томе (System Volume), что делает их неизменяемыми для пользователя.

Источники

  • Apple Developer Documentation — Installer Packages
  • Apple Support — About macOS Installer
  • man pkgutil — macOS Manual Pages
Заметили ошибку или не согласны с информацией в статье? Напишите нам support@bfometr.ru