Agregación y actualización de software en Oracle® Solaris 11.2

Salir de la Vista de impresión

Actualización: Julio de 2014
 
 

Resolución de problemas de la instalación y actualización de paquetes

En este apéndice, se muestra cómo tratar algunos errores que pueden surgir al instalar o actualizar paquetes. En este apéndice, también se proporcionan consejos para aumentar el rendimiento y minimizar los metadatos almacenados.

Pasos iniciales de resolución de problemas

Compruebe si el paquete que desea instalar está disponible en los editores configurados y si se puede instalar en esta imagen. La versión instalada de pkg:/entire y los orígenes del editor configurados en esta imagen constituyen información necesaria. Es posible que deba actualizar el paquete pkg:/entire. Es posible que deba modificar los orígenes del editor.

Para casi todos los problemas de instalación, primero se deben realizar las siguientes dos comprobaciones:

  • Compruebe qué versión del paquete de incorporación pkg:/entire está instalada.

  • Compruebe el origen del editor de paquetes.

Cuando haya determinado que los paquetes que necesita están disponibles en los editores configurados, realice los siguientes pasos a medida que avanza con la instalación:

  • Utilice las opciones -nv durante cualquier instalación o actualización para ver los cambios que se realizarán, por ejemplo, qué versiones de paquetes se instalarán o se actualizarán, y si se creará un nuevo entorno de inicio. La opción -v también muestra las notas de la versión que se aplican a esta operación de instalación o actualización específica.

  • Para recibir mensajes de error más detallados, especifique más información sobre el FMRI del paquete que desea instalar, incluida la versión y el editor.

Comprobación de la versión instalada de pkg:/entire

Utilice el comando pkg list para comprobar la versión del paquete de incorporación pkg:/entire instalado.

$ pkg list entire
NAME (PUBLISHER)                                  VERSION                    IFO
entire                                            0.5.11-0.175.2.0.0.34.0    i--
$ pkg list -Hv entire
pkg://solaris/entire@0.5.11,5.11-0.175.2.0.0.34.0:20140303T182643Z           i--

El paquete de incorporación pkg:/entire restringe las versiones de varios otros paquetes para ayudar a mantener una imagen de trabajo compatible. Consulte Paquetes de incorporación para obtener más información sobre los paquetes restringidos por los paquetes de incorporación.

No puede instalar o actualizar directamente un paquete que está restringido por el paquete de incorporación pkg:/entire. Para instalar o actualizar los paquetes que están restringidas por pkg:/entire, debe actualizar el paquete pkg:/entire. Para obtener más información, consulte No se pueden satisfacer las restricciones. En algunos casos, puede eliminar las restricciones, como se muestra en Actualización de un paquete restringido por una incorporación.

Comprobación del contenido de los orígenes del editor configurado

Utilice el comando pkg publisher para comprobar los orígenes del editor de paquetes.

$ pkg publisher
PUBLISHER  TYPE    STATUS P LOCATION
solaris    origin  online F http://pkg.oracle.com/solaris/release/

Para un URI seguro, asegúrese de tener instalados correctamente la clave y el certificado necesarios, y utilice las opciones -k y -c al configurar el editor.

Si el sitio requiere un proxy para las ubicaciones externas, utilice la opción --proxy del comando pkg set-publisher para configurar ese proxy. Consulte Especificación de un proxy para obtener instrucciones.

Utilice el comando pkg publisher publisher para ver más información sobre el editor, como la clave, el certificado y el proxy.

Si no se puede acceder al URI de origen de cualquiera de los editores activados, la operación de instalación o actualización falla, incluso si se puede acceder a las ubicaciones necesarias. Si no puede solucionar el problema que impide acceder a la ubicación, puede eliminar el origen inaccesible con pkg set-publisher -G o desactivar ese editor con pkg set-publisher --disable. Si ya no necesita este editor, utilice pkg unset-publisher para eliminarlo.

Compruebe si el origen de editor de paquetes contiene los paquetes que necesita. Por ejemplo, si el origen del editor solaris está definido en el repositorio de versión pública, no puede actualizar un paquete a una versión que únicamente está disponible en un repositorio de soporte.

Comprobación de la disponibilidad de los paquetes instalados requeridos

Para actualizar paquetes instalados, instalar paquetes que dependen de paquetes instalados o instalar una zona no global, el repositorio que configura como el origen del editor debe contener al menos el mismo software que está instalado en la imagen. El repositorio también puede contener software más antiguo o más reciente, pero debe contener el mismo software que está instalado en la imagen.

Utilice el comandopkgrepo list, no el comando pkg list, al comprobar los paquetes instalados. El comando pkg list siempre muestra los paquetes instalados, incluso si el paquete no está disponible en cualquier origen de editor configurado.

El siguiente comando muestra que el repositorio especificado no es un origen de editor adecuado para esta imagen porque la versión instalada de pkg:/entire no está disponible en ese origen.

$ pkg list entire
NAME (PUBLISHER)                                  VERSION                    IFO
entire                                            0.5.11-0.175.2.0.0.34.0    i--
$ pkg publisher
PUBLISHER  TYPE    STATUS P LOCATION
solaris    origin  online F http://pkg.oracle.com/solaris/release/
$ pkgrepo list -Hs http://pkg.oracle.com/solaris/release entire@0.5.11-0.175.2.0.0.34.0
pkgrepo list: The following pattern(s) did not match any packages:
        entire@0.5.11-0.175.2.0.0.34.0

Si el paquete que necesita no se muestra, intente ejecutar el comando pkgrepo refresh y, luego, vuelva a ejecutar el comando pkgrepo list.

El siguiente comando muestra que la versión instalada de pkg:/entire está disponible en el repositorio especificado:

$ pkgrepo list -Hs /export/IPSpkgrepos/Solaris entire@0.5.11-0.175.2.0.0.34.0
solaris   entire                   0.5.11,5.11-0.175.2.0.0.34.0:20140303T182643Z

Si un paquete necesario no está disponible en un editor configurado, pero está disponible en otro repositorio de origen necesario, realice una de las siguientes acciones:

  • Utilice la opción -g del comando pkg set-publisher para agregar este origen para el editor solaris.

  • Utilice las opciones -g y -G del comando pkg set-publisher para cambiar el origen del editor solaris.

  • Si un editor diferente proporciona el paquete que necesita, utilice el comando pkg set-publisher para agregar ese editor.

  • Utilice la opción -g del comando de instalación (install, uninstall, update, change-variant y change-facet) para agregar temporalmente un repositorio al final de la lista de repositorios para buscar.

Comprobación de la disponibilidad de los paquetes que desea instalar

Utilice el siguiente comando para comprobar si el paquete que desea instalar está disponible en los editores configurados. Si va a actualizar un paquete, la versión de ese paquete que está instalada y la versión a la cual desea actualizarse deberían estar disponibles.

$ pkg list -af package

Si el paquete que necesita no se muestra, intente ejecutar el comando pkg refresh y, luego, vuelva a ejecutar el comando pkg list.

