Es:HOWTO: Safely mix Entropy and Portage

From Sabayon Wiki
Revision as of 20:23, 27 August 2012 by Spanishbizarro (Talk | contribs)

(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search
i18n: en es

Mezclando Portage y Entropy de Forma Segura

Reglas y Conocimiento

Stop.png
Portage (emerge) no es el administrador de paquetes primario de Sabayon; este artículo es sólo para usuarios avanzados. En otras palabras, si te falla, es tu culpa. Fuiste advertido.

Mezclar Portage y Entropy no es recomendado sin el conocimiento extensivo de ambos administradores de paquetes. Se recomienda que elijas uno o el otro para mantener tu sistema. Como cada paquete de Sabayon viene del propio Gentoo o del overlay de Gentoo de Sabayon, usar portage se considera generalmente innecesario, aunque siempre hay casos límites.


La primera regla y la más importante para mezclar ambos administradores de paquetes: JAMAS edites o cambies /etc/make.conf. Esto hace cambios globales en el sistema. Como Entropy es un método de distribución binaria, sus USE flags son estáticas y no pueden ser cambiadas del lado del cliente. Editar el make.conf puede llevar rápidamente a inconsistencias entre los dos administradores de paquetes. Lo cual conduce a la inestabilidad o a un sistema roto.


La segunda regla es, cuando mezcles Portage y Entropy, nunca uses Portage para actualizar Portage. Sabayon usa una version de Portage que está enmascarada en Portage. Eso significa que estarás DESACTUALIZANDO portage, no actualizándolo. Este simple error puede romper completamente tu instalación debido a dependencias diferentes a nivel de sistema. Si vas a mezclar, usa SIEMPRE Entropy para actualizar Portage.

Stop.png
el comando 'emerge portage' jamás debe ser ejecutado cuando se mezclan administradores de paquetes


Así que, sabemos que no podemos modificar el make.conf. ¿Como podremos instalar los paquetes que queremos y de la forma que queremos? Eso es bastante facil y es un proceso de dos pasos. Por cada paquete que quieras instalar:

# nano /etc/portage/package.use

Añade cada paquete ahí con las USE flags que quieres que tenga, incluyendo las -USE flags para las flags que no quieres que tenga que puedan ser añadidas por el make.conf. Esto se antepone sobre el make.conf para ese paquete en particular. Si tu paquete o sus USE flags requieren nuevas dependencias con configuraciones específicas, necesitarás añadirlas también. Una advertencia, evita los paquetes de sistema a todo costo. Lo mejor es usar Entropy para satisfacer todas las dependencias de cada paquete, antes de hacer un emerge de ese paquete. Si es fundamental para el sistema o vives con el o convierte tu sistema entero para que sólo use portage, y buena suerte con ello.

Question.png
En caso de que package.use sea una carpeta, puedes editar el archivo /etc/portage/package.use/00-sabayon.package.use/00-sabayon.package.use, o crear otro archivo como 01-mypackages.use dentro de esa carpeta.

Luego necesitamos que Entropy no se meta con los nuevos paquetes. Necesitarás decirle a Entropy que ignore esos paquetes. Eso se hace así:

# nano /etc/entropy/packages/package.mask

Necesitas asegurarte que mantengas backups de cada archivo cada vez que los edites. Entropy es conocida por insertar nuevas versiones de esos archivos de vez en cuando y así destruir cualquier cambio que hayas hecho. Eso puede ser desordenado.


Seguir esas reglas hace que mezclar Entropy y Portage sea más seguro, pero no del todo. Con esas reglas no sólo tendrás un historial de lo que hiciste, sino una buena idea de que se necesita deshacer si tu sistema se vuelve inestable o inutilizable. Lo que has cambiado está documentado en uno de los dos archivos de configuración.


Realmente se recomienda que hagas pedidos de paquetes en los foros o en http://bugs.sabayonlinux.org. Asegúrate de incluir los números de versiones y algunas USE flags específicas que crees que se necesiten o no. Con esto no obtendrás tu paquete de inmediato, pero si lo obtendrán tu y otros más.

Nota final

Una nota final, si has roto el sistema, hay un paso que puedes considerar antes de reinstalar. Elimina todos los cambios a package.mask y package.use y luego ejecuta el comando : equo update && equo world --replay. Esto reinstalará, al nivel actual en la base de datos online, cada paquete en tu sistema que esté combine con Entropy. Consume tiempo y mucha banda ancha.

Conclusion

Con todo lo dicho, considera cuidadosamente por qué y qué estas haciendo antes de mezclar ambos administradores de paquetes. En el canal de soporte en IRC podemos tolerar la ignorancia y a menudo ayudaremos a curar el problema, pero como mi abuelo decía "No hay cura para los estúpidos" y puedes ser tratado de esa forma.

Buena Suerte ~Az

Ejemplo

Reconstruir Python con soporte tk

Primero actualiza portage y los overlays, asegúrate de tener "sabayon" en tus overlays:

# equo update && equo install eix
# layman -l
* sabayon                   [Git       ] (git://sabayon.org/projects/overlay.git           )
# layman -S && eix-sync


Busca python con eix:

# eix -C dev-lang python
[U] dev-lang/python
     Available versions:  
        (2.4)   2.4.6
        (2.5)   2.5.4-r4
        (2.6)   2.6.4-r1 (~)2.6.4-r1[1] 2.6.5-r2 2.6.5-r3 (~)2.6.6-r1
        (2.7)   [M](~)2.7
        (3.1)   [m]3.1.2-r3 [m]3.1.2-r4
        {-berkdb bootstrap build +cxx doc elibc_uclibc examples gdbm ipv6 +ncurses +readline sqlite +ssl +threads tk +wide-unicode wininst +xml}                
     Installed versions:  2.6.5-r2(2.6)(16:21:53 04.05.2010)(berkdb gdbm ipv6 ncurses readline sqlite ssl threads wide-unicode xml -build -doc -elibc_uclibc -examples -tk -wininst)                                                            
     Homepage:            http://www.python.org/
     Description:         Python is an interpreted, interactive, object-oriented programming language.

[1] "sabayon" /var/lib/layman/sabayon


Busca en "Versiones instaladas", está la "2.6.5-r2". Quizás tengas más de una versión instalada, no hay problema.

Edita "/etc/portage/package.use", añade "tk" a "dev-lang/python sqlite" -> "dev-lang/python sqlite tk". Pon quizás un marcador al principio del archivo: "# 22. oct 2010 añadir tk a python" o similar.


Ahora haz emerge de la versión de python y chequea si tk fue añadido:

# emerge -av =python-2.6.5-r2
[...]
Calculating dependencies... done!
[ebuild   R   ] dev-lang/python-2.6.5-r2  USE="berkdb gdbm ipv6 ncurses readline sqlite ssl threads tk* (wide-unicode) xml -build -doc -examples -wininst" 10,903 kB
[...]


Edita "/etc/entropy/packages/package.mask", añade "=dev-lang/python-2.6.5-r2" al final. Pon quizás un marcador.


Deja que "entropy" sepa sobre la nueva versión de python:

# equo rescue spmsync

Listo.

Información Adicional : https://forum.sabayon.org/viewtopic.php?f=59&t=26776