Omita una actualización específica en emerge -auvD world

30

¿Hay una manera simple de saltear una actualización determinada emerge -auvD world?

Por ejemplo, actualmente hay un roto media-sound/teamspeak-server-bin-3.0.5-r1 marcado como estable en el árbol de portage que rompe toda la actualización ya que ese paquete es el primero en la lista. Por supuesto, podría simplemente enmascarar esta versión usando el package.maskarchivo, pero preferiría una variable de entorno o un interruptor de línea de comandos para omitirla ahora mismo; de todos modos, probablemente se solucionará pronto.

Tenga en cuenta que no quiero usar emerge -auvD1 list of working packages(es decir, solo actualizar los otros paquetes especificando todos sus nombres).

ThiefMaster
fuente

Respuestas:

38

Parece que la --excludeopción hace esto:

--exclude ATOMS
Una lista separada por espacios de nombres de paquetes o átomos de ranura. Emerge no instalará ningún paquete ebuild o binario que coincida con ninguno de los átomos del paquete dado.

Entonces esto hizo el trabajo para mí:

emerge -auvD --exclude=media-sound/teamspeak-server-bin world
ThiefMaster
fuente
No he podido encontrar un ejemplo de alguien que excluya varios paquetes en una declaración, así que para referencia: cada paquete requiere una --excludeetiqueta afaik. emerge --deep --update @world -av --exclude=chromium --exclude=firefox.
NuclearPeon
12

Si no quieres enmascararlo, puedes usar la --keep-goingopción. Eso hace que emerge restablezca su lista y continúe, sin el paquete fallido en la lista.

Keith
fuente
3

La respuesta de ThiefMaster es el camino correcto, pero hay otra opción, que creo que mejora la respuesta de Keith . Es decir, con su respuesta, la emergencia se probará y puede llevar tiempo. En caso de que sepa que el primer paquete es problemático porque acaba de encontrar un problema, puede usar --resumey --skipfirst:

--resume(-r)

Reanuda la lista de fusión más reciente que se ha cancelado debido a un error. Esto reutiliza los argumentos y las opciones que se dieron con el comando original que se reanuda, y el usuario también puede proporcionar opciones adicionales al llamar --resume. Es un error proporcionar átomos o conjuntos como argumentos --resume, ya que en su lugar se utilizan los argumentos del comando reanudado. Tenga en cuenta que esta operación solo devolverá un error en caso de falla. Si no hay nada que hacer para portage, entonces portage saldrá con un mensaje y una condición de éxito. Una lista de reanudación persistirá hasta que se haya completado en su totalidad o hasta que otra lista de fusión cancelada la reemplace. El historial de currículum es capaz de almacenar dos listas de fusión. Una vez que se completa una lista de reanudación, es posible invocar--resumeuna vez más para reanudar una lista anterior. Las listas de currículum se almacenan /var/cache/edb/mtimedby se pueden descartar explícitamente al ejecutarlas emaint --fix cleanresume(consulte emaint (1)).

--skipfirst

Esta opción solo es válida cuando se usa con --resume. Elimina el primer paquete de la lista de currículums. Las dependencias se vuelven a calcular para los paquetes restantes y cualquiera que tenga dependencias insatisfechas o que estén enmascaradas se eliminará automáticamente. Consulte también la --keep-goingopción relacionada .

equaeghe
fuente