Si el paquete que necesita aún no se muestra, agregue un nuevo editor o un nuevo origen de editor.

Comprobación de la capacidad de instalación en esta imagen de los paquetes que desea instalar

Si la versión del paquete que desea se muestra al usar las opciones -af, use el mismo comando nuevamente sin la opción -f:

$ pkg list -a package

Si la versión que desea aún se muestra, este paquete no está restringido y debe poder instalarlo sin instalar o actualizar otros paquetes.

Si la versión que desea no se muestra, esta versión está disponible en los editores configurados pero no se puede instalar en esta imagen. Entre los motivos por los cuales un paquete no se puede instalar, se incluyen los siguientes:

  • El paquete está restringido por la configuración de las variantes o facetas.

  • La versión del paquete está restringida por un paquete de incorporación. Puede actualizar el paquete restringido o, en algunos casos, puede flexibilizar la restricción. Para obtener más información, consulte No se pueden satisfacer las restricciones.

  • La versión del paquete está restringida por una operación de congelación. Ejecute el comando pkg freeze. La congelación puede estar en un paquete que tiene una dependencia require en una versión diferente del paquete que desea instalar y no se pueden instalar ambas versiones al mismo tiempo.

Nuevo intento de instalación

Si especifica un paquete para instalar o actualizar y no especifica el editor, el primer editor en el orden de búsqueda que proporciona un paquete que coincide con el FMRI o el patrón de ese paquete se utiliza como origen de instalación. Si ese editor no proporciona una versión del paquete que se puede instalar en esta imagen, fallará la operación de instalación, incluso si otro editor activado proporciona una versión del paquete que se puede instalar en esta imagen. Realice una de las siguientes acciones para solucionar este problema:

  • Especifique el editor en el FMRI del paquete. Por ejemplo, especifique pkg://solaris/ delante del nombre completo del paquete.

  • Utilice la opción -P del comando pkg set-publisher para establecer el editor que proporciona la versión del paquete que desea utilizar como el primer editor en el orden de búsqueda.

Utilice las opciones -nv durante cualquier instalación o actualización para ver los cambios que se realizarán, por ejemplo, qué versiones de paquetes se instalarán o se actualizarán, y si se creará un nuevo entorno de inicio. La opción -v también muestra las notas de la versión que se aplican a esta operación de instalación o actualización específica.

  • Si no aparece ningún mensaje de error al utilizar las opciones -nv, ejecute el comando nuevamente sin la opción -n para realizar la instalación o la actualización. Considere si debe especificar opciones para realizar la instalación en un nuevo entorno de inicio o para crear una copia de seguridad del entorno de inicio en caso de que no se cree un nuevo entorno de inicio ni una copia de seguridad del entorno de inicio de manera predeterminada.

  • Si recibe mensajes de error, realice las siguientes acciones:

    • Especifique más datos sobre la versión que desea en el FMRI del paquete para obtener más información que lo ayude a diagnosticar y solucionar el problema.

    • Especifique más opciones -v (por ejemplo, -nvv).

    • Utilice el comando pkg history. La opción -l proporciona FMRI completos de los paquetes cambiados. Consulte Visualización del historial de operaciones.

Si especifica varios paquetes para instalación o actualización, o si omite la especificación del paquete para una operación de actualización, la operación de instalación o actualización falla si cualquiera de los paquetes no se puede instalar en esta imagen. Si un paquete no se puede instalar, no se instala ningún paquete. Para obtener más información, invoque el comando de nuevo y especifique únicamente el paquete que no se puede instalar, especifique el FMRI completo de ese paquete y proporcione una o varias opciones -v.

No se puede acceder al editor o el repositorio

Los errores que se describen en esta sección están relacionados con la incapacidad para acceder a la URI del editor.

No se puede acceder al repositorio de paquetes

Mensajes de error:

  • Couldn't resolve host

  • Unable to contact any configured publishers

  • Unable to contact valid package repository

  • Origin URIs do not appear to point to a valid pkg repository

Utilice el comando pkg publisher para mostrar los URI de los editores. Consulte la columna LOCATION o la fila URI en los ejemplos siguientes:

$ pkg publisher
PUBLISHER                   TYPE     STATUS P LOCATION
solaris                     origin   online F http://pkg.oracle.com/solaris/release/
$ pkg publisher solaris
            Publisher: solaris
                Alias:
           Origin URI: http://pkg.oracle.com/solaris/release/

Si se muestran editores que ya no utiliza, desactive o elimine esos editores:

$ pkg set-publisher --disable publisher
$ pkg unset-publisher publisher

Para los editores que utiliza, asegúrese de que los URI son correctos.

  • Intente ver cada ubicación de origen de editor en un explorador o haga ping a esa ubicación.

  • Intente enumerar los paquetes en ese origen con el comando pkgrepo list.

Si una ubicación de origen no es correcta, use juntas las opciones -G y -g del comando pkg set-publisher para cambiar el URI.

Si un editor tiene más de un origen, se debe poder acceder a todas las ubicaciones del origen. Si no se puede acceder a alguna ubicación de origen, utilice la opción -G del comando pkg set-publisher para eliminar ese origen.

Si un editor está configurado en una zona no global, se debe poder acceder a todas las ubicaciones para ese editor desde la zona global, incluso si ese editor no está configurado en la zona global.

Problema de certificado SSL

Mensaje de error: SSL certificate problem, verify that the CA cert is OK

Realice una o varias de las siguientes acciones si el comando pkg muestra un mensaje sobre un problema de certificado SSL.

  • Asegúrese de que estén instalados la clave y certificado requeridos. La información sobre cómo obtener una clave y un certificado debería estar incluida, junto con otra información sobre el repositorio seguro.

  • Utilice las opciones -k y -c con el comando pkg set-publisher para especificar las ubicaciones de instalación de la clave y el certificado. El comando pkg publisher para el editor muestra dónde el editor espera encontrar la clave y certificado. Si la clave y el certificado se instalan en otro lugar, vuelva a configurar el editor y especifique los valores correctos para las opciones -k y -c.

    En el siguiente ejemplo, la salida muestra las rutas de los archivos de clave y certificado, y muestra que caducó el certificado para el origen configurado para el editor abc:

    $ pkg publisher abc
     Publisher: abc
    Origin URI: https://pkg.oracle.com/abc/release/
       SSL Key: /var/pkg/ssl/keyfile
      SSL Cert: /var/pkg/ssl/certfile
    Certificate '/var/pkg/ssl/certfile' has expired.
      Please install a valid certificate.
  • Asegúrese de que la fecha y hora sean correctas en el sistema.

  • Refresque el servicio SMF ca-certificates:

    $ svcadm refresh svc:/system/ca-certificates:default
  • Si el URI de origen contiene oc-mgmt, póngase en contacto con el representante de asistencia técnica de Ops Center.


Notas -  Un repositorio que requiere un certificado SSL de cliente no se puede especificar mediante una opción -g con un comando de instalación pkg.

