Actualizar Gentoo

From Gentoo Wiki
Jump to: navigation, search
This page is a translated version of the page Upgrading Gentoo and the translation is 100% complete.

Other languages:
English • ‎español • ‎français • ‎italiano • ‎日本語 • ‎한국어 • ‎português do Brasil • ‎русский • ‎中文(中国大陆)‎

Este documento explica cómo las nuevas versiones de Gentoo afectan a instalaciones ya existentes.

Actualizaciones

Filosofía

Aquí en la tierra de Gentoo, el concepto de actualización es muy distinto comparado al resto del mundo Linux. Es un hecho conocido que Gentoo no está familiarizado con la forma "clásica" de actualizar software: esperar una nueva versión, descargarla, grabarla, ponerla en el lector de CDROM y luego seguir las instrucciones de actualización.

Los usuarios de Gentoo ya saben sin embargo que este proceso es extremadamente frustrante para aquellos usuarios avanzados que quieren tener su sistema siempre a la última. Seguramente incluso usuarios avanzados de otras distribuciones tengan la misma sensación, dada la popularidad y expansión de herramientas como apt o apt-rpm que hacen posible disponer de actualizaciones de forma rápida y frecuente. Sin embargo, ninguna distribución es más adecuada que Gentoo para satisfacer a este tipo de usuarios exigentes. Desde el principio Gentoo se diseñó en torno al concepto de actualizaciones rápidas e incrementales.

Idealmente los usuarios instalaría el software una primera vez y nunca se tendrían que preocupar por nuevas versiones: simplemente seguir las instrucciones de en Una introducción a Portage en el Manual de Gentoo que explica cómo mantener el sistema al día. Aunque esa es la forma con la que normalmente funcionan las cosas, a veces los cambios se hacen en los paquetes base del sistema los cuales requieren de una actualización manual.

Versiones y perfiles

Una pregunta que se repite sobre el proceso de publicación de versiones de Gentoo es: "¿Por qué liberar nuevas versiones frecuentemente si no están pensadas para ofrecer a sus usuarios la actualización del software?". Hay varias razones:

  • Una nueva versión supone nuevos CDs de Instalación con errores corregidos y nuevas funcionalidades
  • Una nueva versión proporciona un conjunto actualizado de paquetes GRP, por lo que aquellos usuarios que elijan "el modo rápido" de instalación (stage3 + paquetes precompilados) terminarán con un sistema que no está pasado de moda
  • Por último, una nueva versión puede, de cuando en cuando, implementar algunas funcionalidades que no eran compatibles en versiones anteriores

Cuando una versión incluye nuevas funcionalidades anteriormente incompatibles o proporciona una serie de paquetes y configuraciones críticas que modifican intensamente el comportamiento del sistema, decimos que dicha versión ofrece un nuevo "perfil".

Un perfil (profile) es una serie de ficheros de configuración almacenados en un subdirectorio dentro de /usr/portage/profiles que definen cosas como los ficheros ebuild que se consideran paquetes system, los ajustes USE por defecto, el mapeo por defecto de los paquetes virtuales y la arquitectura en la que se ejecuta el sistema.

El perfil en uso se determina por el enlace simbólico /etc/portage/make.profile el cual apunta a un subdirectorio dentro de /usr/portage/profiles donde se almacenan todos los perfiles. Por ejemplo, el perfil por defecto de la versión 13.0 para x86 se puede encontrar en /usr/portage/profiles/default/linux/x86/13.0. Los ficheros del directorio precedente también forman parte del perfil (y, por lo tanto, se comparten entre diferentes subperfiles diferentes). Ésta es la razón por la que los llamamos perfiles en cascada.

Los perfiles anticuados se guardan en /usr/portage/profiles junto con los actuales pero marcados como obsoletos. Cuando eso sucede, se añade un fichero llamado deprecated dentro del directorio del perfil obsoleto. El contenido de este fichero es el nombre del perfil al cual debería "actualizarse". Portage emplea esta información para avisar a los administradores automáticamente cuando deben actualizar a un nuevo perfil.

