Reparando Instalaciones Rotas de Portage Manualmente
1.
Reparando Portage Manualmente
Propósito
Esta sección tiene por fin ser una guía para actualizar o arreglar
manualmente su instalación de Portage en casos en los que no
pueda correr emerge sys-apps/portage. Aunque no es un
procedimiento difícil, aún debe hacerse con extremo cuidado, por favor
siga los pasos listados con exactitud (pero aplique sentido común
cuando sea necesario).
Obteniendo un tarball de Portage
Lo primero que debe hacer es obtener un tarball de una versión
actualizada de Portage. En este documento usaremos
portage-2.1.10.44 como ejemplo (ya que es la versión
estable al momento de edición del documento), por favor reemplácelo
con una versión presente en el árbol Portage en la medida de lo posible.
Aviso:
Si su versión instalada de Python reportada por python -V es
menor que 2.6, entonces debe elegir una versión de Portage compatible
con ésta. Si tienes por lo menos Python 2.6 entonces use
portage-2.1.10.44.tar.bz2. Si tiene python 2.4 o 2.5 entonces
use portage-2.1.6.tar.bz2.
|
Dependiendo de la razón exacta por la cual Portage haya dejado de
trabajar, puede que aún sea posible usarlo para obtener el tarball,
antes de nada trate de ejecutar
emerge --fetchonly sys-apps/portage, solo si esto no funciona
tendrá que obtener el tarball manualmente con:
Listado de Código 1.1: Obteniendo el tarball de Portage con wget |
# wget -P /usr/portage/distfiles http://distfiles.gentoo.org/distfiles/portage-2.1.10.44.tar.bz2
|
Después de esto el tarball debería estar disponible como
/usr/portage/distfiles/portage-2.1.10.44.tar.bz2.
Reemplazando la versión instalada
El próximo paso es desempaquetar el tarball en una localización
temporal, usando /root/portage-recover como ejemplo, las
órdenes a ejecutar serían:
Listado de Código 1.2: Desempaquetando el tarball de Portage |
# cd /root
# mkdir portage-recover
# cd portage-recover
# tar xfj /usr/portage/distfiles/portage-2.1.10.44.tar.bz2
|
Una vez que haya hecho esto es solo cuestión de reemplazar los
archivos de Python y Bash de su sistema con los del tarball (en la
mayoría de los casos). Para hacer eso por favor ejecute:
Listado de Código 1.3: Reemplazando los archivos instalados |
# cd /root/portage-recover/portage-2.1.10.44
# rm -rf /usr/lib/portage/*
# cp -R pym bin /usr/lib/portage/
|
Si no está usando Gentoo en FreeBSD debería eliminar el guión envoltorio
de sed, ya que éste no es necesario y se sabe que causa problemas con
versiones antiguas de bash:
Listado de Código 1.4: Eliminando el guión envoltorio de sed |
# rm -f /usr/lib/portage/bin/sed
|
Nota:
Si accidentalmente desinstaló Portage o perdió
/etc/make.globals por otras razones, debería también
copiar cnf/make.globals de nuevo en /etc, de
otra manera Portage se podría comportar de manera extraña.
|
Nota:
Si la versión previa de Portage era menor que 2.1, debería ejecutar
ahora emerge --metadata antes de continuar con el siguiente
paso. Es necesario para convertir la metadata de los ebuilds al nuevo
formato usado a partir de Portage 2.1. Está bien ejecutarlo incluso si
no estás seguro de la versión previa de Portage.
|
Ahora debería tener una instalación de Portage operativa de nuevo.
Sin embargo, para asegurar la consistencia del sistema
debería correr emerge sys-apps/portage de inmediato.
Si recibe un mensaje de error como command not found al tratar
de usar emerge, deberá recrear el enlace simbólico al mismo:
Listado de Código 1.5: Recreando el enlace simbólico a emerge |
# ln -sf ../lib/portage/bin/emerge /usr/bin/emerge
|
Si estos pasos no funcionaron, es muy probable que no sea un
problema de la instalación de Portage sino de otra cosa fuera del
alcance de este documento. Por favor revise la Lista de Problemas
Comunes (en inglés) y mire también en bugzilla si el problema ha sido
reportado.
El contenido de este documento, a no ser que se especifique
expresamente, está registrado bajo los términos de la licencia
CC-BY-SA-2.5. Se aplican las
Pautas de
Utilización del logo y nombre de Gentoo.
|