Actualizar Gentoo
emerge — configuration — ebuild repository — dispatch-conf
world file — USE flags — ebuilds — profiles
upgrades — using testing packages — binary packages
tools — gentoolkit — eselect
Portage FAQ — cheat sheet — FAQ
all articles
Gentoo tiene su propia manera de actualizarse. Este documento explica cómo actualizar Gentoo, además de cómo actuar para mantener adecuadamente el sistema.
Es importante mantener Gentoo al día. Además de necesitar los últimos parches de seguridad, las instalaciones de Gentoo pueden desfasarse mucho con respecto a las versiones actuales y pueden volverse un poco complejas de actualizar.
Actualice Gentoo a diario o semanalmente para asegurarse de que la instalación reciba los últimos parches de seguridad. Esperar más de unas pocas semanas para actualizar puede complicar las cosas un poco más de lo necesario a la hora de hacerlo. Por favor, no sincronice los repositorios más de una vez al día para evitar saturar los servidores.
Cualquier instrucción que únicamente afecte a sistemas de diez o más años de edad no será almacenada aquí. Vea elhistorial de la página para versiones anteriores.
Acerca de la arquitectura y actualizaciones de Gentoo
Gentoo se diferencia de la mayoría de distribuciones Linux cuando se trata de actualizaciones. La mayoría tienen lanzamientos recurrentes cada pocos meses o años y pueden ser incluso eventos anticipados.
Gentoo, al contrario, es una distribución rolling release. No hace falta esperar a que salga un lanzamiento oficial para conseguir las versiones actuales de los paquetes; el software puede ser instalado una vez se vuelva estable. Gentoo fue diseñado desde el principio alrededor del concepto de actualizaciones rápidas e incrementales, y hay actualizaciones frecuentes del software de Gentoo, incluyendo paquetes nuevos y actualizados casi todos los días. Se puede encontrar más información específica a Gentoo en el preguntas frecuentes, que trata las secciones Gentoo y lanzamientos y qué hace a Gentoo distinta.
Una vez se instala el software, las actualizaciones normales mantendrán a todos los paquetes en su última versión disponible.
En raras ocasiones, cambios en el sistema núcleo, en algunos paquetes, cambios en los perfiles o ciertas actualizaciones de Portage podrían requerir de intervención manual durante o tras una actualización. Una entrada en las noticias será publicada en casos así de críticos, o será avisado después de la sincronización del repositorio Gentoo. Lea y siga siempre las entradas de las noticias y los mensajes de Portage.
Los perfiles son un elemento clave en un sistema Gentoo ya que definen la funcionalidad de su núcleo. Se crean nuevos perfiles cuando surgen cambios fundamentales en cuanto al funcionamiento de Gentoo. El perfil se selecciona durante la instalación según el uso que se le vaya a dar al sistema, y es solo cambiado, generalmente, si hace falta o para una actualización.
Actualizando paquetes
El Manual tiene información detallada sobre updating the Gentoo repository and on actualizar el sistema. Vea man emerge para información más exhaustiva. Vea sincronización de los repositorios para información completa sobre cómo usar emaint para sincronizar repositorios.
Es importante leer y seguir toda entrada de las noticias que pueda ser listada tras sincronizar un repositorio.
Para actualizar todos los paquetes instalados a sus versiones más recientes, primero refresque el repositorio Gentoo con emaint:
root #
emaint --auto sync
O, resumido:
root #
emaint -a sync
Esto podría mostrar mensajes que deben ser leídos y seguidos, sobre todo las entradas de las noticias previamente mencionadas. Si hay actualizaciones de archivos de configuración pendientes de una actualización anterior, podría recordar su actualización.
Ejecute emerge para actualizar todo el sistema, incluyendo dependencias:
root #
emerge --ask --verbose --update --deep --newuse @world
O, con opciones cortas:
root #
emerge -avuDN @world
--changed-use
puede usarse en vez de --newuse
, pero solo si no construyes paquetes binarios precompilados. --changed-use
no provocará una reinstalación cuando algún o algunos ajustes USE son desactivados o eliminados de un paquete. Vea actualizar paquetes en el repositorio de binarios.
--with-bdeps=y
también se puede usar para actualizar las dependencias utilizadas a la hora de compilar.
Preste atención a cualquier información dada por Portage al acabar la actualización. Parte de esta informació puede estar disponible en el registro de Portage.
Si Portage avisa de problemas de dependencias, usar la opción --backtrack=30
(o un número mayor) puede ayudar a veces. Por defecto, Portage tiene un límite relativamente bajo en cuando a cómo de lejos intentará resolver dependencias (por motivos de rendimiento). De vez en cuando, no es suficiente.
Cualquier cambio de archivos de configuración debe ser atendido. Esto puede ser manejado vía dispatch-conf:
root #
dispatch-conf
Limpiar tras una actualización
Después de actualizar, Portage recomienda ejecutar el comando emerge --depclean. Tenga cuidado al hacerlo, pues puede eliminar paquetes importantes (p. ej. código fuente del núcleo o kernel, un paquete virtual o dependencias opcionales cuando se ha instalado una alternativa).
Vea eliminar paquetes huérfanos para leer sobre el uso de emerge --depclean para desinstalar paquetes potencialmente no usados de forma segura. Vea también el preguntas frecuentes de Portage.
Instrucciones para actualizar el perfil
Lea la documentación relevante antes de hacer cualquier cambio de perfil.
Asegúrese de que el repositorio principal de Gentoo (el árbol Portage) ha sido sincronizado antes de hacer cualquier cambio de perfil.
Cuando esté disponible un nuevo perfil, Portage informará al usuario con una entrada de noticias (las nuevas entradas son listadas en nuestra web).
Si un sistema es demasiado viejo, puede darse el caso de que ponerlo al día no sea trivial. Quizá reinstalarlo desde cero sea más fácil.
Generalmente, no es obligatorio cambiar a un perfil nuevo cuando este es publicado. Los sistemas pueden seguir usando sus perfiles viejos, pues no dejarán de funcionar. Sin embargo, Gentoo recomienda encarecidamente actualizar a otro perfil cuando el usado se marque como obsoleto, ya que significará que los desarrolladores de Gentoo ya no le brindarán soporte.
Las actualizaciones de perfil se manejan manualmente. La manera de actualizar puede variar bastante dependiendo de los perfiles; depende de cómo de profundas son las modificaciones que se introducen en el perfil a cambiar. En el caso más simple, el/la usuario/a solo tendrá que usar la herramienta eselect para cambiar el enlace simbólico de /etc/portage/make.profile. El peor de los casos involucraría tener que recompilar el sistema entero desde cero, con reconfiguraciones significantes (si bien los cambios, a menudo, no son muy difíciles, además de estar bien explicados; lo importante es que se sigan las instrucciones al pie de la letra).
Los requerimientos exactos para migrar a un nuevo perfil están detallados en los nuevos items relevantes.
Instrucciones Generales
Este es un esquema genérico de lo que se hace para actualizar un perfil. Como se ha dicho anteriormente, las instrucciones específicas se darán en una entrada de noticias para cada perfil nuevo. Una actualización de perfil a menudo requiere intervención manual, más allá de simplemente cambiar la versión del perfil.
Existen subperfiles desktop (escritorio) para la mayoría de arquitecturas. Examine estos perfiles con cuidado ya que pueden servir mejor o peor a sus requisitos que los perfiles (predeterminados) extremadamente mínimos.
El subperfil de desarrollador está específicamente pensado para labores de desarrollo de Gentoo Linux. No tiene como objetivo configurar entornos generales de desarrollo.
Cambio de perfiles con eselect
Asegúrses de que ha leído los avisos de la sección anterior.
En primer lugar, lanzar emerge eselect. La utilidad eselect permite ver y seleccionar perfiles de forma sencilla, sin necesidad de crear o eliminar manualmente enlaces simbólicos.
root #
eselect profile list
root #
eselect profile set <número>
Cambio manual de perfiles
Asegúrese de haber leído los avisos de la sección anterior.
El cambio manual de perfiles sigue siendo posible:
root #
rm /etc/portage/make.profile
root #
cd /etc/portage
root #
ln -s ../../usr/portage/profiles/<perfil seleccionado> make.profile
Actualizar a un perfil 23.0
Vea la entrada de las noticias apropiada. Ahora mismo todas las instalaciones deberían estar usando el perfil 23.0, y la migración podría ser difícil.
Actualizar a un perfil 17.1
Vea la entrada de las noticias apropiada. Ahora mismo todas las instalaciones deberían estar usando el perfil 17.1, y la migración podría ser difícil.
Actualizar a un perfil 17.0
Vea la entrada de las noticias apropiada. Ahora mismo todas las instalaciones deberían estar usando el perfil 17.1, y la migración podría ser difícil.
Actualizar sistemas antiguos
A veces un sistema puede ser demasiado viejo para ser fácilmente actualizable. Es posible actualizar manualmente un sistema muy viejo, pero quizá sea mejor empezar de cero y después copiar configuraciones y archivos del sistema viejo al nuevo.
Aquí hay una guía por encima sobre cómo actualizar un sistema viejo. Puede ver otro método aquí.
Sinopsis
La idea del enfoque de esta actualización es que vamos a crear una jaula chroot intermedia de construcción en la que extraeremos un stage3 reciente. A continuación, utilizando las herramientas disponibles en la jaula del stage3, actualizaremos los paquetes del sistema vivo.
Las órdenes descritas abajo pueden ser incompletas y deben servir más como guía que como instrucciones de trabajo. A menos que el enfoque esté claro, podría resultar más rápido hacer una copia de respaldo de los ficheros y reinstalar Gentoo.
Preparar la jaula chroot intermedia para la construcción
En primer lugar creamos la localización de la jaula intermedia de construcción, digamos /mnt/build y extraemos un archivo stage3 reciente en ella.
root #
mkdir -p /mnt/build
root #
tar -xf /ruta/a/stage3-arquitectura-fecha.tar.bz2 -C /mnt/build
root #
mount --rbind /dev /mnt/build/dev
root #
mount --rbind /proc /mnt/build/proc
root #
mount --rbind /sys /mnt/build/sys
A continuación creamos un punto de montaje dentro de este entorno chroot, en el cual montaremos el entorno vivo (antiguo) con la opción bind.
root #
mkdir -p /mnt/build/mnt/host
root #
mount --rbind / /mnt/build/mnt/host
Ahora también se puede acceder al sistema vivo (antiguo) a través de /mnt/build/mnt/host. Esto nos permitirá acceder al sistema vivo (antiguo) y actualizar los paquetes incluso cuando están dentro de la jaula chroot intermedia de construcción.
Red, chroot y actualización
La nueva instalación necesita acceder a la red, por lo tanto, copie la información relacionada a través de la red:
root #
cp -L /etc/resolv.conf /mnt/build/etc/
Ahora entramos en la jaula chroot a la localización intermedia de construcción y comenzamos a actualizar paquetes capitales en el sistema vivo hasta que podamos continuar con la actualización del sistema vivo desde el propio sistema (en lugar de hacerlo a través de la jaula chroot intermedia de construcción):
root #
chroot /mnt/build
root #
source /etc/profile
root #
export PS1="(chroot) ${PS1}"
(chroot) root #
emerge --sync
Puede ser una buen idea asegurarse que el perfil y la configuración de Portage sean compatibles entre el (antiguo) sistema en vivo (live system) y chroot.
Ahora comience a construir paquetes en el sistema vivo (anterior). Si Portage es demasiado antiguo o no existe, es una buena idea comenzar por él:
(chroot) root #
emerge --root=/mnt/host --config-root=/mnt/host --verbose --oneshot sys-apps/portage
Mantenga abierta esta sesión enjaulada e intente actualizar el sistema vivo (anterior). Cuando obtenga fallos en la construcción, podrá utilizar esta sesión chroot para actualizar los paquetes utilizando las herramientas de construcción disponibles en la jaula intermedia de construcción (la cual incluye versiones recientes de sys-libs/glibc, sys-devel/gcc, etc.). Se pueden añadir herramientas a la jaula de construcción si es necesario.
¡No olvide añadir
--root=/mnt/host --config-root=/mnt/host
a todas las órdenes emerge lanzadas dentro de la jaula chroot! De lo contrario es la propia jaula chroot la que se actualizará en lugar del (antiguo) sistema vivo.En algunas instalaciones puede que sea necesario actualizar los ficheros de configuración para instalar nuevo software. Hacer los cambios en el entorno chroot.
Para tener el sistema completamente actualizado antes de salir del raíz, construir el conjuto @world
(todos los paquetes) dentro de (antiguo) sistema vivo:
(chroot) root #
emerge --root=/mnt/host --config-root=/mnt/host --update --newuse --deep --ask @world
Una vez finalizado, el sistema debería estar actualizado.
Véase también
- Actualización de sistemas Gentoo viejos
- ¿Puedo actualizar Gentoo de una versión a otra sin reinstalar?
- Chuleta de actualizaciones
- Actualizaciones según el Manual
- Instalación
Recursos externos
This page is based on a document formerly found on our main website gentoo.org.
The following people contributed to the original document: Gregorio Guidi, Chris Gianelloni, Joshua Saddler
They are listed here because wiki history does not allow for any external attribution. If you edit the wiki article, please do not add yourself here; your contributions are recorded on each article's associated history page.