Hay varias razones por la que se puede crear un nuevo perfil nuevo: la publicación de nuevas versiones de paquetes principales (como sys-apps/baselayout , sys-devel/gcc o sys-libs/glibc) que son incompatibles con versiones previas, un cambio en los ajustes USE por defecto o en la relación entre los paquetes virtuales y los paquetes utilizados, o tal vez un cambio en la configuración que afecta a todo el sistema.

Mantenerse al día con nuevas versiones

Versiones sin cambios de perfil

Si se anuncia una nueva versión de Gentoo que no incluye un nuevo perfil entonces se puede aparentar con seguridad que nunca ha ocurrido. :)

Cuando se actualizan los paquetes instalados tal y como se explica en el manual de Gentoo, entonces el sistema quedará exactamente igual que si hubiera reinstalado utilizando la nueva versión.

Versiones con cambio de perfil

Si una nueva versión (por ejemplo la 13.0 para x86) añade un perfil nuevo, entonces se tendrá la posibilidad de migrar a ese nuevo perfil.

Generalmente estas migraciones no son obligatorias y los sistemas pueden continuar utilizando el perfil antiguo, simplemente se deben actualizar los paquetes tal y como se explica en el manual de Gentoo.

Sin embargo, Gentoo recomienda encarecidamente la actualización del perfil si éste quedara obsoleto. Cuando ésto ocurre, significa que los desarrolladores de Gentoo no planean ofrecer soporte.

Cuando la migración a un nuevo perfil es algo aparente, entonces se debe realizar la actualización de forma manual. El modo de actualizar puede variar significativamente entre una versión y otra, depende del nivel de importancia de las modificaciones introducidas en el nuevo perfil.

En el más simple de los casos, los usuarios únicamente tendrán que cambiar el enlace simbólico /etc/portage/make.profile. En el peor de los casos, puede que tengan que recompilar el sistema completo desde cero mientras hace un afinado baile vudú. La migración normalmente está cubierta en las notas de cada nueva versión. Las instrucciones necesarias se detallan más adelante en esta guía.

Perfiles soportados

Para ver la lista de perfiles soportados, lanzar eselect (que se puede instalar utilizando emerge eselect) como sigue:

root #eselect profile list

Actualizar desde sistemas antiguos

Algunos sistemas son tan antiguos que no es puede simplemente cambiar el perfil. Los nuevos perfiles podrían necesitar versiones más recientes de Portage u otro software que no se puede instalar debido a que las definiciones de los paquetes (ebuilds) para esas versiones antiguas del software ya no están disponibles.

En este caso, el sistema debe recibir en primer lugar instantáneas del árbol de Portage más antiguas y actualizar al menos Portage (pero es preferible que se actualicen todos los paquetes del conjunto system), se incrementa gradualmente la fecha de las instantáneas del árbol Portage hasta que sea lo suficientemente reciente para poder seguir de nuevo las instrucciones de cambio de perfil:

root #mv /usr/portage /usr/portage.latest
root #tar xjpf /path/to/portage-20090720.tar.bz2 -C /usr
root #emerge -u portage

Las instantáneas antiguas a menudo están disponibles en algunos servidores réplica en Internet o en localizaciones específicas para este propósito. Se recomienda verificar la integridad de estos ficheros para asegurarse de que no fueron modificados:

root #gpg --verify portage-20090720.tar.bz2.gpgsig portage-20090720.tar.bz2

Aunque las claves de firmado podrían haber expirado, la firma debería ser correta aún.

Actualizar desde sistemas (demasiado) antiguos

En ocasiones, los sistemas son tan antiguos que es complicado actualizarlos. En el camino para su actualización puede que se requieran versiones intermedias de software (como portage) que ya no existen, y por tanto se podría necesitar una actualización del árbol de portage en pasos (por ejemplo actualizaciones incrementales del árbol con pasos de tres o cuatro meses).

Para actualizar estos sistemas, se puede utilizar un stage3 reciente para poner al día el sistema. Las instrucciones para realizar esto se dan en la sección Actualizar sistemas antiguos.

