Migración versión Python en Gentoo


Como todos sabemos Python ha llegado al final de su vida, esto implica que ya no se le dará soporte de ningún tipo, ni bugfixes ni security updates. En este artículo explicaré como migrar Gentoo de Python2 a Python3.

 

En mi sistema tenemos las siguientes versiones de Python diponibles:

dev-lang/python
     Available versions:  
     (2.7)  2.7.14-r1 ~2.7.14-r2 2.7.15
     (3.4)  3.4.5-r1(3.4/3.4m)^t ~3.4.6-r1(3.4/3.4m) 3.4.8(3.4/3.4m) ~3.4.8-r1(3.4/3.4m)
     (3.5)  3.5.4-r1(3.5/3.5m)^t 3.5.5(3.5/3.5m)^t ~3.5.5-r1(3.5/3.5m)^t
     (3.6)  3.6.3-r1(3.6/3.6m)^t ~3.6.4(3.6/3.6m)^t 3.6.5(3.6/3.6m)^t ~3.6.5-r1(3.6/3.6m)^t ~3.6.6(3.6/3.6m)^t
     (3.7)  ~3.7.0(3.7/3.7m)^t

Para elegir una u otra utilizaremos la utilidad eselect, primero listamos las versiones reconocidas por Gentoo y luego le indicaremos cual de ellas queremos utilizar:

eselect python list
eselect python set X

Asignamos en el make.conf las variables PYTHON_TARGETS y  PYTHON_SINGLE_TARGET para que el software sea compilado conforme nuestras preferencias.

vi /etc/portage/make.conf
PYTHON_TARGETS="python2_7 python3_6"
PYTHON_SINGLE_TARGET="python3_6"

A partir de ahora si algún ebuild se queja porque solo soporta una versión antigua de Python, compilamos con esa versión hasta que el ebuild sea actualizado a Python3.

Un ejemplo podría ser este:

PYTHON_SINGLE_TARGET="python2_7" emerge -auv sys-devel/clang

Podemos sacar una lista de ebuilds compilados con Python2.7:

eix --installed-with-use python_targets_python2_7

Ahora ya podemos eliminar versiones innecesarias de Python:

emerge --ask --depclean dev-lang/python

NOTA: Hay que tener en cuenta que tendremos que ejecutar este comando de forma periódica conforme las versiones de Python vayan actualizándose.

Actualizamos la lista de eselect:

eselect python cleanup
Si te ha gustado el artículo puedes invitarme a un redbull aquí.
Autor: kr0m -- 16/05/2020 03:10:34