La enstalación de Python a partir de su código fuente es una práctica recomendada en servidores Linux para garantizar el control sobre las versiones y las dependencias del sistema. Este proceso se detalla a continuación, utilizando como base distribuciones que emplean el gestor de paquetes yum (como CentOS o RHEL).
1. Preparación y descarga del código fuente
Primero, es necesario situarse en un directorio temporal para la descarga. El directorio /opt es una ubicación estándar para softwrae adicional.
cd /opt
# En caso de no contar con wget, instálelo mediante: yum -y install wget
wget https://www.python.org/ftp/python/3.8.2/Python-3.8.2.tgz
2. Gestión de dependencias del sistema
Para que la compilación sea exitosa y Python incluya todos sus módulos funcionales (como soporte para SSL, bases de datos y compresión), se deben instalar las siguientes librerías de desarrollo:
yum install gcc -y
yum -y install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel \
readline-devel tk-devel gdbm-devel db4-devel libpcap-devel xz-devel libffi-devel
Es particularmente importante contar con libffi-devel para las versiones 3.7 y superiores de Python, ya que es necesaria para el módulo ctypes.
3. Compilación e instalación personalizada
Para mantener el sistema organizado, definiremos un directorio específico en /usr/local/python3.
# Creación del directorio de destino
mkdir -p /usr/local/python3
# Extracción de los archivos
tar -zxvf Python-3.8.2.tgz
cd Python-3.8.2
# Configuración del script de compilación con soporte SSL
./configure --with-ssl --prefix=/usr/local/python3
# Ejecución de la compilación y posterior instalación
make && make install
4. Configuración de accesos directos (Enlaces simbólicos)
Para invocar a Python 3 y su gestor de paquetes Pip de forma global, se deben crear enlaces en /usr/bin:
ln -s /usr/local/python3/bin/python3 /usr/bin/python3
ln -s /usr/local/python3/bin/pip3 /usr/bin/pip3
Resolución de problemas comunes
Configuración de permisos Sudo
Si al intentar ejecutar comandos administrativos recibe el error "user is not in the sudoers file", debe autorizar a su usuario editando la configuración de seguridad:
# Acceda como root
su -
# Edite el archivo de configuración
visudo
Localice la sección de privilegios de usuario y añada la siguiente línea debajo de root:
nombre_de_usuario ALL=(ALL) ALL
Gestión de variables de entorno
Para asegurar que el sistema reconozca las rutas de los binarios instalados, se recomienda modificar el perfil del usuario:
vim ~/.bash_profile
Añada las siguientes líneas al final del archivo:
# Definición de ruta para Python 3.8
export PY3_HOME=/usr/local/python3
export PATH=$PY3_HOME/bin:$PATH
Aplique los cambios inmediatamente con source ~/.bash_profile.
Error: pip command not found
Si tras la instalación el comando pip no es reconocido, asegúrese de que el módulo esté actualizado o instalado mediante el gestor del sistema:
sudo yum update -y
sudo yum install python3-pip
Posteriormente, puede verificar la instalación intentando instalar un paquete de prueba, como el cliente MQTT:
pip3 install paho-mqtt