Instrucciones para actualizar el perfil

Instrucciones generales

Importante
Asegúrese de que el repositorio principal de Gentoo (el árbol Portage) se ha sincronizado antes de realizar cualquier cambio al perfil.

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>

De todos modos es posible cambiar los perfiles manualmente:

root #rm /etc/portage/make.profile
root #cd /etc/portage
root #ln -s ../../usr/portage/profiles/<perfil seleccionado> make.profile
Nota
Existen subperfiles desktop y server para la mayoría de arquitecturas. Examine estos perfiles con cuidado ya que pueden servir mejor a los requerimientos que los perfiles por defecto que son extremadamente mínimos.
Nota
El subperfil de desarrollador está específicamente pensado para labores de desarrollo de Gentoo Linux. No tiene como objetivo configurar entornos generales de desarrollo.

Actualizar a 2008.0, 2007.0 ó 2006.1

Recuerde que si se selecciona una actualización desde estos perfiles, estos esperan a que el sistema esté configurado a una localización por defecto; concretamente que UNICODE="yes" esté definido en /etc/rc.conf. Para que esto funcione, se deben crear unas localizaciones Unicode para el sistema. Por favor, lea el artículo sobre UTF-8 para aprender a crear las localizaciones adecuadas.

Como alternativa, si no se desea definir localizaciones, entonces el usuario debería especificar UNICODE="no" en /etc/rc.conf y volver a hacer emerge de sys-apps/baselayout (o esperar hasta la próxima actualización de baselayout) con el ajuste USE -unicode. Esto se puede conseguir mediante:


root #echo "sys-apps/baselayout -unicode" >> /etc/portage/package.use
root #emerge --ask sys-apps/baselayout
  • O definirlo globlalmente para todos los paquetes añadiéndolo a la variable USE en /etc/portage/make.conf:
ARCHIVO /etc/portage/make.confDeshabilitar el soporte para unicode de forma global
USE="-unicode"
root #emerge --ask sys-apps/baselayout
Nota
Los usuarios que están actualizando a un perfil 2007.0 en la arquitectura Sparc necesitarán seguir la guía de actualización de GCC ya que gcc-4 es el compilador por defecto.

Por último, siga las instrucciones generales de para actualizar el perfil.

Actualizar a 2006.0

Para cambiar al perfil 2006.0, apunte el enlace simbólico /etc/portage/make.profile a la nueva ubicación. Asegúrese de que Portage está actualizado antes de cambiar el perfil.

root #rm /etc/portage/make.profile
root #ln -s ../usr/portage/profiles/<selected profile> /etc/portage/make.profile

alpha. Los usuarios que utilicen un núcleo 2.4 o no quieran usar NPTL, deberían escoger el perfil default-linux/alpha/no-nptl. Dispone de más información en las notas de la versión para alpha.

ppc - La unión de los perfiles ppc32 y ppc64 es ya un hecho. El perfil ppc32 ha cambiado de tal modo que ahora se presenta sencillo y genérico, para cualquier propósito, ubicado en default-linux/ppc/ppc32. Este nuevo perfil está optimizado para uso de escritorio y se halla en default-linux/ppc/ppc32/2006.0. Hay varios subperfiles disponibles para procesadores G3 y G4; también se dispone de G3/Pegasos y G4/Pegasos para la estación de trabajo Pegasos Open Desktop. Asegúrese de elegir el subperfil adecuado para el sistema cuando migre a un perfil 2006.0.

sparc - Actualizar al perfil 2006.0/2.4 para los núcleos de la rama 2.4 requiere la intervención del usuario (desinstalar cosas de java), además de un emerge -e @world debido a la actualización de gcc. Actualizar al perfil 2006.0 para los núcleos de la rama 2.6 que no estén considerados como estables requiere también una entrada en /etc/portage package.unmask para desenmascarar una versión 2.6 de sys-kernel/gentoo-sources además de una reconstrucción completa.

