Instalar globalmente paquetes node.js sin usar sudo
En Linux, para lograr que un paquete de node se instale usando el npm paquete -g
sin necesidad de usar sudo
, hay dos opciones que me gustan.
Tabla de Contenido
- Método 1. Instalación local de nodejs a través de NVM
- Método 2. Instalación global de nodejs
- Instalar usando npm install -g
- Actualizar los paquetes usando npx
- Fuentes
Método 1. Instalación local de nodejs a través de NVM
Este es mi método favorito, ya que me permite tener diferentes versiones de nodejs instaladas.
Paso 1. Instalar nvm
Se usa el script de instalación de nvm-sh para instalar o actualizar nvm
, bien sea a través de curl
o wget
. Revisar la última versión disponible en nvm-sh ya que puede haber cambiado
Usando curl:
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.7/install.sh | bash
Usando wget:
wget -qO- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.7/install.sh | bash
Al ejecutar cualquiera de los comandos anteriores, se descarga un script y se ejecuta. El script clona el repositorio nvm
en ~/.nvm
e intenta agregar las líneas fuente del fragmento siguiente al archivo de perfil correcto (~/.bash_profile
, ~/.zshrc
, ~/.profile
o ~/.bashrc
).
export NVM_DIR="$([ -z "${XDG_CONFIG_HOME-}" ] && printf %s "${HOME}/.nvm" || printf %s "${XDG_CONFIG_HOME}/nvm")"
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" # This loads nvm
Nota: En el caso de estar usando zsh
, he visto que el script no agrega las instrucciones automáticamente (sólo lo hace en bash), así que es mejor agregar las líneas anteriores al archivo ~/.zshrc
.
Paso 2. Verificar la instalación
Para verificar que nvm
se ha instalado correctamente:
command -v nvm
NOTA: En Linux, después de ejecutar el script de instalación, se obtiene nvm: comando no encontrado
o no se obtiene información en la terminal al escribir command -v nvm
, simplemente se cierra la terminal actual, se abre una nueva terminal y se verifica nuevamente. Alternativamente, puede recargar el perfil ejecutando los siguientes comandos para los diferentes shells en la línea de comandos:
bash: source ~/.bashrc
zsh: source ~/.zshrc
Paso 3. Instalar nodejs
La última versión:
nvm install node # "node" es un alias para la últma versión
La última stable:
nvm install --lts # "node" es un alias para la últma versión
Para instalar una versión específica de node:
nvm install 14.7.0 # o 16.3.0, 12.22.1, etc
Para usar una versión de node instalada (ej: la LTS):
nvm use --lts
Para ver una lista de las versiones disponibles se usa ls-remote
:
nvm ls-remote
Nota: Más información en el sitio de nvm-sh
Método 2. Instalación global de nodejs
Paso 1. Instalar de nodejs
Se debe tener instalado node
y npm
, para lo cual revisamos la versión:
node --version
npm --version
En caso de no tenerlo instalado usar la instalación recomenda para la distribución que se este usando. Para Manjaro/Arch Linux derivadas:
sudo pacman -S nodejs npm
Paso 2. Configurar el usario local
Crear en el directorio de usuario, un directorio para almacenar las instalaciones globales
mkdir ~/.npm-global
Configurar npm para que use la ruta del nuevo directorio:
npm config set prefix '~/.npm-global'
Buscar el archivo ~/.bashrc
y agregar la siguiente línea
# Configuración paquetes globales en nodejs
export PATH="$HOME/.npm-global/bin:$PATH"
Actualizar las variables del sistema con la nueva configuracion
source ~/.bashrc
Instalar usando npm install -g
Independiente del método de instalación elegido para npm
, en este punto ya se puede probar la nueva configuración y no será necesario usar sudo
porque la instalación global de paquetes de npm se realizará en la carpeta de usuario.
npm install -g nombre_paquete_a_instalar
Actualizar los paquetes usando npx
Para acutalizar los paquetes instalados usando npm install -g
:
npx npm-check-updates -g
Y Listo!