| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117 |
- #!/bin/bash
- # Configuración para detener el script si hay errores graves
- set -e
- # Colores para los mensajes
- VERDE='\033[0;32m'
- ROJO='\033[0;31m'
- AMARILLO='\033[1;33m'
- NC='\033[0m' # No Color
- echo -e "${VERDE}==========================================================${NC}"
- echo -e "${VERDE} Instalador Automático de Python 2.7 (Ubuntu 24.04+)${NC}"
- echo -e "${VERDE}==========================================================${NC}"
- # --- FUNCIÓN 1: VERIFICAR ROOT ---
- if [ "$EUID" -ne 0 ]; then
- echo -e "${ROJO}❌ Error: Por favor, ejecuta este script como root (sudo).${NC}"
- exit 1
- fi
- # --- FUNCIÓN 2: VERIFICAR VERSIÓN DE UBUNTU ---
- echo -e "${AMARILLO}--> Verificando versión del sistema operativo...${NC}"
- # Obtener información del sistema
- if [ -f /etc/os-release ]; then
- . /etc/os-release
- else
- echo -e "${ROJO}❌ Error: No se pudo detectar el sistema operativo.${NC}"
- exit 1
- fi
- # Verificar si es Ubuntu
- if [ "$ID" != "ubuntu" ]; then
- echo -e "${ROJO}❌ Error: Este script está diseñado solo para Ubuntu.${NC}"
- exit 1
- fi
- # Comparar versión (Lógica: Si VERSION_ID es menor a 24.04, falla)
- # Usamos 'sort -V' para comparar versiones numéricas correctamente
- MIN_VERSION="24.04"
- if [ "$(printf '%s\n' "$MIN_VERSION" "$VERSION_ID" | sort -V | head -n1)" != "$MIN_VERSION" ]; then
- echo -e "${ROJO}❌ Error: Tu versión de Ubuntu es $VERSION_ID.${NC}"
- echo -e "${ROJO} Se requiere Ubuntu $MIN_VERSION o superior para continuar.${NC}"
- exit 1
- else
- echo -e "${VERDE}✅ Sistema compatible detectado: Ubuntu $VERSION_ID${NC}"
- fi
- # --- FUNCIÓN 3: VERIFICAR SI PYTHON YA ESTÁ INSTALADO ---
- # Verificamos la ruta específica donde este script instala Python (/usr/local/python2.7)
- echo -e "${AMARILLO}--> Buscando instalaciones previas de Python 2.7...${NC}"
- PYTHON_BIN="/usr/local/python2.7/bin/python2.7"
- if [ -f "$PYTHON_BIN" ]; then
- echo -e "${VERDE}✅ Python 2.7 ya se encuentra instalado en: $PYTHON_BIN${NC}"
- EXISTING_VERSION=$($PYTHON_BIN -V 2>&1)
- echo -e " Versión detectada: $EXISTING_VERSION"
- echo -e "${AMARILLO} Omitiendo instalación para evitar duplicados o conflictos.${NC}"
- exit 0
- else
- echo -e " No se detectó Python 2.7 en la ruta objetivo. Procediendo con la instalación..."
- fi
- # ==========================================================
- # INICIO DE LA INSTALACIÓN (Si pasó las verificaciones)
- # ==========================================================
- # 1. Actualizar el sistema
- echo -e "${AMARILLO}--> Actualizando repositorios...${NC}"
- apt update
- # 2. Instalar dependencias
- echo -e "${AMARILLO}--> Instalando dependencias necesarias...${NC}"
- apt install -y build-essential zlib1g-dev checkinstall libncurses5-dev \
- libncurses-dev libnss3-dev libssl-dev libsqlite3-dev tk-dev libgdbm-dev \
- libc6-dev libbz2-dev libffi-dev libreadline-dev libdb-dev curl
- # 3. Descargar Python 2.7.18
- echo -e "${AMARILLO}--> Descargando código fuente...${NC}"
- cd /usr/src
- wget https://repo.yosoyhendrix.com/yosoyhendrix/Python-2.7/raw/main/Python-2.7.18.tgz -O Python-2.7.18.tgz
- # 4. Descomprimir
- echo -e "${AMARILLO}--> Descomprimiendo...${NC}"
- tar xzf Python-2.7.18.tgz
- cd Python-2.7.18
- # 5. Compilar
- echo -e "${AMARILLO}--> Configurando y compilando (esto demora unos minutos)...${NC}"
- ./configure --prefix=/usr/local/python2.7
- make
- make install
- # 6. Enlaces Simbólicos (Python)
- echo -e "${AMARILLO}--> Creando accesos directos (symlinks)...${NC}"
- # Forzamos (-f) la creación del enlace para asegurar que apunte al nuevo binario
- ln -sf /usr/local/python2.7/bin/python2.7 /usr/local/bin/python2.7
- # 7. Instalar PIP
- echo -e "${AMARILLO}--> Instalando PIP...${NC}"
- cd /usr/src
- curl https://repo.yosoyhendrix.com/yosoyhendrix/Python-2.7/raw/main/get-pip.py -o get-pip.py
- /usr/local/python2.7/bin/python2.7 get-pip.py
- # 8. Enlaces Simbólicos (Pip)
- ln -sf /usr/local/python2.7/bin/pip2.7 /usr/local/bin/pip2.7
- # FINALIZACIÓN
- echo -e "${VERDE}==========================================================${NC}"
- echo -e "${VERDE} ¡Instalación Completada con Éxito!${NC}"
- echo -e "${VERDE}==========================================================${NC}"
- echo -e "Comandos disponibles:"
- echo -e " python2.7 --version -> $(python2.7 --version 2>&1)"
- echo -e " pip2.7 --version -> $(pip2.7 --version)"
- exit 0
|