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

Salir de la Vista de impresión

Actualización: Julio de 2014
 
 

Cómo evitar instalar algunos paquetes en un paquete de grupo

Utilice el comando pkg avoid para evitar instalar paquetes especificados si son el destino de una dependencia group. Siempre puede instalar explícitamente un paquete compatible con la imagen, incluso si ese paquete se encuentra en la lista para evitar. La instalación de un paquete que se encuentra en la lista para evitar elimina ese paquete de la lista. El comando pkg avoid permite evitar la instalación de paquetes especificados que son parte de un paquete de grupo al instalar ese paquete de grupo.

Sin argumentos, el comando pkg avoid muestra cada paquete que se evitó, junto con los paquetes que tienen una dependencia group en ese paquete.

Con los paquetes especificados, el comando pkg avoid coloca los nombres de paquetes que actualmente coinciden con los patrones especificados en la lista para evitar. Sólo se pueden evitar los paquetes que no están instalados actualmente. Si un paquete actualmente es el destino de una dependencia de grupo, su desinstalación lo coloca en la lista para evitar.

Los paquetes que están en la lista para evitar se instalan, si es necesario, para satisfacer una dependencia require y, por lo tanto, se eliminan de la lista para evitar. Si esa dependencia require se elimina, el paquete se desinstala y se coloca nuevamente en la lista para evitar.

Utilice el comando pkg unavoid para eliminar explícitamente los paquetes especificados de la lista para evitar.

Los paquetes de la lista para evitar que coinciden la dependencia de grupo de un paquete instalado no se pueden eliminar de la lista para evitar con el subcomando unavoid. Para eliminar un paquete que coincide con una dependencia de grupo de la lista para evitar, instale el paquete.

Ejemplo 5-5  Agregación y eliminación de paquetes de la lista para evitar

La siguiente salida del comando muestra que el paquete de grupo group/feature/amp no está instalado. Algunos de los paquetes que forman parte de ese paquete de grupo están instalados porque se instalaron explícitamente o como dependencias require de otros paquetes. Utilice la opción -r con el comando pkg contents porque el paquete especificado no está instalado.

$ pkg list -a group/feature/amp
NAME (PUBLISHER)                                  VERSION                    IFO
group/feature/amp                                 0.5.11-0.175.2.0.0.33.0    ---
$ pkg list -a `pkg contents -o fmri -Hrt depend -a type=group group/feature/amp`
NAME (PUBLISHER)                                  VERSION                    IFO
database/mysql-51                                 5.1.37-0.175.2.0.0.34.0    ---
web/php-52                                        5.2.17-0.175.2.0.0.34.0    i--
web/php-52/extension/php-apc                      3.0.19-0.175.2.0.0.34.0    i--
web/php-52/extension/php-mysql                    5.2.17-0.175.2.0.0.34.0    i--
web/server/apache-22                              2.2.26-0.175.2.0.0.34.0    i--
web/server/apache-22/module/apache-dtrace         0.3.1-0.175.2.0.0.34.0     ---
web/server/apache-22/module/apache-fcgid          2.3.9-0.175.2.0.0.34.0     ---
web/server/apache-22/module/apache-php5           5.2.17-0.175.1.0.0.18      --r

El siguiente comando coloca uno de los paquetes que no está instalado y que pertenece a este paquete de grupo en la lista para evitar. El paquete de grupo no aparece en la lista para evitar porque no está instalado.

$ pkg avoid apache-fcgid
$ pkg avoid
    web/server/apache-22/module/apache-fcgid

Los comandos siguientes muestran que el paquete evitado no se instala cuando se instala el paquete de grupo. La opción -r no se utiliza con el comando pkg contents porque el paquete especificado está instalado.

$ pkg install group/feature/amp
$ pkg list -a `pkg contents -o fmri -Ht depend -a type=group group/feature/amp`
NAME (PUBLISHER)                                  VERSION                    IFO
database/mysql-51                                 5.1.37-0.175.2.0.0.34.0    i--
web/php-52                                        5.2.17-0.175.2.0.0.34.0    i--
web/php-52/extension/php-apc                      3.0.19-0.175.2.0.0.34.0    i--
web/php-52/extension/php-mysql                    5.2.17-0.175.2.0.0.34.0    i--
web/server/apache-22                              2.2.26-0.175.2.0.0.34.0    i--
web/server/apache-22/module/apache-dtrace         0.3.1-0.175.2.0.0.34.0     i--
web/server/apache-22/module/apache-fcgid          2.3.9-0.175.2.0.0.34.0     ---
web/server/apache-22/module/apache-php5           5.2.17-0.175.1.0.0.18      i-r

Después de instalar el paquete de grupo, este aparecerá en la lista para evitar.

$ pkg avoid
    web/server/apache-22/module/apache-fcgid (group dependency of 'group/feature/amp')

El comando pkg unavoid no elimina un paquete de la lista para evitar si ese paquete pertenece a un paquete de grupo instalado. Para eliminar este tipo de paquete de la lista para evitar, instale el paquete.

$ pkg unavoid apache-fcgid
pkg unavoid: The following packages are a target of group dependencies; use install to unavoid these:
    web/server/apache-22/module/apache-fcgid
$ pkg install apache-fcgid
$ pkg avoid
$

No puede colocar un paquete en la lista para evitar si el paquete ya está instalado. El paquete se coloca en la lista para evitar si lo desinstala.

$ pkg avoid apache-fcgid
pkg avoid: The following packages are already installed in this image; use uninstall to avoid these:
    web/server/apache-22/module/apache-fcgid
$ pkg uninstall apache-fcgid
$ pkg avoid
    web/server/apache-22/module/apache-fcgid (group dependency of 'group/feature/amp')

La desinstalación de un paquete que forma parte de un paquete de grupo coloca automáticamente el paquete en la lista para evitar.

$ pkg uninstall database/mysql-51
$ pkg avoid
    database/mysql-51 (group dependency of 'group/feature/amp')
    web/server/apache-22/module/apache-fcgid (group dependency of 'group/feature/amp')

Si se desinstala el paquete de grupo, los paquetes evitados permanecen en la lista para evitar, pero esta lista ya no indica su asociación con el paquete de grupo.

$ pkg uninstall group/feature/amp
$ pkg avoid
    database/mysql-51
    web/server/apache-22/module/apache-fcgid
$ pkg unavoid database/mysql-51 apache-fcgid
$ pkg avoid
$