Sfoglia il codice sorgente

Actualizar 'install_python27.sh'

yosoyhendrix 22 ore fa
parent
commit
8cd10cfda8
1 ha cambiato i file con 87 aggiunte e 53 eliminazioni
  1. 87 53
      install_python27.sh

+ 87 - 53
install_python27.sh

@@ -1,82 +1,116 @@
 #!/bin/bash
 
-# Detener el script si ocurre algún error
+# Configuración para detener el script si hay errores graves
 set -e
 
-echo "=========================================================="
-echo " Iniciando instalación de Python 2.7 en Ubuntu 24.04"
-echo " Basado en la guía de: repo.yosoyhendrix.com"
-echo "=========================================================="
+# Colores para los mensajes
+VERDE='\033[0;32m'
+ROJO='\033[0;31m'
+AMARILLO='\033[1;33m'
+NC='\033[0m' # No Color
 
-# 1. Verificar si se está ejecutando como root
+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 "❌ Por favor, ejecuta este script como root (usando sudo)."
+  echo -e "${ROJO} Error: Por favor, ejecuta este script como root (sudo).${NC}"
   exit 1
 fi
 
-# 2. Actualizar el sistema
-echo "--> Actualizando repositorios y paquetes del sistema..."
-apt update && apt upgrade -y
+# --- 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
 
-# 3. Instalar dependencias necesarias
-echo "--> Instalando dependencias de compilación..."
+# 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
 
-# 4. Descargar el código fuente de Python 2.7.18
-echo "--> Descargando código fuente de Python 2.7.18..."
+# 3. Descargar Python 2.7.18
+echo -e "${AMARILLO}--> Descargando código fuente...${NC}"
 cd /usr/src
-# Usamos -O para asegurar el nombre del archivo
 wget https://repo.yosoyhendrix.com/yosoyhendrix/Python-2.7/raw/main/Python-2.7.18.tgz -O Python-2.7.18.tgz
 
-# 5. Descomprimir
-echo "--> Descomprimiendo archivos..."
+# 4. Descomprimir
+echo -e "${AMARILLO}--> Descomprimiendo...${NC}"
 tar xzf Python-2.7.18.tgz
 cd Python-2.7.18
 
-# 6. Configurar y Compilar
-echo "--> Configurando compilación (esto tomará unos minutos)..."
-# Usamos la opción estándar recomendada en la guía para evitar conflictos
+# 5. Compilar
+echo -e "${AMARILLO}--> Configurando y compilando (esto demora unos minutos)...${NC}"
 ./configure --prefix=/usr/local/python2.7
-
-echo "--> Compilando (make)..."
 make
-
-echo "--> Instalando (make install)..."
 make install
 
-# 7. Crear enlace simbólico para poder usar el comando 'python2.7' globalmente
-echo "--> Creando enlace simbólico en /usr/local/bin/python2.7..."
-if [ -L /usr/local/bin/python2.7 ]; then
-    rm /usr/local/bin/python2.7
-fi
-ln -s /usr/local/python2.7/bin/python2.7 /usr/local/bin/python2.7
-
-# 8. Verificar instalación de Python
-echo "--> Verificación de versión de Python:"
-python2.7 -V
+# 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
 
-# 9. Instalar PIP para Python 2.7
-echo "--> Descargando e instalando pip..."
+# 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
-
-# Ejecutamos con el binario recién instalado
 /usr/local/python2.7/bin/python2.7 get-pip.py
 
-# Crear enlace simbólico para pip2.7
-echo "--> Creando enlace simbólico para pip2.7..."
-if [ -L /usr/local/bin/pip2.7 ]; then
-    rm /usr/local/bin/pip2.7
-fi
-ln -s /usr/local/python2.7/bin/pip2.7 /usr/local/bin/pip2.7
-
-# 10. Limpieza y Finalización
-echo "=========================================================="
-echo " ¡Instalación completada con éxito!"
-echo "=========================================================="
-echo "Versiones instaladas:"
-python2.7 --version
-pip2.7 --version
-echo "=========================================================="
+# 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)"