Ignorer une mise à niveau spécifique dans le monde emerge -auvD

28

Existe-t-il un moyen simple de passer une mise à niveau donnée dans emerge -auvD world?

Par exemple, il existe actuellement un cassé media-sound/teamspeak-server-bin-3.0.5-r1 marqué comme stable dans l'arborescence de portage, ce qui interrompt la mise à niveau car ce package est le premier de la liste. Bien sûr, je pourrais simplement masquer cette version en utilisant le package.mask fichier, mais je préférerais qu'une variable d'environnement ou un commutateur de ligne de commande l'ignore seulement pour l'instant - il sera probablement corrigé bientôt de toute façon.

Notez que je fais ne pas vouloir utiliser emerge -auvD1 list of working packages (c’est-à-dire mettre à jour uniquement les autres packages en spécifiant tous leurs noms)

ThiefMaster
la source

Réponses:

36

On dirait que le --exclude L'option fait ceci:

--exclude ATOMS
Une liste de noms de paquets ou d’atomes d’emplacement séparés par des espaces. Emerge n'installe aucun paquet binaire ou ebuild qui correspond à l'un des atomes du paquet donnés.

Donc, cela a fait le travail pour moi:

emerge -auvD --exclude=media-sound/teamspeak-server-bin world
ThiefMaster
la source
Je n'ai pas été en mesure de trouver un exemple d'exclusion de plusieurs packages dans une seule instruction. --exclude tag autant que je sache. emerge --deep --update @world -av --exclude=chromium --exclude=firefox.
NuclearPeon
11

Si vous ne voulez pas le masquer, vous pouvez utiliser le --keep-going option. Cela permet à emerge de réinitialiser sa liste et de continuer, sans le package en échec dans la liste.

Keith
la source
3

La réponse de ThiefMaster est la bonne façon de faire, mais il y a une autre option, que je pense améliorer sur La réponse de Keith . À savoir, avec sa réponse l'émergence sera essayé et peut prendre du temps. Si vous savez que le premier package est problématique car vous venez de rencontrer un problème, vous pouvez utiliser --resume et --skipfirst:

--resume(-r)

Reprend la liste de fusion la plus récente qui a été abandonnée à cause d'une erreur. Ceci réutilise les arguments et les options donnés avec la commande d'origine en cours de reprise. L'utilisateur peut également fournir des options supplémentaires lors de l'appel. --resume. C’est une erreur de fournir des atomes ou des ensembles comme arguments à --resume, puisque les arguments de la commande reprise sont utilisés à la place. Veuillez noter que cette opération ne renverra une erreur qu'en cas d'échec. S'il n'y a rien à faire pour le portage, celui-ci se termine avec un message et une condition de réussite. Une liste de CV persistera jusqu'à ce qu'elle soit entièrement terminée ou jusqu'à ce qu'une autre liste de fusion annulée le remplace. L'historique des CV est capable de stocker deux listes de fusion. À la fin d’une liste de CV, il est possible d’appeler --resume encore une fois afin de reprendre une liste plus ancienne. Les listes de CV sont stockées dans /var/cache/edb/mtimedb, et peuvent être explicitement écartés en exécutant emaint --fix cleanresume (voir emaint (1)).

--skipfirst

Cette option n’est valide que si elle est utilisée avec --resume. Il supprime le premier package de la liste de CV. Les dépendances sont recalculées pour les paquets restants et ceux qui ont des dépendances non satisfaites ou qui sont masqués seront automatiquement supprimés. Voir aussi les connexes --keep-going option.

equaeghe
la source