Utilice el comando pkg verify para validar la instalación de paquetes en la imagen. Si la política de firmas actual para los editores relacionados no es ignore, las firmas de cada paquete se validan en función de la política. Consulte Propiedades de imágenes para paquetes firmados para obtener una explicación de cómo se aplican las políticas de firmas. La verificación del contenido de paquetes instalados se basa en un análisis de contenido personalizado que podría devolver resultados distintos de los de otros programas.
Si no proporciona un nombre de paquete, se examinan todos los paquetes instalados. La opción -v proporciona mensajes informativos, al menos una línea para cada paquete instalado. En el siguiente ejemplo, se muestra únicamente una pequeña muestra de la salida. La instalación del paquete pkg/depot tiene un error.
$ pkg verify -v
PACKAGE STATUS
pkg://solaris/archiver/gnu-tar OK
pkg://solaris/audio/audio-utilities OK
pkg://solaris/benchmark/x11perf OK
...
pkg://solaris/package/pkg/depot ERROR
dir: var/cache/pkg/depot
Group: 'pkg5srv (97)' should be 'bin (2)'
file: var/log/pkg/depot/access_log
editable file has been changed
file: var/log/pkg/depot/error_log
editable file has been changed
...
pkg://solaris/security/sudo OK
file: etc/sudoers
editable file has been changed
...
pkg://solaris/x11/xlock OK
pkg://solaris/x11/xmag OK
pkg://solaris/x11/xvidtune OK
Utilice el comando pkg fix para solucionar los errores del paquete informados por el comando pkg verify.
La salida de pkg verify muestra que los componentes del paquete sudo instalado son distintos a los componentes empaquetados, pero estas diferencias no se informan como errores de validación. pkg fix no realiza cambios. El archivo /etc/sudoers no se reemplaza.
$ pkg fix pkg://solaris/security/sudo No repairs for this image.
Si elimina el archivo /etc/sudoers, falla la validación del paquete y pkg fix reemplaza el archivo.
$ pkg fix pkg://solaris/security/sudo
Verifying: pkg://solaris/security/sudo ERROR
file: etc/sudoers
Missing: regular file does not exist
Created ZFS snapshot: 2014-03-13-22:05:42
Repairing: pkg://solaris/security/sudo
Creating Plan (Evaluating mediators):
DOWNLOAD PKGS FILES XFER (MB) SPEED
Completed 1/1 1/1 0.0/0.0 990B/s
PHASE ITEMS
Updating modified actions 1/1
Updating package state database Done
Updating package cache 0/0
Updating image state Done
Creating fast lookup database Done
Únicamente se reemplaza el archivo faltante, como lo indica el único archivo descargado y la única acción (file) modificada. No se modificó otro contenido del paquete sudo. La operación guardó una instantánea de la instalación actual antes de realizar la reparación. Consulte la línea “Created ZFS snapshot” en la salida de pkg fix. La reparación se realizó en la imagen actual.
$ zfs list -r rpool/ROOT/s11 NAME USED AVAIL REFER MOUNTPOINT rpool/ROOT/s11 16.3G 22.5G 26.1G / rpool/ROOT/s11@2014-03-13-23:52:19 249M - 26.1G -
La salida de pkg verify muestra un error en la propiedad de un directorio en el paquete pkg/depot instalado. La salida de pkg fix muestra únicamente el error en la sección "Verifying". El resto de las diferencias con los componentes empaquetados no se muestran.
$ ls -ld /var/cache/pkg/depot
drwxr-xr-x 3 pkg5srv pkg5srv 3 Dec 2 19:47 /var/cache/pkg/depot/
$ pkg fix pkg://solaris/package/pkg/depot
Verifying: pkg://solaris/package/pkg/depot ERROR
dir: var/cache/pkg/depot
Group: 'pkg5srv (97)' should be 'bin (2)'
Created ZFS snapshot: 2014-03-13-22:18:52
Repairing: pkg://solaris/package/pkg/depot
Creating Plan (Evaluating mediators):
PHASE ITEMS
Updating modified actions 1/1
Updating package state database Done
Updating package cache 0/0
Updating image state Done
Creating fast lookup database Done
La siguiente salida muestra que únicamente se corrigió el error. El resto de las diferencias entre los componentes instalados y empaquetados permanecen.
$ ls -ld /var/cache/pkg/depot
drwxr-xr-x 3 pkg5srv bin 3 Dec 2 19:47 /var/cache/pkg/depot/
$ pkg verify -v pkg://solaris/package/pkg/depot
PACKAGE STATUS
pkg://solaris/package/pkg/depot OK
file: var/log/pkg/depot/access_log
editable file has been changed
file: var/log/pkg/depot/error_log
editable file has been changed