Resto de arquitecturas - No hay cambios importantes en este perfil. No es necesaria ninguna acción especial para realizar el cambio.

Actualizar a 2005.1

Para cambiar al perfil 2005.1, apunte el enlace simbólico /etc/portage/make.profile a la nueva ubicación. Asegúrese de que Portage está actualizado antes de cambiar el perfil.

root #rm /etc/portage/make.profile
root #ln -s ../usr/portage/profiles/<perfil seleccionado> /etc/portage/make.profile

Todas las arquitecturas -No hay cambios esenciales en este perfil. No se necesitan realizar acciones específicas.

ppc - Con la versión 2005.1, los perfiles ppc y ppc64 se han unido y creado un número de subperfiles para subarquitecturas concretas. Asegúrese de elegir el subperfil correcto para el sistema cuando migre a un perfil 2005.1.

Actualizar a 2005.0

Con la llegada de la versión 2005.0, varias arquitecturas han decidido definir perfiles adicionales. Asegúrese de leer la descripción de dichos perfiles antes de decidir migrar a uno de ellos. Ahora la mayoría de arquitecturas también utilizan por defecto la rama 2.6 del núcleo cuando era la 2.4 la que se escogía anteriormente.

Algunas arquitecturas necesitan unas cuantas acciones más para llevar a cabo el cambio de un perfil a otro. Si es ese el caso, las guías paso a paso están enlazadas desde la siguiente tabla.

Perfil Descripción Guía específica de actualización
default-linux/alpha/2005.0 Default Alpha 2005.0 profile for 2.6 kernels
default-linux/alpha/2005.0/2.4 Alpha 2005.0 profile for 2.4 kernels
default-linux/amd64/2005.0 Default AMD64 2005.0 profile for 2.6 kernels
default-linux/amd64/2005.0/no-multilib AMD64 2005.0 profile for multilib-disabled system installations
default-linux/arm/2005.0 Default ARM 2005.0 profile for 2.6 kernels
default-linux/hppa/2005.0 Default HPPA 2005.0 profile for 2.6 kernels
default-linux/hppa/2005.0/2.4 HPPA 2005.0 profile for 2.4 kernels
default-linux/mips/2005.0 Default MIPS 2005.0 profile
default-linux/mips/cobalt/2005.0 Cobalt specific MIPS 2005.0 profile
default-linux/mips/mips64/n32/2005.0 2005.0 profile for n32-supporting MIPS platforms
default-linux/mips/mips64/ip28/2005.0 Indigo2 Impact specific 64-bit 2005.0 profile
default-linux/mips/mips64/2005.0 64-bit MIPS 2005.0 profile
default-linux/ppc/2005.0 Default PPC 2005.0 profile for 2.6 kernels
default-linux/ppc64/2005.0 Default PPC64 2005.0 profile for 2.6 kernels
default-linux/s390/2005.0 Default S390 2005.0 profile
default-linux/sparc/sparc32/2005.0 Default Sparc 32-bit 2005.0 profile
default-linux/sparc/sparc64/2005.0 Default Sparc 64-bit 2005.0 profile
default-linux/x86/2005.0 Default x86 2005.0 profile for 2.6 kernels
default-linux/x86/2005.0/2.4 x86 2005.0 profile for 2.4 kernels

Para cambiar al perfil seleccionado, apunte el enlace simbólico /etc/portage/make.profile a la nueva ubicación. ¡Asegúrese de que Portage está actualizado antes de cambiar el perfil!

root #rm /etc/portage/make.profile
root #ln -s ../usr/portage/profiles/<perfil seleccionado> /etc/portage/make.profile

Cuando se planea una actualización desde un sistema basado en Linux 2.4 a un núcleo 2.6, asegúrese de leer nuestra Guía de migración a Linux 2.6.

Actualizar a 2004.3

