====== Les paquets masqués ======
{{:wiki:travaux.png|:wiki:travaux.png}}
>**Sujet** : Les paquets masqués ("masked packages") \\
>**Distribution** : [[documentation:Gentoo]] \\
>**Niveau** : Intermédiaire \\
>**Auteur** : [[utilisateurs:Tenshi]] \\
===== Introduction =====
Des paquets dit "masqués" (masked packages) ne seront pourront pas être installés sur votre système tant que vous n'aurez pas effectué des actions spécifiques.
===== Masquer un paquet =====
==== Ancienne méthode ====
Un paquet peut être masqué en ajoutant une entrée dans ''/usr/portage/profiles/package.mask''. Autrefois, c'était la seule façon de cacher un paquet. Si vous souhaitez installer un paquet figurant dans ''package.mask'', il faudra commenter ce paquet dans le fichier. Noter que ''package.mask'' est écrasé par ''emerge sync'', vos modifications n'y survivront donc pas. Vous pouvez également masquer des paquets problématiques grâce à ce fichier.
==== Nouvelle méthode ====
La nouvelle façon de faire pour masquer des paquets est de déclarer des ''KEYWORDS'' dans ''ebuild''.
Pour chaque architecture (x86, ppc, sparc, sparc64, alpha), un ''ebuild'' peut être marqué ''-arch'', ce qui veut dire "Ne marche pas", ''~arch'' qui signifie instable, ou ''arch'' pour stable. Vous pouvez modifier votre niveau de tolérance face aux ''ebuilds'' instable en définissant ''ACCEPT_KEYWORDS'' dans ''/etc/make.conf''. Par exemple, ''ACCEPT_KEYWORDS="~x86"'' va accepter les paquets instables sur une architecture x86. Par défaut, seul les paquets stable sont tolérés.
''ACCEPT_KEYWORDS'' peut aussi être modifié en ligne de commande. Par exemple :
ACCEPT_KEYWORDS="~x86" emerge -pv unstablepackage
=== Portage ===
Comme décrit dans la page de manuel de ''portage'', depuis Portage 2.0.50, vous pouvez créer une entrée dans ''/etc/portage/package.keyword'' pour gérer des autorisations par paquet.
category/package ~arch
Si vous acceptez généralement ''~arch'' dans votre ''make.conf'' et que vous voulez faire une exception pour un paquet particulier, afin que seul le paquet stable soit considéré, la syntaxe est un peu obscure :
category/package -~arch arch
Vous pouvez également transmettre le chemin complet de l' ''ebuild'' à ''emerge'', ce qui surpassera tous les masquages. C'est donc un moyen rapide pour installer un paquet masqué. Mais cette méthode n'ajoute pas le paquet dans ''world'', il n'est donc pas recommandé de l'utiliser sans bonnes raisons. Cela ne va également pas masquer les dépendances, qui signifiera messages d'erreurs FIXME. N'utilisez cette méthode que dans le cas où vous voulez faire quelque chose contredisant votre profil système, comme d'installer la version 2.95 de ''gcc'' sur un système récent.
Si vous utilisez Portage >= 2.0.48, il y a une autre option pour installer des paquets masqués qui ne demande pas d'éditer ''package.mask''. Vous pouvez ajouter l'entrée ''category/package'' dans ''/etc/portage/packake.unmask'', qui, lui, survivra à un ''emerge sync''.
Vous pouvez aussi masquer des paquets si vous le souhaitez. Avec une version de Portage antérieure à la 2.0.48, le fichier à éditer est ''/etc/portage/profiles/package.mask''. Pour les versions plus récentes, le fichier est ''/etc/portage/package.mask''.
Pour avoir un compte-rendu des versions valide pour un paquet, vous pouvez utiliser la commande ''etcat'', qui est inclut dans le paquet ''gentoolkit'' :
etcat -v package