lunes, 13 de julio de 2015

Instalar Python 2.6 en CentOS 7

Hola chavales, CentOS 7 viene con Python 2.7 instalado, mientras que CentOS 6 venía con Python 2.6.

Como no todas las aplicaciones de Python 2.6 funcionan bien en Python 2.7 (estas raras excepciones a veces ocurren), puede que necesitemos instalar Python 2.6.

Para ello lo que haremos será recompilar el Python 2.6 de CentOS 6 a partir del SRPM:

  yum groupinstall "Development Tools"
  yum install readline-devel openssl-devel gmp-devel  ncurses-devel  gdbm-devel zlib-devel  expat-devel libGL-devel tk tix libX11-devel  tcl-devel tk-devel tix-devel bzip2-devel sqlite-devel db4-devel libffi-devel  valgrind-devel systemtap-sdt-devel  tcl libffi-devel

 # Parcheamos libdb4
 yum install compat-db47
 ln -s /usr/include/db4.7.25/ /usr/include/db4

 # Parcheamos libffi
 mv /usr/include/ffi.h /usr/include/ffi.h.original
 ln -s /usr/include/ffi-x86_64.h /usr/include/ffi.h

 # Parcheamos /usr/lib/rpm/brp-python-bytecompile
 # edita el fichero /usr/lib/rpm/brp-python-bytecompile y en la
 # segunda línea reemplaza "errors_terminate=$2" por
 # "errors_terminate=0"


 adduser mockbuild

 # Como no es bueno construir paquetes con el root, crearemos un usuario llamado "compilar"
 adduser compilar
 su - compilar 
 wget ftp://ftp.redhat.com/pub/redhat/linux/enterprise/6Server/en/os/SRPMS/python-2.6.6-52.el6.src.rpm

 rpm -i python-2.6.6-52.el6.src.rpm
 cd ~/rpmbuild/SPECS

 # Edite el fichero "python.spec" y elimine las referencias a 
 # los ficheros: "dbm.so" y "ossaudiodev.so", y cambie la referencia
 # "plat-linux2" por  "plat-linux3". Luego añada la referencia a "%{dynload_dir}/dbm_failed.so"

 rpmbuild -ba python.spec



Encontrarás lo paquetes RPM generados en "../RPMS/x86_64/"
Y ahora vuelve a dejar el fichero "/usr/lib/rpm/brp-python-bytecompile" como estaba.

Puedes instalar los paquetes con "rpm -i" o añadirlos a tu repositorio.

Un saludo