En règle générale, les patchs possèdent les composants suivants :
des informations sur le patch :
identification : la version du patch et son ID ;
conditions d'application : type et version de système d'exploitation et architecture ;
dépendances : par exemple requises et obsolètes ;
propriétés : par exemple requiert une réinitialisation ultérieure.
un ou plusieurs packages à patcher, chacun d'entre eux contenant :
la version du package auquel les patchs peuvent être appliqués ;
des informations sur le patch, par exemple son ID ou le fait qu'il est obsolète ou requis ;
un ou plusieurs composants du package à patcher.
Lorsqu'un patch est appliqué à l'aide de la commande patchadd, les informations concernant ce patch sont utilisées pour déterminer s'il est applicable au système en cours d'exécution. Si le patch est jugé non applicable, il n'est pas appliqué. Les dépendances du patch sont également contrôlées pour toutes les zones du système. Si l'une des dépendances requises n'est pas vérifiée, le patch n'est pas appliqué. Cela peut se produire lorsqu'une version ultérieure du patch est déjà installée.
Tous les packages du patch sont contrôlés. Si le package n'est installé dans aucune zone, il est contourné et n'est pas patché.
Si toutes les dépendances sont vérifiées, tous les packages du patch installés dans les zones sont utilisés pour patcher le système. Les bases de données de packages et de patchs sont également mis à jour.
De Solaris 10 3/05 à Solaris 10 11/06 : si un package est installé à l'aide de la commande pkgadd -G ou si sa configuration pkginfo est SUNW_PKG_THISZONE=true, il peut uniquement être patché à l'aide de patchadd - G. Cette restriction a disparu dans la version Solaris 8/07.