No se encuentra la ubicación

Mensaje de error: http protocol error: code: 404 reason: Not Found

Compruebe los URI del editor, como se describe en No se puede acceder al repositorio de paquetes. Si puede visualizar la ubicación o hacer ping en la ubicación correctamente, utilice el comando pkgrepo list para intentar mostrar uno de los paquetes en el repositorio.

Si el URI es un repositorio basado en archivos, asegúrese de que el usuario pkg5srv pueda leer los archivos y los directorios. Puede usar el comando pkgrepo verify para comprobar si usuario pkg5srv puede leer el repositorio.

Compruebe la configuración del servidor web. Consulte el Capítulo 5, Ejecución del servidor de depósitos detrás de un servidor web de Copia y creación de repositorios de paquetes en Oracle Solaris 11.2 , para obtener más información.

  • Si ejecuta el servidor de depósitos de paquetes detrás de una instancia del servidor Web Apache, incluya el siguiente valor en su archivo httpd.conf para no decodificar las barras diagonales codificadas:

    AllowEncodedSlashes NoDecode
  • Defina el servidor de depósitos pkg/proxy_base en la URL del repositorio en el servidor Apache:

    $ svccfg -s pkg/server:repo setprop pkg/proxy_base = astring: http://pkg.example.com/myrepo
    $ svcadm refresh pkg/server:repo

