Reparar instalaciones rotas de Portage de forma manual
1.
Reparar 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 ejecutar emerge sys-apps/portage. Aunque no es un
procedimiento difícil, debe hacerse con extremo cuidado. Por favor,
siga los pasos listados con exactitud (pero aplique el, sentido común
cuando sea necesario).
Obtener 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.11.62 como ejemplo (ya que es la versión
estable en el momento de edición de este documento), por favor,
reemplácelo por la versión actual en el árbol Portage en la medida
de lo posible.
Aviso:
Si la versión de Python instalada y reportada por python -V es
menor que la 2.6, entonces debe elegir una versión de Portage compatible
con ésta. Si tiene por lo menos Python 2.6 entonces utilice
portage-2.1.11.62.tar.bz2. Si tiene python 2.4 o 2.5
entonces utilice portage-2.1.6.tar.bz2.
|
Dependiendo de la razón exacta por la cual Portage haya dejado de
funcionar, 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: Obtener el tarball de Portage con wget |
# wget -P /usr/portage/distfiles http://distfiles.gentoo.org/distfiles/portage-2.1.11.62.tar.bz2
|
Después de esto, el tarball debería estar disponible en
/usr/portage/distfiles/portage-2.1.11.62.tar.bz2.
Reemplazar la versión instalada
El siguiente 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: Desempaquetar el tarball de Portage |
# cd /root
# mkdir portage-recover
# cd portage-recover
# tar xfj /usr/portage/distfiles/portage-2.1.11.62.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: Reemplazar los archivos instalados |
# cd /root/portage-recover/portage-2.1.11.62
# rm -rf /usr/lib/portage/*
# cp -R pym bin /usr/lib/portage/
|
Si no está utilizando 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: Eliminar 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 forma 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 los metadatos de los ebuilds al
nuevo formato usado a partir de Portage 2.1. Es correcto ejecutarlo
incluso si no está 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 ejecutar 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: Recrear 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 los Problemas
comunes de portage y mire también en
bugzilla por si el problema
ya 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 logotipo y nombre de Gentoo.
|