Con la introducción de los perfiles 2004.3, los usuarios no van a ver enormes modificaciones en sus sistemas (vea los detalles más abajo). Sin embargo, los desarrolladores de Gentoo decidieron desplazar este nuevo perfil y deshacerse de un número considerable de otros antiguos para acelerar la adopción de los perfiles apilados, que no son más que los perfiles que siguen la nueva distribución del directorio /usr/portage/profiles, por ejemplo /usr/portage/profiles/default-linux/x86/2004.3 (soportado por Portage 2.0.51 y versiones posteriores).

Para cambiar al perfil 2004.3, apunte el enlace simbólico /etc/portage/make.profile a la nueva ubicación:

Advertencia
¡No olvidarse de actualizar Portage antes de cambiar el perfil!
root #rm /etc/portage/make.profile
root #ln -s ../usr/portage/profiles/default-linux/<arquitectura>/2004.3 /etc/portage/make.profile

Todas las arquitecturas - Como se dijo antes, no hay grandes cambios en este perfil. Sin embargo, debería observar que sys-apps/slocate y net-misc/dhcpcd ya no se consideran paquetes del sistema. Ésto significa que en un emerge --depclean, Portage intentará eliminarlos del sistema. Si se necesita alguno de estos paquetes, añádalos a /var/lib/portage/world después de cambiar el perfil, o instálelos manualmente con emerge.

ppc - Ahora se utiliza sys-fs/udev por defecto en lugar de sys-fs/devfs para las nuevas instalaciones. Esto no tiene ningún efecto en las máquinas en las que ya se ha realizado la instalación.

Actualizar Portage para que ofrezca soporte a perfiles en cascada

Aunque esta sección no parezca que se integre bien en esta guía de actualización, es muy importante. Cualquier perfil listado encima de esta sección requiere de una versión de Portage que soporte perfiles en cascada. Sin embargo, algunos perfiles obsoletos no permiten al usuario actualizar Portage o el usuario está utilizando un perfil que ya no se encuentra disponible por lo que cualquier intento de actualizar Portage fallará.

Para solucionar este problema, los usuarios pueden crear un enlace simbólico temporal hacia el perfil obsoleto permitiéndoles así actualizar su Portage y poder continuar con el procedimiento de actualización propuesto en esta guía. Sustituya <arquitectura> por la arquitectura de sistema correspondiente:

root #rm /etc/portage/make.profile
root #cd /etc/portage
root #ln -sf ../usr/portage/profiles/obsolete/<arch> make.profile
root #emerge -n '>=sys-apps/portage-2.0.51'

Actualizar a 2004.2

Para cambiar al perfil 2004.2, apunte el enlace simbólico /etc/portage/make.profile a la nueva ubicación:

Advertencia
¡¡¡No olvidarse de actualizar Portage antes de cambiar el perfil!!!
root #rm /etc/portage/make.profile
root #ln -s ../usr/portage/profiles/default-linux/<arquitectura>/2004.2 /etc/portage/make.profile

x86. Este perfil cambia la implementación X11 por defecto de x11-base/xfree (obsoleto) a x11-base/xorg-x11. Este cambio únicamente toca el valor por defecto y es solo significativo para aquellos que todavía no tienen instalado un servidor X. Si ya existe uno instalado entonces ésto no afectará al sistema lo más mínimo, los usuarios pueden cambiar de un servidor X a otro de la misma forma que lo hacía antes.

amd64. No hay cambios esenciales desde perfiles anteriores, por lo que no se necesitan realizar acciones específicas.

Actualizar a 2004.0

Para cambiar al perfil 2004.0, apunte el enlace simbólico /etc/portage/make.profile a la nueva ubicación:

root #rm /etc/portage/make.profile
root #ln -s ../usr/portage/profiles/default-<arch>-2004.0 /etc/portage/make.profile

Para todas las arquitecturas. No hay cambios esenciales desde perfiles anteriores, por lo que no se necesitan realizar acciones específicas.

Actualizar a 1.4 desde perfiles anteriores a éste

Las instrucciones para esta actualización son bastante enrevesadas y se pueden encontrar aquí.

Actualizar sistemas antiguos

La idea de la actualización

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.

Advertencia
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


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.

Importante
¡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.
This article 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 as the 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 the history page.