Ajout et mise à jour de logiciels dans Oracle® Solaris 11.2

Quitter la vue de l'impression

Mis à jour : Juillet 2014
 
 

Annulation de l'installation de certains packages compris dans un package de groupe

Utilisez la commande pkg avoid pour éviter d'installer certains packages donnés s'ils sont la cible d'une dépendance group. Vous avez toujours la possibilité d'installer explicitement un package compatible avec l'image, même si ce package est sur la liste "avoid" des packages à éviter. Lorsqu'un package figurant sur la liste "avoid" des packages à éviter est installé, il est supprimé de la liste "avoid". La commande pkg avoid vous permet de ne pas installer certains packages donnés d'un package de groupe lorsque vous installez ce package de groupe.

Sans argument, la commande pkg avoid affiche chaque package évité avec tout package ayant une dépendance de type group sur ce package.

Avec les packages spécifiés, la commande pkg avoid place les noms des packages qui correspondent actuellement aux schémas spécifiés sur la liste des packages à éviter. Seuls les packages qui ne sont pas installés peuvent être évités. Si un package est actuellement la cible d'une dépendance du groupe, sa désinstallation le place dans la liste avoid.

Les packages qui se trouvent sur la liste avoid sont installés si nécessaire pour satisfaire une dépendance require et par conséquent supprimés de cette liste avoid. Si cette dépendance require est supprimée, le package est désinstallé et remonté sur la liste "avoid".

Utilisez la commande pkg unavoid pour supprimer les packages spécifiés dans la liste des packages à éviter.

Les packages dans la liste des packages à éviter qui correspondent à la dépendance de type group d'un package installé ne peuvent pas être supprimés de cette liste avec la sous-commande unavoid. Pour supprimer de cette liste un package qui correspond à une dépendance de groupe, installez le package.

Exemple 5-5  Ajout et suppression de packages dans la liste Avoid

La sortie de la commande suivante indique que le package de groupe group/feature/amp n'est pas installé. Certains des packages qui font partie de ce package de groupe sont installés parce qu'ils ont été installés de manière explicite ou en tant que dépendances require d'autres packages. Utilisez l'option -r à l'aide de la commande pkg contents parce que le package spécifié n'est pas installé.

$ 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

La commande suivante place l'un des packages non installés et appartenant à ce package de groupe dans la liste "avoid". Le package de groupe n'est pas indiqué dans la liste "avoid" car il n'est pas installé.

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

Les commandes suivantes indiquent que le package évité n'est pas installé lorsque le package de groupe est installé. L'option -r n'est pas utilisée avec la commande pkg contents parce que le package spécifié est installé.

$ 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

Après l'installation du package de groupe, le package de groupe est indiqué dans la liste "avoid".

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

La commande pkg unavoid n'entraîne pas le retrait d'un package de la liste "avoid" si ce package fait partie d'un package de groupe installé. Pour retirer un tel package de la liste "avoid", vous devez l'installer.

$ 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
$

Vous ne pouvez pas placer un package sur la liste "avoid" s'il est déjà installé. Le package est placé sur la liste "avoid" si vous le désinstallez.

$ 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')

Si un package faisant partie d'un package de groupe est désinstallé, il est automatiquement placé sur la liste "avoid".

$ 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 le package de groupe est désinstallé, les packages évités restent sur la liste "avoid", mais la liste "avoid" n'indique plus leur association avec le package de groupe.

$ 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
$