#!/bin/bash set -eu # 馃洜 Actualizar repositorios echo "Actualizando repositorios..." apt-get update # 馃洜 Instalar Node.js, NPM, y dependencias necesarias si no est谩n instalados echo "Instalando Node.js, NPM y dependencias necesarias..." apt-get install -y curl python3 make g++ git libc-dev bash # 馃洜 Instalar n (gestor de versiones de Node.js) globalmente echo "Instalando el gestor de versiones 'n' para Node.js..." curl -L https://raw.githubusercontent.com/tj/n/master/bin/n -o /usr/local/bin/n chmod +x /usr/local/bin/n # 馃洜 Eliminar versiones conflictivas de Node.js y NPM echo "Eliminando binarios conflictivos..." rm -f /usr/local/bin/node || true rm -f /usr/local/bin/npm || true rm -f /usr/local/bin/npx || true # 馃洜 Crear directorio para versiones globales de Node.js si no existe mkdir -p /usr/local/n chown -R $(whoami) /usr/local/n export N_PREFIX=/usr/local/n # 馃洜 Agregar N_PREFIX al PATH si no est谩 if ! grep -q "/usr/local/n/bin" <<< "$PATH"; then export PATH="/usr/local/n/bin:$PATH" echo 'export PATH="/usr/local/n/bin:$PATH"' >> ~/.bashrc source ~/.bashrc fi # 馃洜 Funci贸n para configurar la versi贸n de Node.js setup_node_version() { local VERSION=$1 echo "Instalando Node.js v$VERSION..." n $VERSION # 馃洜 Crear enlaces simb贸licos globales ln -sf /usr/local/n/bin/node /usr/local/bin/node ln -sf /usr/local/n/bin/npm /usr/local/bin/npm ln -sf /usr/local/n/bin/npx /usr/local/bin/npx # 馃洜 Actualizar el PATH y limpiar cach茅 de comandos export PATH="/usr/local/n/bin:$PATH" hash -r # 馃洜 Mostrar la versi贸n instalada echo "Node.js actualizado a:" node -v npm -v } # 馃洜 Preguntar al usuario qu茅 versi贸n quiere instalar echo "驴Qu茅 versi贸n de Node.js deseas instalar? (Ejemplo: 20)" read -r NODE_VERSION # 馃洜 Ejecutar la instalaci贸n de la versi贸n solicitada setup_node_version $NODE_VERSION # 馃洜 Instrucciones para cambiar de versi贸n r谩pidamente cat << EOF 隆Node.js v$NODE_VERSION instalado correctamente! 馃帀 Para cambiar de versi贸n en el futuro, usa: n # Ejemplo: n 18 Para listar versiones disponibles: n ls-remote Para listar versiones instaladas localmente: n ls Para borrar una versi贸n espec铆fica: n rm # Ejemplo: n rm 18 隆Disfruta usando Node.js con n! 馃殌 EOF