Si el problema se produce en una zona no global, realice los siguientes pasos de resolución de problemas. Recuerde que las zonas no globales utilizan un repositorio de paquetes especial denominado repositorio del sistema. Consulte la página del comando man pkg.sysrepo(1M) para obtener más información sobre el repositorio del sistema.

  • No puede utilizar la opción -g en una imagen con zonas no globales. En su lugar, utilice el comando pkg set-publisher para agregar de forma explícita ese editor y origen.

  • Asegúrese de que el usuario pkg5srv pueda leer los archivos y directorios en los repositorios basados en archivos. El usuario pkg5srv ejecuta la instancia de Apache system-repository. Consulte Relación entre las zonas globales y las zonas no globales para obtener ejemplos de cómo buscar la ubicación de un repositorio del sistema.

  • Si el sitio requiere un proxy para acceder a las ubicaciones externas, asegúrese de que el proxy se haya especificado correctamente para los editores de la zona global. Utilice la opción --proxy del comando pkg set-publisher para especificar el proxy. Consulte Especificación de un proxy para obtener instrucciones. Una forma de comprobar el proxy es asegurarse de no obtener mensajes de error del comando pkg refresh --full.

  • Asegúrese de que el servicio svc:/application/pkg/system-repository:default esté en línea en la zona global.

  • Asegúrese de que el servicio svc:/application/pkg/zones-proxyd:default esté en línea en la zona global y el servicio svc:/application/pkg/zones-proxy-client:default esté en línea en la zona no global.

  • En la zona global, consulte los archivos log en /var/log/pkg/sysrepo/* para buscar errores de permisos informados al intentar leer los archivos. Busque errores 404 o 503 informados en /var/log/pkg/sysrepo/access_log. Busque errores informados en /var/log/pkg/sysrepo/error_log.

  • En la zona global, verifique que localhost esté definido en 127.0.0.1 en el archivo /etc/hosts. Verifique que Listen esté definido en 127.0.0.1:1008 y que ServerName esté definido en 127.0.0.1 en el archivo /system/volatile/pkg/sysrepo/sysrepo_httpd.conf.

  • En la zona global, compruebe si el archivo /system/volatile/pkg/sysrepo/sysrepo_httpd.conf contiene líneas de alias con el siguiente formato:

    $ grep Alias /system/volatile/pkg/sysrepo/sysrepo_httpd.conf
    WSGIScriptAlias /wsgi_p5p /etc/pkg/sysrepo/sysrepo_p5p.py

    Si el archivo sysrepo_httpd.conf no tiene líneas de alias, reinicie el servicio sysrepo:

    $ svcadm restart svc:/application/pkg/system-repository:default

El servicio no está disponible

Mensaje de error: http protocol error: code: 503 reason: Service Unavailable

Utilice el comando pkg publisher para buscar la ubicación del repositorio de paquetes que intenta utilizar y examinar los servicios SMF en ese sistema. Utilice el siguiente comando para identificar las instancias de servicio SMF del repositorio de paquetes que están activadas pero no en ejecución y las instancias activadas que impiden que otra instancia activada se ejecute:

$ svcs -xv pkg/server
svc:/application/pkg/server: default (image packaging repository)
 State: online since July 25, 2013 07:53:50 AM PDT
   See: /var/svc/log/application-pkg-server:default.log
Impact: None.

Si alguno de los servicios informa un problema, consulte el archivo log que aparece en la salida de svcs para determinar el problema específico.

Asegúrese de que la propiedad inst_root, la propiedad port y otras propiedades estén configuradas correctamente.

$ svcprop -p pkg pkg/server:default
$ svcprop -p pkg/inst_root -p pkg/port pkg/server:default
/export/IPSpkgrepos/Solaris
80

Si es necesario, utilice el comando svccfg para restablecer los valores de las propiedades, como se muestra en el siguiente ejemplo:

$ svccfg -s pkg/server:default setprop pkg/port=1008

Utilice el comando svcadm para borrar, refrescar, reiniciar y activar la instancia de servicio, según sea necesario.

No hay actualizaciones disponibles

Mensaje de error: No updates available for this image

Si va a actualizar un paquete determinado, utilice el siguiente comando para mostrar qué versión de ese paquete está instalada en esta imagen. Si va a actualizar todos los paquetes instalados (pkg update sin paquetes especificados o con '*' especificado para el nombre del paquete), use pkg:/entire para package en estos comandos.

$ pkg list -v package

Si no hay ninguna versión instalada, utilice el comando pkg install, no el comando pkg update.

Si hay instalada una versión de package, utilice el siguiente comando para mostrar las versiones de package que están disponibles en los editores configurados:

$ pkg list -afv package

Si el paquete con el número de versión más alto ya está instalado, es posible que no existan versiones más recientes.

Si existe una versión más reciente, determine la ubicación del repositorio de paquetes donde está disponible la versión más reciente y utilice el comando pkg set-publisher para restablecer el URI de origen o agregar un URI de origen para el editor adecuado. Si es necesario, instale las claves y los certificados requeridos, y utilice las opciones -k y -c para especificarlos. Utilice el comando pkgrepo listpara verificar que la versión instalada del paquete también está disponible en los editores configurados.

Vuelva a ejecutar el comando pkg update y especifique las opciones -nv y la versión (o la palabra clave latest) en el FMRI de los paquetes que desea instalar, como se muestra en el siguiente ejemplo. Si proporciona más información en los nombres de los paquetes, por lo general, la salida del error ofrecerá más información.

$ pkg update -nv package@latest

No se puede instalar el paquete

Mensaje de error: No matching version of package can be installed

Utilice el siguiente comando para mostrar las versiones de package que están disponibles en los editores de paquetes configurados:

$ pkg list -afv package

Especifique más información sobre el FMRI del paquete que desea instalar. Es posible que la primera coincidencia encontrada no se pueda instalar en esta imagen, pero posiblemente la versión específica que desea instalar pueda instalarse. Si el FMRI más específico aún no se puede instalar, especificar más datos sobre el FMRI debería mostrar más información sobre el motivo por el cual el paquete no se puede instalar.

Verifique que la versión del paquete que desea instalar o actualizar no esté congelada. Utilice el comando pkg freeze sin argumentos para mostrar una lista de todos los paquetes cuyas versiones están congeladas.

Utilice el siguiente comando para mostrar qué versión del paquete pkg:/entire está instalada:

$ pkg list -v entire

No puede instalar o actualizar un paquete que está restringido por el paquete de incorporación pkg:/entire o por algún otro paquete de incorporación. Debe actualizar el paquete de incorporación. Para obtener más información, consulte No se pueden satisfacer las restricciones.

No se pueden satisfacer las restricciones

Mensaje de error: No solution was found to satisfy constraints

Este mensaje indica que intentó instalar una versión de un paquete que no coincide con la versión a la cual el paquete está restringido por un paquete de incorporación. Consulte Paquetes de incorporación para obtener información sobre los paquetes de incorporación y las restricciones.

Las incorporaciones restringen un conjunto de paquetes a las versiones que trabajan juntas para ayudar a mantener una imagen compatible. Por este motivo, no debe actualizar un paquete que está restringido por una incorporación. En cambio, debe actualizar el paquete de incorporación, lo que origina la actualización de todos los paquetes restringidos a un nuevo conjunto de versiones probadas en grupo.

Cuando los paquetes se modifican (por ejemplo, se actualizan), el cliente pkg examina los paquetes relacionados y sus dependencias. Si alguno de los paquetes dependientes no se puede instalar o actualizar, se produce un mensaje de error separado para cada paquete que tiene una dependencia en el paquete que no se puede instalar o actualizar. La forma más eficaz de gestionar un gran número de mensajes de error es examinar primero los mensajes de error con la mayor sangría.

Actualización de un paquete restringido por una incorporación

Mensajes de error:

  • No suitable version of installed package package found

  • All versions matching 'incorporate' dependency package are rejected

  • This version excluded by specified installation version

  • This version is excluded by installed incorporation

Para los paquetes restringidos por una incorporación, la mejor práctica es actualizar el paquete de incorporación y mantener todos los paquetes restringidos como un conjunto probado en grupo.

Si aún desea realizar una actualización a un solo paquete desde una incorporación, compruebe si ese paquete tiene una faceta version-lock definida en true. Si un paquete tiene una faceta version-lock asociada, puede desbloquear ese paquete de su incorporación. Defina la faceta version-lock en false para eliminar la restricción y, a continuación, vuelva a intentar instalar o actualizar el paquete. Especifique las opciones -nv y la versión del paquete que desea en el FMRI del nombre del paquete. Consulte también Flexibilización de restricciones de versiones especificadas por incorporaciones.

Ejemplo A-1  Desbloqueo y actualización de Java Runtime Environment

En el siguiente ejemplo, se muestra cómo actualizar el paquete runtime/java/jre-7. El paquete jre-7 está restringido por el paquete consolidation/java/java-incorporation y el paquete java-incorporation, a su vez, está restringido por el paquete de incorporación pkg:/entire.

El siguiente comando muestra que la versión 0.175.2.0.0.9.0 de jre-7 está instalada y que hay una versión más reciente disponible en los repositorios de paquetes configurados:

$ pkg list -af runtime/java/jre-7
NAME (PUBLISHER)                                  VERSION                    IFO
runtime/java/jre-7                                1.7.0.21-0.175.2.0.0.13.0  ---
runtime/java/jre-7                                1.7.0.17-0.175.2.0.0.9.0   i--

La eliminación de la opción -f muestra las versiones disponibles para actualización. La siguiente salida de pkg list muestra que no se puede instalar ninguna versión más reciente en esta imagen, y la salida del comando pkg update confirma este estado. La opción -n muestra los cambios que se realizarían, pero no realiza ningún cambio.

$ pkg list -a runtime/java/jre-7
NAME (PUBLISHER)                                  VERSION                    IFO
runtime/java/jre-7                                1.7.0.17-0.175.2.0.0.9.0   i--
$ pkg update -nv runtime/java/jre-7
No updates available for this image.

Para mostrar más información sobre el motivo por el cual este paquete no se puede actualizar, especifique la versión a la que desea actualizarse. La salida que se muestra en el siguiente ejemplo indica que el paquete java-incorporation@0.5.11,5.11-0.175.2.0.0.9.0 instalado no permite la instalación del paquete jre-7@1.7.0.21-0.175.2.0.0.13.0. El paquete java-incorporation@0.5.11,5.11-0.175.2.0.0.13.0 permitirá la instalación del paquete jre-7@1.7.0.21-0.175.2.0.0.13.0, pero el paquete de incorporación entire@0.5.11,5.11-0.175.2.0.0.12.0 instalado no permitirá la instalación del paquete jre-7@1.7.0.21-0.175.2.0.0.13.0.

$ pkg update -nv runtime/java/jre-7@1.7.0.21-0.175.2.0.0.13.0
pkg update: No solution was found to satisfy constraints

maintained incorporations:
  [output omitted]
  pkg://solaris/entire@0.5.11,5.11-0.175.2.0.0.12.0:20130415T172730Z

Plan Creation: dependency error(s) in proposed packages:
  [output omitted]
  No suitable version of required package pkg://solaris/consolidation/java/java-
incorporation@0.5.11,5.11-0.175.2.0.0.9.0:20130304T213946Z found:
    Reject:  pkg://solaris/consolidation/java/java-incorporation@0.5.11,5.11-0.1
75.2.0.0.9.0:20130304T213946Z
    Reason:  All versions matching 'incorporate' dependency pkg:/runtime/java/jr
e-7@1.7.0.17,5.11-0.175.2.0.0.9.0 are rejected
      Reject:  pkg://solaris/runtime/java/jre-7@1.7.0.17,5.11-0.175.2.0.0.9.0:20
130304T214022Z
      Reason:  This version excluded by specified installation version
        Reject:  pkg://solaris/runtime/java/jre-7@1.7.0.17,5.11-0.175.2.0.0.9.0:
20130304T214022Z
        Reason:  This version excluded by specified installation version
      Reject:  pkg://solaris/consolidation/java/java-incorporation@0.5.11,5.11-0
.175.2.0.0.13.0:20130429T145534Z
      Reason:  This version is excluded by installed incorporation pkg://solaris
/entire@0.5.11,5.11-0.175.2.0.0.12.0:20130415T172730Z

Plan Creation: Errors in installed packages due to proposed changes:
  [output omitted]
  No suitable version of installed package pkg://solaris/consolidation/java/java
-incorporation@0.5.11,5.11-0.175.2.0.0.9.0:20130304T213946Z found
    Reject:  pkg://solaris/consolidation/java/java-incorporation@0.5.11,5.11-0.1
75.2.0.0.9.0:20130304T213946Z
    Reason:  All versions matching 'incorporate' dependency pkg:/runtime/java/jr
e-7@1.7.0.17,5.11-0.175.2.0.0.9.0 are rejected
      Reject:  pkg://solaris/runtime/java/jre-7@1.7.0.17,5.11-0.175.2.0.0.9.0:20
130304T214022Z
      Reason:  This version excluded by specified installation version
    Reject:  pkg://solaris/consolidation/java/java-incorporation@0.5.11,5.11-0.1
75.2.0.0.13.0:20130429T145534Z
    Reason:  This version is excluded by installed incorporation pkg://solaris/e
ntire@0.5.11,5.11-0.175.2.0.0.12.0:20130415T172730Z

La mejor práctica es actualizar el paquete entire. La actualización del paquete entire actualizará el paquete java-incorporation y este último actualizará el paquete jre-7. En este ejemplo, debe actualizar los paquetes Java y no se puede mover la imagen a una versión actualizada de entire.

La versión del software Java que se puede instalar está restringida por la configuración de la faceta version-lock para el paquete de incorporación Java. Para actualizar el software Java sin actualizar otro software, desbloquee la faceta version-lock del paquete de incorporación Java y, a continuación, actualice el paquete de incorporación Java. Para obtener más información sobre las facetas con bloqueo de versión, consulte Flexibilización de restricciones de versiones especificadas por incorporaciones.

El siguiente comando cambia a false el valor de la faceta version-lock del paquete java-incorporation instalado. El número de paquetes para actualizar es el número de paquetes instalados en esta imagen, ya que todos los paquetes en la imagen se comprueban para determinar esta faceta.

$ pkg change-facet \
facet.version-lock.consolidation/java/java-incorporation=false
            Packages to update: 856
     Variants/Facets to change:   1
       Create boot environment:  No
Create backup boot environment: Yes

Planning linked: 1/1 done
PHASE                                          ITEMS
Removing old actions                             1/1
Updating image state                            Done
Creating fast lookup database                   Done
Reading search index                            Done
Building new search index                    856/856

El siguiente comando muestra que se cambió el valor de la faceta:

$ pkg facet
FACETS                                                   VALUE
facet.version-lock.consolidation/java/java-incorporation False

Dado que el siguiente comando especifica la opción -n, este comando muestra lo que cambiará, pero no realiza ningún cambio en la imagen.

$ pkg update -nv java-incorporation
            Packages to update:         2
     Estimated space available:  80.91 GB
Estimated space to be consumed: 687.28 MB
       Create boot environment:        No
Create backup boot environment:       Yes
          Rebuild boot archive:        No

Changed packages:
solaris
  consolidation/java/java-incorporation
    0.5.11,5.11-0.175.2.0.0.9.0:20130304T213946Z -> 0.5.11,5.11-0.175.2.0.0.13.0
:20130429T145534Z
  runtime/java/jre-7
    1.7.0.17,5.11-0.175.2.0.0.9.0:20130304T214022Z -> 1.7.0.21,5.11-0.175.2.0.0.
13.0:20130429T145626Z

El siguiente comando lleva a cabo la actualización real. Este comando realiza la actualización en la imagen actual. Puede utilizar la opción --be-name para realizar la actualización en un nuevo entorno de inicio.

$ pkg update -v java-incorporation
            Packages to update:         2
     Estimated space available:  80.91 GB
Estimated space to be consumed: 687.28 MB
       Create boot environment:        No
Create backup boot environment:       Yes
          Rebuild boot archive:        No

Changed packages:
solaris
  consolidation/java/java-incorporation
    0.5.11,5.11-0.175.2.0.0.9.0:20130304T213946Z -> 0.5.11,5.11-0.175.2.0.0.13.0
:20130429T145534Z
  runtime/java/jre-7
    1.7.0.17,5.11-0.175.2.0.0.9.0:20130304T214022Z -> 1.7.0.21,5.11-0.175.2.0.0.
13.0:20130429T145626Z
DOWNLOAD                                PKGS         FILES    XFER (MB)   SPEED
Completed                                2/2       171/171    61.9/61.9    0B/s

PHASE                                          ITEMS
Removing old actions                             7/7
Installing new actions                           6/6
Updating modified actions                    170/170
Updating package state database                 Done
Updating package cache                           2/2
Updating image state                            Done
Creating fast lookup database                   Done
Reading search index                            Done
Updating search index                            2/2

El siguiente comando verifica que el paquete jre-7 se actualiza en esta imagen. Si realiza la actualización en un nuevo entorno de inicio, use beadm mount y pkg -R para realizar la siguiente comprobación en ese nuevo entorno de inicio.

$ pkg list jre-7
NAME (PUBLISHER)                                  VERSION                    IFO
runtime/java/jre-7                                1.7.0.21-0.175.2.0.0.13.0  i--

Actualización de una incorporación cuando no se puede encontrar una dependencia adecuada

Mensaje de error: A version for 'incorporate' dependency cannot be found

Consulte Paquetes de incorporación para obtener información sobre los paquetes de incorporación y sus dependencias incorporate.

Algunos ejemplos de los motivos por los cuales es posible que no se actualice un paquete de incorporación incluyen los siguientes estados de una dependencia incorporate del paquete de incorporación:

  • El paquete dependiente se congeló en una versión diferente.

  • El paquete dependiente ya está instalado en una versión posterior.

  • El paquete dependiente se instala desde otro editor y ese editor es permanente.

Ejemplo A-2  Actualización de pkg:/entire cuando una dependencia está desbloqueada y se actualiza por separado

En el siguiente ejemplo, se intentan actualizar todos los paquetes instalados porque no se especifican nombres de paquetes. Uno de los paquetes instalados que esta operación intenta actualizar es el paquete de incorporación pkg:/entire. En este ejemplo, se muestra una dependencia incorporate de pkg:/entire que ya está instalada en una versión posterior.

$ pkg update --be-name s11.2
Creating Plan (Solver setup): /
pkg update: No solution was found to satisfy constraints
Plan Creation: Package solver has not found a solution to update to latest available versions.
This may indicate an overly constrained set of packages are installed.

latest incorporations:
[output omitted]
pkg://solaris/entire@0.5.11,5.11-0.175.2.0.0.10.0:20130318T181506Z

The following indicates why the system cannot update to the latest version:

No suitable version of required package pkg://solaris/entire@0.5.11,5.11-0.175.2
.0.0.10.0:20130318T181506Z found:
 Reject:  pkg://solaris/entire@0.5.11,5.11-0.175.2.0.0.10.0:20130318T181506Z
 Reason:  A version for 'incorporate' dependency on pkg:/consolidation/ub_javavm
/ub_javavm-incorporation@0.5.11,5.11-0.175.2.0.0.9.0 cannot be found

Este mensaje indica que la versión del paquete de incorporación pkg:/entire a la cual el sistema intentó actualizarse especifica una versión del paquete ub_javavm-incorporation que no se puede instalar. Dado que no se puede instalar un paquete, no se instala ningún paquete y falla la actualización.

Las técnicas siguientes pueden proporcionar más información sobre el motivo por el cual no puede instalarse el paquete ub_javavm-incorporation:

  • Utilice las opciones -v. Por ejemplo, utilice -v o -vv para obtener una salida más detallada.

  • Especifique un paquete para actualizar. Si proporciona una entrada más detallada, la mensajería suele ser más detallada. Por ejemplo, además del nombre del paquete, incluya la versión en el FMRI del paquete.

El siguiente comando incluye una opción -v y especifica la actualización al paquete entire@0.5.11,5.11-0.175.2.0.0.10.0, que se copia del mensaje anterior. Este comando también especifica la opción -n en lugar de la opción --be-name. La opción -n muestra lo que se va a realizar, pero no realiza ningún cambio en esta imagen.

$ pkg update -nv entire@0.5.11,5.11-0.175.2.0.0.10.0
Creating Plan (Solver setup): /
pkg update: No matching version of entire can be installed:
 Reject:  pkg://solaris/entire@0.5.11,5.11-0.175.2.0.0.10.0:20130318T181506Z
 Reason:  All versions matching 'require' dependency pkg:/consolidation/ub_javav
m/ub_javavm-incorporation are rejected
  Reject:  pkg://solaris/consolidation/ub_javavm/ub_javavm-incorporation@0.5.11,
5.11-0.151.0.1:20101105T053418Z
  pkg://solaris/consolidation/ub_javavm/ub_javavm-incorporation@0.5.11,5.11-0.17
5.0.0.0.2.0:20111019T144756Z
  pkg://solaris/consolidation/ub_javavm/ub_javavm-incorporation@0.5.11,5.11-0.17
5.0.10.1.0.0:20120920T143020Z
  Reason:  Excluded by proposed incorporation 'entire'
  Newer version pkg://solaris/consolidation/ub_javavm/ub_javavm-incorporation@0.
5.11,5.11-0.175.2.0.0.13.0:20130429T145201Z is already installed
  Reject:  pkg://solaris/consolidation/ub_javavm/ub_javavm-incorporation@0.5.11,
5.11-0.175.2.0.0.9.0:20130304T213739Z
  Reason:  Newer version pkg://solaris/consolidation/ub_javavm/ub_javavm-incorpo
ration@0.5.11,5.11-0.175.2.0.0.13.0:20130429T145201Z is already installed
 Reject:  pkg://solaris/consolidation/ub_javavm/ub_javavm-incorporation@0.5.11,5
.11-0.175.2.0.0.13.0:20130429T145201Z
 Reason:  Excluded by proposed incorporation 'entire'

Estos mensajes indican que la versión del paquete ub_javavm-incorporation que está instalada en esta imagen es más reciente que la versión especificada por el paquete de incorporación pkg:/entire que será instalada por la operación de actualización.

El siguiente comando muestra la versión del paquete ub_javavm-incorporation que está instalada.

$ pkg list ub_javavm-incorporation
NAME (PUBLISHER)                                  VERSION                    IFO
consolidation/ub_javavm/ub_javavm-incorporation   0.5.11-0.175.2.0.0.13.0    i--

El siguiente comando muestra la versión del paquete ub_javavm-incorporation especificada por el paquete de incorporación pkg:/entire al cual el sistema intentó actualizarse. La versión del paquete de incorporación pkg:/entire al cual el sistema intentó actualizarse se copia del primer mensaje "Reject" en la salida anterior. La opción -r busca este paquete en los repositorios de paquetes configurados, no en la imagen instalada.

$ pkg contents -Hrt depend \
-a facet.version-lock.consolidation/ub_javavm/ub_javavm-incorporation=true \
-o fmri entire@0.5.11,5.11-0.175.2.0.0.10.0
consolidation/ub_javavm/ub_javavm-incorporation@0.5.11-0.175.2.0.0.9.0

Para resolver este problema, puede indicarle a la operación de actualización que actualice todos los paquetes instalados, excepto determinados paquetes especificados. Utilice una o varias opciones --reject en el comando pkg update para realizar la actualización sin intentar actualizar los paquetes especificados en las opciones --reject. Se pueden utilizar comodines en argumentos --reject. En el siguiente comando, los paquetes que se rechazan se copian de los mensajes "Reject" anteriores que preceden al mensaje "Reason: Newer version is already installed".

$ pkg update -v --be-name s11.2 \
--reject 'consolidation/ub_javavm/ub_javavm-incorporation@0.5.11,5.11-0.151*' \
--reject 'consolidation/ub_javavm/ub_javavm-incorporation@0.5.11,5.11-0.175.0*' \
--reject 'consolidation/ub_javavm/ub_javavm-incorporation@0.5.11,5.11-0.175.2.0.0.9.0*'

Consejo  - Tenga cuidado al especificar argumentos --reject, ya que se desinstalarán todos los paquetes instalados que coincidan con el argumento --reject.

Actualización de una incorporación cuando no se permite una dependencia instalada

Mensajes de error:

  • The installed package package is not permissible

  • Excluded by proposed incorporation

Si recibe estos mensajes de error, package probablemente es un paquete principal del sistema operativo que se debe mantener sincronizado con otros paquetes principales del sistema operativo. Utilice el comando pkg facet para comprobar el valor de la faceta facet.version-lock.package. Si el valor de esta faceta version-lock es false, utilice el comando pkg change-facet para cambiar el valor de esta faceta a true y luego, vuelva a intentar la operación de actualización.

No se puede encontrar el paquete requerido

Mensaje de error: A version for 'require' dependency cannot be found

Si recibe un mensaje como el siguiente mensaje, que indica que no se puede encontrar un paquete requerido, compruebe si el paquete está disponible en los editores configurados.

pkg update: No solution was found to satisfy constraints
Plan Creation: Package solver has not found a solution to update to
latest available versions.
This may indicate an overly constrained set of packages are installed.
[output omitted]
No suitable version of required package package1 found:
Reject: package1
Reason: A version for 'require' dependency package2 cannot be found

Utilice el siguiente comando para mostrar si package2 está disponible en los editores de paquetes configurados:

$ pkg list -afv package2

Utilice el comando pkg publisher para comprobar la ubicación de origen del editor. El editor de este paquete se especifica después de pkg:// en el FMRI completo. Es posible que deba cambiar la ubicación de origen del editor. Si la ubicación es un repositorio de paquetes local, es posible que deba actualizar el repositorio.

Se rechazó el paquete requerido

Mensajes de error:

  • No solution was found to satisfy constraints

  • All versions matching 'require' dependency package are rejected

En la siguiente salida del comando pkg update, el mensaje de error inicial indica que no se puede encontrar una versión adecuada del paquete requerido desktop-incorporation. El motivo por el cual el paquete desktop-incorporation no es adecuado se debe a que no se encuentra uno de los paquetes dependientes. Dado que no se encuentra una versión adecuada, se rechaza el paquete desktop-incorporation. El comando pkg update falla porque la incorporación pkg:/entire requiere el paquete desktop-incorporation. El siguiente comando muestra que la incorporación pkg:/entire requiere el paquete desktop-incorporation:

$ pkg search -Hlo pkg.name require:consolidation/desktop/desktop-incorporation

El siguiente mensaje de error indica que no se puede encontrar una versión adecuada del paquete requerido python-extra-26. El motivo por el cual el paquete python-extra-26 no es adecuado se debe a que el paquete python-extra-26 requiere el paquete desktop-incorporation, y no se encontró una versión adecuada de desktop-incorporation.

Esta información muestra que la solución a este error de actualización es encontrar una forma de instalar la versión requerida del paquete desktop-incorporation.

pkg update: No solution was found to satisfy constraints

maintained incorporations:
  [output omitted]

Plan Creation: dependency error(s) in proposed packages:
  [output omitted]
  No suitable version of required package pkg://solaris/consolidation/desktop
/desktop-incorporation@0.5.11,5.11-0.175.2.0.0.26.0:20131028T145233Z found:
    Reject: pkg://solaris/consolidation/desktop/desktop-incorporation
@0.5.11,5.11-0.175.2.0.0.26.0:20131028T145233Z
    Reason: A version for 'incorporate' dependency on pkg:/library/python-2
/python-sexy-26@0.1.9-0.175.0.0.0.1.0 cannot be found
  No suitable version of required package pkg://solaris/library/python-2
/python-extra-26@2.6.4-0.175.1.0.0.15.0:201205014T200156Z found:
    Reject:  pkg://solaris/library/python-2/python-extra-26@
2.6.4-0.175.1.0.0.15.0:201205014T200156Z
    Reason: All versions matching 'require' dependency pkg:/consolidation
/desktop/desktop-incorporation are rejected
      Reject: pkg://solaris/consolidation/desktop/desktop-incorporation
@0.5.11,5.11-0.175.0.0.0.2.0:20111019T132128Z
  [output omitted]
pkg://solaris/consolidation/desktop/desktop-incorporation
@0.5.11,5.11-0.175.2.0.0.26.0:20131028T145233Z

Los siguientes comandos muestran que no se requiere el paquete que no se puede encontrar para el paquete desktop-incorporation requerido. El paquete python-sexy-26 está incorporado en el paquete desktop-incorporation, pero no se requiere.

$ pkg search -Hlo pkg.name require:library/python-2/python-sexy-26
$ pkg search -Hlo pkg.name incorporate:library/python-2/python-sexy-26
consolidation/desktop/desktop-incorporation

La dependencia incorporate indica que si se instala el paquete python-sexy-26, se debe instalar en la versión especificada. Sin embargo, dado que ningún paquete requiere el paquete python-sexy-26, no es necesario instalar el paquete python-sexy-26. Por lo tanto, una solución para este error de actualización es desinstalar el paquete python-sexy-26. Hay instalada una versión diferente de este paquete y la actualización no pudo encontrar la versión especificada por la incorporación desktop-incorporation. Si desinstala el paquete, no será necesario que el proceso de actualización encuentre el paquete actualizado.

Si necesita el paquete python-sexy-26 y no desea desinstalarlo, busque un repositorio de paquetes que proporcione pkg:/library/python-2 /python-sexy-26@0.1.9-0.175.0.0.0.1.0. Utilice el comando pkg set-publisher para agregar ese repositorio a las ubicaciones de origen del editor o utilice el comando pkgrecv para agregar ese paquete al origen del editor configurado.

Los paquetes no se actualizan según lo esperado

Mensaje de error: pkg update: The installed package package is not permissible.

Si utiliza comodines con una operación de actualización, es posible que no reciba ningún mensaje de error, aun si no se actualizaron algunos paquetes que deberían haberse actualizado. Posiblemente observe un mensaje de error si especifica un nombre de paquete sin comodines.

Por ejemplo, es posible que la siguiente operación de actualización se complete sin errores pero que no actualice ningún paquete, aunque usted haya verificado que hay paquetes más recientes disponibles en los editores configurados:

$ pkg update '*'

Para obtener más información, en lugar de utilizar el comodín, especifique la versión de pkg:/entire que desea actualizar:

$ pkg list -Hafv entire
pkg://solaris/entire@0.5.11,5.11-0.175.2.0.0.9.0:20130304T214506Z  ---
$ pkg update -nv pkg://solaris/entire@0.5.11,5.11-0.175.2.0.0.9.0:20130304T214506Z
Creating Plan (Solver setup): -
pkg update: The installed package compress/zip is not permissible.
  Reject:  pkg://solaris/compress/zip@3.0,5.11-0.175.2.0.0.7.0:20121119T070339Z
  Reason:  Excluded by proposed incorporation 'consolidation/userland/userland-incorporation'

En este ejemplo, el paquete compress/zip impide la actualización del paquete de incorporación userland-incorporation que, a su vez, impide la actualización de la incorporación pkg:/entire. El siguiente comando muestra más información sobre el paquete compress/zip:

$ pkg list compress/zip
NAME (PUBLISHER)  VERSION                   IFO
compress/zip      3.0-5.11-0.175.2.0.0.7.0  if-

Esta salida muestra que el paquete compress/zip está congelado. Dado que el paquete está congelado, no se puede actualizar.

$ pkg unfreeze compress/zip
compress/zip was unfrozen.

Con el paquete compress/zip descongelado, la operación pkg update '*' debería actualizar todos los paquetes de la imagen que tienen actualizaciones disponibles. Consulte Bloqueo de paquetes a una versión especificada para obtener más información sobre los comandos pkg freeze y pkg unfreeze.

El error pkg sync-linked que se muestra en No se puede instalar el paquete enlazado a la sincronización es similar, pero indica que un paquete en una zona no global impide la actualización.

No se puede instalar el paquete enlazado a la sincronización

Mensaje de error: pkg sync-linked: The installed package package is not permissible.

Un paquete sync-linked es un paquete en una zona no global. Es posible que vea un paquete rechazado debido a una discrepancia de versiones con la imagen principal.

Linked progress: -pkg: update failed (linked image exception(s)):

A 'sync-linked' operation failed for child 'zone:z1' with an unexpected
return value of 1 and generated the following output:

pkg sync-linked: The installed package package is not permissible.
  Reject:  package
  Reason:  Parent image has a incompatible newer version: package

Es posible que reciba este mensaje de incompatibilidad debido a los siguientes motivos:

  • Los paquetes principales del sistema operativo deben tener la misma versión en las zonas no globales y en la zona global. No puede actualizar estos paquetes de forma separada en una zona no global. Del mismo modo, si se congela cualquiera de estos paquetes en una zona no global, la actualización fallará para la zona global y para todas las zonas no globales.

    El siguiente comando muestra la lista de paquetes que deben permanecer sincronizados entre la zona global y las zonas no globales:

    $ pkg search -o pkg.name :depend:parent:
  • Si está actualizando un entorno de inicio que tiene zonas configuradas, no puede montar ese entorno de inicio y, luego, utilizar el comando pkg -R para actualizar ese entorno de inicio alternativo si la configuración del editor en el entorno de inicio alternativo es diferente de la configuración del editor en el entorno de inicio iniciado. Las zonas no globales en el entorno de inicio alternativo usan la configuración del editor en el entorno de inicio activo.

No se puede instalar la zona no global

Mensaje de error: The following pattern(s) did not match any allowable packages. Try using a different matching pattern, or refreshing publisher information

Los paquetes principales del sistema operativo deben tener la misma versión en las zonas no globales y en la zona global. Si el origen de editor solaris en esta imagen está configurado en un repositorio de paquetes que no contiene las mismas versiones de los paquetes del sistema que están instalados en la zona global, al intentar instalar una zona no global se produce el siguiente error:

$ zoneadm -z myzone install
The following ZFS file system(s) have been created:
    rpool/export/zones/myzone
Progress being logged to /var/log/zones/zoneadm.20131104T181301Z.myzone.install
       Image: Preparing at /export/zones/myzone/root.

AI Manifest: /tmp/manifest.xml.9daq.i
SC Profile: /usr/share/auto_install/sc_profiles/enable_sci.xml
  Zonename: myzone
Installation: Starting ...

            Creating IPS image
Startup linked: 1/1 done
            Installing packages from:
                solaris
                    origin:  http://pkg.oracle.com/solaris/release/
            Error occurred during execution of 'generated-transfer-4606-1' checkpoint.
            Failed Checkpoints:

            Checkpoint execution error:

                The following pattern(s) did not match any allowable packages. Try
                using a different matching pattern, or refreshing publisher information:

Installation: Failed.  See install log at /system/volatile/install.4606/install_log
ERROR: auto-install failed.

Para instalar una zona no global, el repositorio que configuró como el origen de editor solaris debe contener al menos el mismo software del sistema que está instalado en la zona global donde está instalando la zona no global. El repositorio también puede contener software más antiguo o más reciente, pero debe contener el mismo software que está instalado en la zona global. El siguiente comando muestra que el repositorio /export/IPSpkgrepos/Solaris es un origen de editor adecuado para esta zona global porque contiene la misma versión del paquete pkg:/entire que está instalada en la zona global:

$ pkg list entire
NAME (PUBLISHER)      VERSION                   IFO
entire                0.5.11-0.175.2.0.0.26.0   i--
$ pkgrepo list -H -s /export/IPSpkgrepos/Solaris \
entire@0.5.11-0.175.2.0.0.26.0
solaris       entire       0.5.11-0.175.2.0.0.26.0:20131028T190148Z
$ pkg set-publisher -G '*' -M '*' -g /export/IPSpkgrepos/Solaris/ solaris

No se puede modificar la imagen

Mensaje de error: pkg: The image cannot be modified as it is currently in use by another package client

El mensaje de error debería incluir el nombre y el PID del cliente que tiene la imagen bloqueada, como se muestra en el siguiente ejemplo:

pkg: The image cannot be modified as it is currently in use by another package
client: pkg on cbusl0406l, pid 26604.

Vuelva a intentar el comando pkg una vez que se completa el proceso del paquete actual (proceso 26604 en este ejemplo). Si el proceso no se completa rápidamente, utilice ptree -a, por ejemplo, para empezar a examinar el proceso.

Es posible que el proceso del paquete que se está llevando a cabo corresponda a la comprobación de actualizaciones disponibles por parte de Update Manager. Consulte Uso de Update Manager para obtener más información sobre el trabajo cron y el servicio pkg/update de Update Manager.

Se recuperaron los archivos

El siguiente mensaje informativo está seguido por la ruta de los archivos que se recuperaron y la ubicación temporal a la cual se movieron los archivos:

The following unexpected or editable files and directories were
salvaged while executing the requested package operation; they
have been moved to the displayed location in the image:

Éste es un mensaje informativo que se puede ignorar o resolver, según sea necesario.

Los directorios se cuentan como referencia en IPS. Cuando el último paquete instalado en la imagen que se refiere explícita o implícitamente a un directorio ya no hace referencia a ese directorio, se elimina ese directorio. Si ese directorio contiene objetos del sistema de archivos desempaquetados, los elementos se mueven a $IMAGE_META/lost+found. Los objetos del sistema de archivos sin empaquetar son archivos y directorios que no fueron proporcionados por un paquete IPS. El valor de IMAGE_META generalmente es /var/pkg. Consulte la sección "Archivos" de la página del comando man pkg(5) para obtener información sobre el directorio IMAGE_META.

Minimización de los metadatos de imagen almacenados

El directorio /var/pkg contiene metadatos para la imagen. Este directorio puede llegar a ser grande. No elimine manualmente nada del directorio /var/pkg.

Asegúrese de que el valor de la propiedad de la imagen flush-content-cache-on-success esté definido en true. De manera predeterminada, el valor de la propiedad flush-content-cache-on-success es true. Cuando el valor de flush-content-cache-on-success es true, los archivos almacenados en caché se eliminan cuando las operaciones pkg install y pkg update se completan correctamente. Si la propiedad flush-content-cache-on-success está definida en false, puede usar el comando que se muestra en el siguiente ejemplo para restablecer el valor a true:

$ pkg property flush-content-cache-on-success
PROPERTY                       VALUE
flush-content-cache-on-success False
$ pkg set-property flush-content-cache-on-success true
$ pkg property -H flush-content-cache-on-success
flush-content-cache-on-success True

Si se vacía la caché de contenido (configuración de flush-content-cache-on-success en true), algunas de las operaciones de pkg pueden tardar más en completarse.

Las zonas no globales tienen una caché diferente, que puede definir con la opción -c de /usr/lib/pkg.sysrepo. Puede definir el tamaño máximo de esta caché con la opción -s. Consulte la página del comando man pkg.sysrepo(1M).

Aumento de rendimiento de la instalación de paquetes

Los siguientes pasos pueden ayudarlo a aumentar el rendimiento de la instalación y la actualización de paquetes:

  • Asegúrese de que la capacidad de la agrupación de almacenamiento ZFS sea menor que el 80%.

    $ zpool list
    NAME  SIZE ALLOC FREE CAP DEDUP HEALTH ALTROOT
    rpool 186G 75.2G 111G 40% 1.00x ONLINE -
  • Utilice un repositorio de paquetes local. Consulte Copia y creación de repositorios de paquetes en Oracle Solaris 11.2 .

  • Si http_proxy está configurado, compruebe el rendimiento del proxy.