Last active
September 18, 2025 07:19
-
-
Save iberi22/4f2293eb2f66e79a58a9373c50ce2b55 to your computer and use it in GitHub Desktop.
dev-setup-v1-4android.es
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| #!/bin/bash | |
| # ============================================================================== | |
| # SCRIPT DE AUTOMATIZACIÓN PARA ENTORNO DE DESARROLLO PROFESIONAL EN TERMUX | |
| # ============================================================================== | |
| # | |
| # Este script configura: | |
| # 1. Base de Termux (con Zsh y Oh My Zsh). | |
| # 2. Ubuntu 22.04 LTS. | |
| # 3. Entorno de Escritorio XFCE4 con Servidor VNC. | |
| # 4. Herramientas de Desarrollo: code-server, NVM (Node.js) y Flutter. | |
| # | |
| # ============================================================================== | |
| # --- Colores para la salida --- | |
| GREEN="\e[1;32m" | |
| YELLOW="\e[1;33m" | |
| CYAN="\e[1;36m" | |
| RESET="\e[0m" | |
| # --- Función para imprimir mensajes --- | |
| info() { | |
| echo -e "${CYAN}[INFO]${RESET} $1" | |
| } | |
| success() { | |
| echo -e "${GREEN}[SUCCESS]${RESET} $1" | |
| } | |
| warning() { | |
| echo -e "${YELLOW}[WARNING]${RESET} $1" | |
| } | |
| # ============================================================================== | |
| # PASO 1: CONFIGURACIÓN INICIAL DE TERMUX | |
| # ============================================================================== | |
| setup_termux() { | |
| info "Iniciando la configuración de Termux..." | |
| info "Solicitando permiso de almacenamiento. Por favor, acéptalo." | |
| termux-setup-storage | |
| sleep 3 | |
| info "Actualizando los paquetes base de Termux. Esto puede tardar..." | |
| pkg update -y && pkg upgrade -y | |
| info "Instalando herramientas esenciales: git, curl, wget, proot-distro..." | |
| pkg install git curl wget proot-distro zsh -y | |
| success "Configuración inicial de Termux completada." | |
| } | |
| # ============================================================================== | |
| # PASO 2: INSTALACIÓN DE ZSH Y OH MY ZSH | |
| # ============================================================================== | |
| setup_zsh() { | |
| info "Instalando Oh My Zsh para una mejor experiencia de terminal..." | |
| # El script de Oh My Zsh intentará cambiar el shell por defecto. | |
| # Usamos 'yes' para aceptar automáticamente la instalación si pide confirmación. | |
| yes | sh -c "$(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)" | |
| # Establecer Zsh como shell por defecto por si el script falla | |
| chsh -s zsh | |
| success "Oh My Zsh instalado y configurado como shell por defecto." | |
| warning "Por favor, reinicia Termux para que los cambios de Zsh surtan efecto antes de continuar." | |
| warning "Ejecuta 'exit' y vuelve a abrir la aplicación." | |
| } | |
| # ============================================================================== | |
| # PASO 3: INSTALACIÓN Y CONFIGURACIÓN DE UBUNTU | |
| # ============================================================================== | |
| setup_ubuntu() { | |
| info "Instalando Ubuntu 22.04 LTS. Esto tomará un tiempo considerable..." | |
| proot-distro install ubuntu | |
| info "Creando script de configuración para el entorno de desarrollo en Ubuntu..." | |
| # Este script se ejecutará DENTRO de Ubuntu | |
| cat <<'EOF' > $HOME/ubuntu-dev-setup.sh | |
| #!/bin/bash | |
| GREEN="\e[1;32m" | |
| CYAN="\e[1;36m" | |
| RESET="\e[0m" | |
| info() { | |
| echo -e "${CYAN}[INFO]${RESET} $1" | |
| } | |
| success() { | |
| echo -e "${GREEN}[SUCCESS]${RESET} $1" | |
| } | |
| info "--- Ejecutando script de configuración dentro de Ubuntu ---" | |
| info "Actualizando paquetes de Ubuntu..." | |
| apt update && apt upgrade -y | |
| info "Instalando dependencias y entorno de escritorio XFCE4 + TigerVNC..." | |
| apt install sudo nano curl wget git xfce4 xfce4-goodies tigervnc-standalone-server dbus-x11 -y | |
| info "Instalando code-server (VS Code)..." | |
| wget https://github.com/coder/code-server/releases/download/v4.16.1/code-server-4.16.1-linux-arm64.tar.gz | |
| tar -xvf code-server-*-linux-arm64.tar.gz | |
| mv code-server-*-linux-arm64 /opt/code-server | |
| rm code-server-*-linux-arm64.tar.gz | |
| info "Instalando NVM (Node Version Manager)..." | |
| curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.1/install.sh | bash | |
| export NVM_DIR="$HOME/.nvm" | |
| [ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" | |
| nvm install --lts | |
| nvm use --lts | |
| nvm alias default 'lts/*' | |
| info "Instalando Flutter SDK..." | |
| apt install -y unzip xz-utils zip libglu1-mesa | |
| git clone https://github.com/flutter/flutter.git -b stable /opt/flutter | |
| echo 'export PATH="$PATH:/opt/flutter/bin"' >> ~/.bashrc | |
| info "Creando script para iniciar el servidor VNC..." | |
| mkdir -p ~/.vnc | |
| echo '#!/bin/bash' > /usr/local/bin/vnc-start | |
| echo 'dbus-launch &' >> /usr/local/bin/vnc-start | |
| echo 'vncserver -localhost no -geometry 1920x1080 -depth 24 :1' >> /usr/local/bin/vnc-start | |
| chmod +x /usr/local/bin/vnc-start | |
| echo '#!/bin/bash' > /usr/local/bin/vnc-stop | |
| echo 'vncserver -kill :1' >> /usr/local/bin/vnc-stop | |
| chmod +x /usr/local/bin/vnc-stop | |
| success "--- Configuración de Ubuntu completada ---" | |
| echo "Para usar el entorno:" | |
| echo "1. Inicia el servidor VNC con: vnc-start" | |
| echo "2. Se te pedirá que crees una contraseña. ¡No la olvides!" | |
| echo "3. Desde la app VNC Viewer, conéctate a: 127.0.0.1:5901" | |
| echo "4. Para detener el servidor, usa: vnc-stop" | |
| EOF | |
| info "Ejecutando el script de configuración dentro de Ubuntu..." | |
| proot-distro login ubuntu -- bash $HOME/ubuntu-dev-setup.sh | |
| success "Entorno de desarrollo en Ubuntu configurado." | |
| } | |
| # ============================================================================== | |
| # MENÚ PRINCIPAL DEL SCRIPT | |
| # ============================================================================== | |
| clear | |
| echo -e "${GREEN}Bienvenido al Asistente de Configuración de Entorno de Desarrollo en Termux.${RESET}" | |
| echo "Este script te guiará para instalar todo lo necesario." | |
| echo "------------------------------------------------------------" | |
| PS3="Por favor, elige una opción: " | |
| options=("Instalar TODO (Recomendado para inicio limpio)" "1. Solo configurar Termux" "2. Solo instalar Zsh y Oh My Zsh" "3. Solo configurar entorno en Ubuntu" "Salir") | |
| select opt in "${options[@]}" | |
| do | |
| case $opt in | |
| "Instalar TODO (Recomendado para inicio limpio)") | |
| setup_termux | |
| setup_zsh | |
| # Esperar a que el usuario reinicie Termux | |
| read -p "Presiona [Enter] después de haber reiniciado Termux para continuar con la instalación de Ubuntu..." | |
| setup_ubuntu | |
| break | |
| ;; | |
| "1. Solo configurar Termux") | |
| setup_termux | |
| break | |
| ;; | |
| "2. Solo instalar Zsh y Oh My Zsh") | |
| setup_zsh | |
| break | |
| ;; | |
| "3. Solo configurar entorno en Ubuntu") | |
| setup_ubuntu | |
| break | |
| ;; | |
| "Salir") | |
| break | |
| ;; | |
| *) echo "Opción inválida $REPLY";; | |
| esac | |
| done | |
| info "Proceso finalizado." | |
| echo "------------------------------------------------------------" | |
| warning "ACCIÓN MANUAL IMPORTANTE PARA EVITAR CIERRES:" | |
| echo "1. Ve a los Ajustes de tu teléfono -> Aplicaciones -> Termux." | |
| echo "2. Busca la sección de 'Batería' o 'Uso de batería'." | |
| echo "3. Cámbiala a 'Sin restricciones' o 'Permitir actividad en segundo plano'." | |
| echo "Esto es CRUCIAL para que Android no cierre Termux." | |
| success "¡Tu entorno de desarrollo está listo!" |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment