70 lines
2.3 KiB
Bash
70 lines
2.3 KiB
Bash
#!/bin/bash
|
|
|
|
# Preguntar la versión de Python que se desea instalar
|
|
read -p "Ingresa la versión de Python que deseas establecer como global (por ejemplo, 3.11.2 o 3.8.9): " PYTHON_VERSION
|
|
|
|
# Validar el formato de la versión ingresada (más permisivo)
|
|
if [[ ! $PYTHON_VERSION =~ ^[0-9]+\.[0-9]+(\.[0-9]+)?([a-zA-Z0-9]+)?$ ]]; then
|
|
echo "❌ Formato inválido. Asegúrate de ingresar una versión válida (por ejemplo, 3.11.2, 3.8.9, 3.8.9b1)."
|
|
exit 1
|
|
fi
|
|
|
|
# Comprobar si pyenv está instalado
|
|
if ! command -v pyenv &> /dev/null; then
|
|
echo "pyenv no está instalado. Procediendo a instalarlo..."
|
|
|
|
# Instalar dependencias para pyenv
|
|
apt-get update
|
|
apt-get install -y curl git build-essential libssl-dev zlib1g-dev libbz2-dev libreadline-dev libsqlite3-dev libffi-dev liblzma-dev
|
|
|
|
# Instalar pyenv
|
|
curl https://pyenv.run | bash
|
|
|
|
# Configurar pyenv en el shell actual
|
|
export PATH="$HOME/.pyenv/bin:$PATH"
|
|
eval "$(pyenv init --path)"
|
|
eval "$(pyenv init -)"
|
|
eval "$(pyenv virtualenv-init -)"
|
|
|
|
# Agregar pyenv al bashrc para futuros shells
|
|
echo 'export PATH="$HOME/.pyenv/bin:$PATH"' >> ~/.bashrc
|
|
echo 'eval "$(pyenv init --path)"' >> ~/.bashrc
|
|
echo 'eval "$(pyenv init -)"' >> ~/.bashrc
|
|
echo 'eval "$(pyenv virtualenv-init -)"' >> ~/.bashrc
|
|
fi
|
|
|
|
# Verificar si la versión de Python ya está instalada con pyenv
|
|
if pyenv versions --bare | grep -q "^$PYTHON_VERSION$"; then
|
|
echo "✅ Python $PYTHON_VERSION ya está instalado."
|
|
else
|
|
# Instalar la versión solicitada de Python
|
|
echo "Instalando Python $PYTHON_VERSION con pyenv..."
|
|
pyenv install $PYTHON_VERSION
|
|
|
|
# Comprobar si la instalación fue exitosa
|
|
if [[ $? -ne 0 ]]; then
|
|
echo "❌ Error durante la instalación de Python $PYTHON_VERSION."
|
|
exit 1
|
|
fi
|
|
fi
|
|
|
|
|
|
# Establecer la versión global de Python con pyenv
|
|
echo "Configurando Python $PYTHON_VERSION como versión global..."
|
|
pyenv global $PYTHON_VERSION
|
|
|
|
# Actualizar pip a la última versión
|
|
echo "Actualizando pip..."
|
|
pip install --upgrade pip
|
|
|
|
# Verificar la instalación
|
|
echo "Verificando la instalación..."
|
|
python --version
|
|
pip --version
|
|
|
|
# Recargar .bashrc para aplicar los cambios
|
|
echo "Recargando .bashrc para aplicar los cambios de pyenv..."
|
|
source ~/.bashrc
|
|
|
|
echo "✅ Python $PYTHON_VERSION configurado como versión global exitosamente."
|