Как правило, исправление включает следующие компоненты.
Информация об исправлении:
идентификация исправления по версии и идентификатору исправления;
возможности применения (тип, версия и архитектура операционной системы);
зависимости, например требования и старые версии;
свойства, например необходимость последующей перезагрузки;
один или несколько пакетов для применения исправления, каждый из которых содержит следующее:
версию пакета для применения исправлений;
информацию об исправлении, например идентификатор, старые версии и требования;
один или несколько компонентов пакета для применения исправления.
При использовании команды patchadd для применения исправления возможность его применения к данной системе определяется по информации исправления. Если исправление определяется как неприменимое, оно не используется. Также во всех зонах системы проверяются зависимости исправления. Если какие-либо зависимости не разрешаются, исправление не применяется. В частности, это возможно в случае, если уже установлена последняя версия исправления.
Проверяется каждый пакет, содержащий исправление. Если пакет не установлен ни в одной зоне, он исключается из проверки, и по отношению к нему исправление не применяется.
В случае разрешения всех зависимостей исправление применяется по отношению ко всем пакетам, установленным в любой зоне. Также обновляются базы данных пакетов и исправлений.
Версии Solaris 10 3/05 – Solaris 10 11/06: Если пакет установлен с параметром pkgadd -G или с параметром pkginfo SUNW_PKG_THISZONE=true, применение исправления для пакета возможно только с использованием параметра patchadd - G. В версии Solaris 8/07 это ограничение отсутствует.