Versión de Drupal con Drush | y otros datos
¿Sabes que puedes averigurar la versión instalada de Drupal, además de otros datos, utilizando un comando de Drush?
¿Sabes que puedes averigurar la versión instalada de Drupal, además de otros datos, utilizando un comando de Drush?
Se trata de una clase u objeto, desarrollada por otros o por tí, cuya funcionalidad es realizar alguna tarea. Ej.: Mailer o Logger.
Para identificar un Servicio sólo tienes que preguntarte, si esta clase toma información y realiza algún proceso con esta información o si sólamente sirve para guardar esa información en base de datos.
Para acceder al listado de servicios en Drupal 10 y su documentación HAZ CLIC AQUI
Si quieres saber un poco más sobre webservices en Drupal HAZ CLIC AQUÍ
Cuando estamos empezando con el desarrollo o implementación de cualquier proyecto, en la mayoría de los casos nos resultará necesario la creación de contenidos con los que podamos realizar pruebas de todo tipo.
Para realizar esta tarea, en Drupal contamos con el módulo Devel Generate, integrado dentro de las dependencias del módulo Devel. Por lo que, una vez instalado y activado en nuestro Drupal, sólo tendremos que dirigirnos a la url "/admin/config/development/generate/content", y allí veremos el listado de todos los tipos de contenidos que tengamos creados en nuestro proyecto.
Paso 1 Descargar el módulo:
Lo primero que tendrás que hacer es descargarlo, para ello, a partir de Drupal 8 se recomienda que utilices el gestor de paquetes Composer, ya que te facilitará tanto la instalación como futuras actualizaciones del tus proyectos. No obstante también podrías descargarlo desde la Página oficial del módulo y una vez descargado, tendrás que colocarlo en la carpeta "modules" o "modules/contrib", dependiendo de tu instalación y asegurarte de descargar todas sus dependencias o el módulo no funcionará, esta es una de las ventajas con las que cuentas al hacer la instalación usando Composer.
Paso 2 Activación del módulo :
Para activar el módulo Devel, al igual que todos los demás módulos contribuidos de Drupal, tendrás la posibilidad de hacerlo, mediante el uso de la herramienta Drush, con el comando "drush en devel -y", que sirve para activar cualquier módulos y todas sus dependencias, o desde la interfaz de Drupal.
Además de poder generar automáticamente nuestros contenidos, podremos configurar algunas opciones adicionales como, especificar su fecha de publicación, comentarios relacionados, títulos para los contenidos con un límite de caracteres específico, el idioma o incluso los usuarios que los crearon, esta última opción nos facilitará el testeo de los permisos de usuario.
Para generar nuestro contenidos, sólo tendremos que marcar las opciones con las que deseamos trabajar, es recomendable intentarlo la primera vez como poco contenido para estar seguros de obtener lo que pensábamos o si hará falta modificar algún campo.
Si no estás conforme con el contenido generado o simplemente quieres volver a generar contenidos otra vez, puedes seleccionar la opción de eliminar todos los contenidos previamente creados antes de ejecutarlo.
Una vez que hayamos revisado todos los campos que nos interesan, haremos clic en el botón que aparece en la parte inferior de la pantalla y comenzará el proceso inmediatamente.
Cuando se haya realizado el proceso de generación de nuestros contenidos, veremos un mensaje de confirmación en la parte superior de la pantalla, con la cantidad y el tipo de contenido que decidimos utilizar.
Para comprobarlo, sólo tendremos que dirigirnos al listado de contenidos en la url "/admin/content" y veremos el listado de contenidos generados por el módulo con las configuraciones adicionales, si es que hemos seleccionado alguna.
Para todos los que trabajamos, en el desarrollo de páginas web utilizando Drupal, es muy importante que nos mantengamos informados, sobre las últimas actualizaciones, tanto a nivel de las funcionalidades o parches de seguridad, del propio CMS, como de las herramientas relacionadas con éste, por ejemplo, el gestor de paquetes Composer, recomendado para todos los proyectos, a partir de Drupal 8 y que hace poco, lanzó una nueva versión ( Cómo instalar Composer 2 en Ubuntu 20.04 ) o superior o la consola Drush.
Con el propósito de facilitar tus tareas de desarrollo, hoy quiero hablarte sobre, La interfaz de línea de comandos (en inglés, command-line interface, CLI), que se utiliza en Drupal, conocida como Drush, para que puedas sacarle el mayor provecho posible y obtener mejores resultados.
Hace varios años, se recomendaba que al trabajar con Drush y Drupal, realizáramos una instalación global, con la que pudiéramos efectuar toda clase de operaciones, sin importar la versión de nuestro proyecto; pero a partir de Drupal 8, se comenzó a proponer instalaciones individuales, para evitar errores producidos por incompatibilidades, ya fuera entre versiones de php, o del núcleo de Drupal.
Actualmente, para instalar Drush en cualquier proyecto de Drupal 8 o superior, utilizaremos el gestor de paquetes Composer, y al igual que con otros módulos de Drupal, dejaremos en él la responsabilidad de descargar todos los archivos necesarios para su funcionamiento, para ello escribiremos desde la carpeta raíz de nuestra instlación, el siguiente comando:
composer require drush/drush
De inmediato se iniciará el proceso de descarga de la versión más actual y estable, que esté disponible sobre esta herramienta de comandos, en el momento en que escribo este artículo, es la versión 10.5.0
Con el Drush Launcher podrás ejecutar comandos de Drush en todos tus proyectos, sin la necesidad de escribir la ruta completa ej: "/vendor/bin/drush cr". Exiten varias formas para descargar e instalarlo, puedes revisar la documentación en Repositorio Drush Launcher
Drush te genera automáticamente y de manera configurable, toda la estructura de archivos necesaria para crear un módulo. (Funcionalidad de la antigua Drupal Console)
drush generate module
En algunos casos, es posible que perdamos el acceso del usuario admin, al realizar algún traspaso de entornos o no haber guardado los datos de acceso en un lugar fácil de encontrar. Para estos casos, el siguiente comando te da la posiblidad de acceder como administrador para que puedas cambiar la clave de acceso por una nueva.
drush:uli
Forma de uso: Copia en el navegador el enlace generado, a partir de "/user" y pégalo en el navegador a continuación del dominio de tu página. Al presionar enter accederás directamente a la página de configuración del usuario administrador para que puedas cambiar la clave de acceso sin necesidad de acordarte de la anterior.
Como ya sabrás, Drupal ofrece la posibilidad de verificar, todos los errores que registra a nivel de base de datos, ya que los guarda en una tabla llamada Watchdog, con Drush podrás acceder a estos datos, sin la necesidad de entrar a la interfaz de usuario usando el siguiente comando:
drush wd-show
Al ejecutarlo, verás inmediatamente en consola, todos los datos que haya guardado Drupal dentro de esta tabla, facilitándote el análisis de posibles errores más rápidamente.
En algunos proyectos, sobretodo cuando se trata de instalaciones muy grandes, necesitamos tener una idea rápida de los módulos o temas que se encuentran activados en un momento determinado. Este comando nos mostrará en pantalla, un listado completo de todos los módulos y temas, con la correspodiente información acerca su versión y de si están o no activados.
drush pml
Cuando estamos haciendo el traspaso de entornos, es posible que necesitemos exportar toda la base de datos para dicho traspaso, con este comando, podremos generar rápidamente un backup que se guardará a la altura de nuestra carpeta raíz del proyecto:
drush sql:dump --result-file=../mi_backup.sql
drush sql-drop
drush sql-cli < ~/my-sql-dump-file-name.sql
Volcará la base de datos y la comprimirá, colocándola en el directorio predeterminado de drush bajo una marca de tiempo
drush sql-dump --gzip --result-file
Volcará la base de datos en el archivo especificado antes de comprimirlo con gzip
drush sql-dump --gzip --result-file=/path/to/file.sql
Fijar un tema por defecto para tu instalación de Drupal, ejemplo el theme Bartik
drush config-set system.theme default bartik
Puedes aprende más sobre el uso y los comando de drush, visitando su drushcommands o www.drush.org/latest/
Si estás trabajando con Drupal, en muchas ocasiones te verás en la necesidad de instalar y poner en marcha, en tu entorno local, proyectos que han sido creados previamente por otros desarrolladores o miembros de tu equipo de trabajo, para que puedas realizar la implementación de algunos cambios, analizar el código del código o simplemente realizar tareas de testing en un entorno seguro.
Tienes disponibles varios métodos de configuración para entornos locales HACIENDO CLIC AQUÍ
Hoy te quiero mostrar, cómo trabajar en tu entorno local, basándonos en contenedores Docker y un proyecto existente de Drupal 9, para que puedas entender todos los pasos necesarios y activar cualquier proyectos sin la necesidad de invertir demasiado tiempo en el proceso.
- Tener instalado Docker y Docker compose en tu entorno local. HAZ CLIC AQUI
- Tener los archivos del proyecto Drupal con el que vas a trabajar. Para descargar la estructura base vacía HAZ CLIC AQUÍ
- Tener la base de datos del proyecto Drupal con el vas a trabajar
Antes de poder comenzar con el proceso de instalación del proyecto Drupal, necesitaremos poder ejecutar código PHP, acceder a nuestra base de datos por medio de Mysql y acceder a un servidor Apache o NGNIX.
La buena noticia, es que exite un repositorio, en el que podremos encontrar todo lo necesario, se llama DockerForDrupal, desarrollado por el equipo de Wodby.
Así que abriremos nuestra consola y, a continuación, clonaremos el respositorio, para tener disponibles todos los archivos:
git clone https://github.com/wodby/docker4drupal.git/ server
Esto descargará todos los archivos en la carpeta server, y de esta manera, podremos copiar los archivos necesarios para cualquier proyecto de Drupal, sin la necesidad de tener que descargarlos nuevamente en el futuro.
Para que no tengamos ningún tipo de conflicto, una vez copiemos los archivos necesarios en cualquier proyecto de Drupal, eliminaremos el directorio .git y el archivo docker-compose.override.yml
Así que nos colocaremos dentro de la carpeta server y a continuación, ejecutaremos los siguientes comandos en nuestra consola:
sudo rm -rf .git
sudo rm -f docker-compose.override.yml
Con estos dos comandos habremos eliminado cualquier posibilidad de conflicto en el futuro.
En este punto, lo próximo que necesitaremos realizar el la copia de todos los archivos ubicados en la carpeta server, hacia la carpeta raíz del nuestro proyecto Drupal, puedes hacerlo por consola o desde el explorador de archivos de windows, arrastrándolos.
sudo cp -R server/ drupal9
Antes de poder comenzar a trabajar con los contenedores relacionados con nuestro proyecto Drupal, tendremos que explorar y modificar algunos ajustes, relacionados principalmente con el nombre del proyecto, la conexión con MySQL, entre otros.
Para ello, abriremos el archivo (.env), que veremos en nuestra carpeta raiz, al haber copiado los archivos desde la carpetar server; en él encontraremos todas las definiciones por defecto, paa trabajar con un proyecto Drupal, incluyendo el nombre del proyecto, datos de conexión al servidor mysql, entre otros.
Como la idea es trabajar con un proyecto que ya existe, deberíamos modificar algunos de estos datos, o simplemente, dejar los mismos y actualizar los datos de conexión en el archivo de Drupal llamado settings.php, dentro de la carpeta "web/sites/default/"
### PROJECT SETTINGS PROJECT_NAME=drupal9_existente PROJECT_BASE_URL=drupal9_existente.docker.localhost PROJECT_PORT=8000 DB_NAME=drupal9_existente DB_USER=drupal9_existente DB_PASSWORD=drupal9_existente DB_ROOT_PASSWORD=password DB_HOST=mariadb DB_PORT=3306 DB_DRIVER=mysql
Si todos los pasos anteriores no han devuelto ningún error o si ya los hemos corregido, entonces, podremos poner en marcha todos los contenedores, para continuar con el proceso de instalación de Drupal.
El primer comando que tendremos que ejecutar para el arranque será el siguiente:
docker-compose up -d
Si tienes instalado Make, también puedes utilizar este comando :
make up
Si quieres saber qué es Make y cómo instalarlo, HAZ CLIC AQUÍ
Esto se iniciará el proceso de activación de todos los cotenedores en segundo plano, para que podamos continuar en la misa ventana de nuestra consola, sin entrar en conflicto cada vez que ejecutemos código posteriormente.
Ya tenemos todo lo necesario para que podamos acceder a nuestro proyecto de Drupal, los contenedores ya están funcionando, por lo que, si escribimos el dominio, configurado en el archivo .evn, dentro de nuesto navegador, lo siguiente que tendríamos que ver es nuesto proyecto funcionando, pero todavía no hemos importado la base de datos para que esto ocurra.
Para importar la base de datos dentro de nuestro contenedor y que podamos ver luego el proyecto, tendremos que acceder directamente dentro del contenedor adecuado, para eso, ejecutaremos el comando que nos devolverá el nombre y estatus de todos los contenedores:
docker ps
A continuacióbn, buscaremos el Identificador único para el contenedor de Mysql, y luego escribiremos el siguiente comando, sustituyendo los datos necesarios:
docker exec -it ID_CONTENEDOR bash
Con esto podremos acceder al interior del contenedor seleccionado, que en este caso será el encargado de gestionar nuestra base de datos y a continuación, podremos ejecutar cualquiera de los comando de mysql.
Para acceder al servidor Mysql y consultar, podremos ejecutar algo parecido al siguiente comando:
mysql -udrupal9_existente -pdrupal9_existente
Con la anterior líneas, estaremos dentro de MySql y podremos ver el listado de bases de datos, de usuarios, permisos, etc.
En nuestro caso, ya tenemos listo el archivo que vamos a importar, colocado dentro de la carpeta raíz de nuestro proyecto Drupal, por lo tanto, para accedere al contenedor y realizar la importación, bastará con ejecutar el siguiente comando, sustituyendo los datos por los correspondientes a tus propios contenedores:
docker exec -i f8e957b6b019 mysql -udrupal9_existente -pdrupal9_existente drupal9_existente < backup_existente.sql
Ya tenemos nuestro proyecto Drupal, listo para continuar trabajando, pero quizás necesitaremos realizar algunas actualizaciones, ya sea mediante el uso del gestor de paquetes Composer, o de la herramienta Drush.
En estos casos, el contenedor desde el cual tendremos que ejecutar ambas operaciones, será el encargado de php, por lo que buscaremos nuevamente el nombre, con el comando docker ps, y una vez lo sepamos, la operación será muy parecida:
docker exec -it ID_CONTENEDOR bash
Y posteriormente, podremos ejecutar cualquiera de los comandos de Composer o Drush.
Permisos de Docker
Es posible que al ejecutar el comando para levantar los contenedores de Docker docker-compose up - d, la primera vez, te encuentres con un error relacionados con los permisos de ejecucion de los contenedores
Para solucionarlo, ejecuta el siguiente comando, ubicándote dentro de la carpeta en la que quieres levantar los contenedores:
sudo chmod 777 /var/run/docker.sock
Permisos en las carpetas
Aunque estemos trabajando con los archivos de un proyecto existente, al momento de trasladar esos archivos dentro de los contenedores, es posible que tengamos que volver a otorgar permisos de escritura y lectura a la carpeta root.
Para otorgar todos los permisos, nos colocaremos dentro de nuestra carpeta raiz y a continuación, ejecutaremos el comando siguiente:
sudo chmod -R 777 ./
Ahora que ya sabemos Cómo instalar una distribución Linux dentro de Windows 10 usando el WSL, podemos pasar al siguiente nivel y explorar tantas opciones como nos hagan falta, para trabajar con cualquier proyecto, sin tener que cambiarnos de ordenador o trabajar con máquinas virtuales.
La idea es facilitarnos la vida y que podamos implementar todas las herramientas necesarias sin la necesidad de invertir demasiado tiempo en ello.
Por esta razón, hoy vamos a explicar cómo podremos configurar un entorno PHP para desarrollar un proyecto utilizando Symfony; uno de los Frameworks más potentes, robustos y seguros que existen en el mercado.
Aclaración antes de seguir
Al momento de crear este artículo, existe un conocido error relacionado con el reloj en tiempo real con Ubuntu 20.04 y WSL2. Para evitar que surja este error, configuramos APT para congelar nuestra versión libc6 instalada a la de la distribución original emitiendo el siguiente comando:
sudo apt-mark hold libc6
Tan pronto como hayamos ejecutado el anterior comando, podremos actualizar los paquetes de ubuntu ejecutando los siguiente:
sudo apt update
sudo apt upgrade
Lo próximo que instalemos son las dependencias centrales para ejecutar la plataforma eZ (y muchas otras aplicaciones Symfony):
sudo apt install composer php-xml php-intl php-gd php-curl php-fpm
En la línea anterior, he omitido el servicio de base de datos para aclarar que la plataforma eZ es compatible con las bases de datos MySQL / MariaDB y PostgreSQL. ASí que podrás elegir lo que mejor se adapte a tus necesidades. En nuestro caso usaremos MariaDB para este tutorial. Instala el servidor MariaDB y la extensión PHP MySQL:
sudo apt install mariadb-server php-mysql
Ya estamos listos para arrancar la instancia del servidor MariaDB e iniciar sesión como usuario root:
sudo service mysql start
sudo mysql
Vamos a añadir una base de datos para la plataforma eZ, Por lo que ejecutamos las siguientes declaraciones SQL:
CREATE DATABASE ezp; GRANT ALL ON ezp.* TO 'ezp'@'localhost' IDENTIFIED BY 'wsl2ezp'; FLUSH PRIVILEGES; EXIT;
Y ahora comprobamos que podemos acceder a la base de datos:
mysql -uezp -pwsl2ezp ezp
Ahora ya tenemos un entorno Linux con PHP, MariaDB y el administrador de paquetes Composer listo para funcionar:
Ya que vamos a utilizar Symfony Encore para gestionar los activos de front-end, instalaremos el administrador de paquetes Yarn desde el repositorio del proyecto. De esta forma también instalará Node.js como dependencia:
curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | sudo apt-key add - echo "deb https://dl.yarnpkg.com/debian/ stable main" | sudo tee /etc/apt/sources.list.d/yarn.list sudo apt update sudo apt install yarn
A estas alturas, puede que hayas notado que falta en el procedimiento de instalación anterior es la A en LAMP y la E en LEMP. En lenguaje sencillo: nuestra pila no tiene un servidor web instalado. Tradicionalmente, una pila PHP ha incluido un servidor web separado. Un servidor HTTP completo sigue siendo para instalaciones de producción, pero como estamos en desarrollo utilizaremos una opción más simple: Symfony Local Web Server
Symfony CLI es una aplicación de línea de comandos independiente que podremos instalar desde nuestra terminal WSL. Recuerda seguir las instrucciones de Linux, NO las de Windows:
wget https://get.symfony.com/cli/installer -O - | bash
El código anterior lo instalará en nuestra carpeta de usuario, pero podremos hacerlo disponible de forma global si ejecutamos el siguiente código, cambiando el NOMBRE DEL USUARIO por el tuyo:
sudo mv /home/nombre_usuario/.symfony/bin/symfony /usr/local/bin/symfony
Ahora podemos verificar que nuestra pila está funcionando creando una nueva aplicación Symfony hello world y ejecutando el servidor web:
symfony new hola-mundo cd hola-mundo symfony serve
Ha llegado el momento de abrir una ventana del navegador en http: // localhost: 8000 / para ver la aplicación en ejecución. La primera vez que lo ejecutes, es posible que Windows te pregunte si este tráfico está permitido. Ahora debería tener una aplicación Symfony básica ejecutándose en Windows usando WSL2 como se muestra en la captura de pantalla a continuación.
Para obtener más detalles sobre cómo configurar TLS, múltiples versiones de PHP, etc., diríjase a los documentos de Symfony.
El siguiente paso es instalar y ejecutar una aplicación Symfony completa. Esto funciona como en cualquier entorno Linux (¡porque es uno!). Así que vamos a instalar una copia de la plataforma eZ y para ello utilizaremos. Éste se encargará de clonar los archivos desde el repositorio, verificará por nosotros las actualizaciones disponibles y a continuación instalar los paquetes necesarios usando:
composer create-project ezsystems/ezplatform ezplatform ^3 cd ezplatform
Lo siguiente será instalar nuestra base de datos y para ello, necesitamos definir la configuración de la base de datos y ejecutar el instalador:
echo "DATABASE_URL=mysql://ezp:wsl2ezp@127.0.0.1:3306/ezp?serverVersion=10.3" > .env.local composer run-script ezplatform-install
Cuando se haya completado el proceso de instalación, podremos ingresar al directorio del proyecto e iniciar el servidor web Symfony:
symfony serve
El resultado mostrará que el servidor web Symfony detecta y usa la copia instalada de PHP-FPM:
Ahora, si abrimos un navegador (en Windows) y nos dirigimos a http: // localhost: 8000 /, podremos ver la aplicación en ejecución. Para acceder a los archivos desde Windows, puede ejecutar el siguiente comando para abrir una ventana del Explorador de Windows en su directorio de trabajo actual:
explorer.exe .
Desde aquí, podrás recoger las cosas y usar cualquier IDE en Windows (¡o incluso notepad.exe!) Que necesites usar para tu desarrollo.
Aquí en drupaladicto.com nos gusta facilitar al máximo, todo lo relacionado con el desarrollo web, basándonos en Drupal, pero también en las diferentes herramientas complementarias, para que nuestro desarrollo pueda realizarse de forma optimizada, y adecuada según la necesidad de cada proyecto.
Una de nuestras opciones preferidas, es el uso del subsistema para Windows, llamado WSL2, ya que nos permite interactuar tanto en Linux como en Windows, sin la necesidad de instalar máquinas virtuales, como por ejemplo VirtualBox, cuya configuración y espacio necesarios para ejecutarse, muchas veces, dificultan nuestras actividades, en lugar de facilitarnos la vida.
Por esta razón, hoy aprenderemos a instalar y configurar el entorno de ejecución para JavaScript Node.js y los gestores de paquetes NVM ( Node Version Manager) y (NPM) (Node Package Manager), utilizando la distribución de Linux, Ubuntu 20.04 con WSL2 en un entorno Windows 11.
Seguiremos los pasos de instalación publicados en la documentación de la Página Oficial de Microsoft, que nos menciona el siguiente detalle a tomar en cuenta:
"Además de elegir si se desea realizar la instalación en Windows o WSL, al instalar Node.js es preciso elegir más opciones. Se recomienda usar un administrador de versiones, ya que las versiones cambian con mucha rapidez. Es probable que tenga que cambiar de versión de Node.js en función de las necesidades de los distintos proyectos en los que se trabaje. El administrador de versiones de Node, más comúnmente denominado nvm, es la forma más habitual de instalar varias versiones de Node.js.
Siempre se recomienda quitar cualquier instalación existente de Node.js o npm del sistema operativo antes de instalar un administrador de versiones, ya que los distintos tipos de instalación pueden provocar conflictos extraños y confusos."
Paso 1 : Abrir consola e iniciar sesión con nuestro usuario NO_ROOT, si no sabes, haz clic aquí
Paso 2 : Instala cURL (una herramienta que se usa para descargar contenido de Internet en la línea de comandos) con:
sudo apt-get install curl
Paso 3 : Instala nvm con:
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.0/install.sh | bash
NOTA : En el momento de redactar este artículo, NVM v0.39.0 es la versión más reciente disponible. Puedes consultar la página del proyecto de GitHub para obtener la última versión de NVM y ajustar el comando anterior para incluir la versión más reciente.
Paso 4 : Para verificar la instalación, escribe: command -v nvm... esto debería devolver "nvm"; si recibes "No se encuentra el comando" o ninguna respuesta, cierra el terminal actual, vuelve a abrirlo e inténtalo de nuevo. Obtén más información en el repositorio de GitHub de nvm.
Paso 5 : Enumera qué versiones de Node están instaladas actualmente (en este momento no debe haber ninguna):
nvm ls
Paso 6 : Instale las versiones de LTS actual y estable de Node.js. En un paso posterior, aprenderá a cambiar entre las versiones activas de Node.js con un comando nvm.
nvm install --lts
nvm install node
Paso 7 : Enumera qué versiones de Node están instaladas: nvm ls... ahora deberías ver las dos versiones que acabas de instalar.
Paso 8 : Comprueba que Node.js está instalado y la versión predeterminada actualmente con: node --version. Después, comprueba que también tienes npm, con:
npm --version
(También puedes usar which node o which npm para ver la ruta de acceso utilizada para las versiones predeterminadas).
Paso 9 : Para cambiar la versión de Node.js que deseas usar para un proyecto, crea un directorio de proyecto mkdir NodeTest, escribe el directorio cd NodeTest y, a continuación, escribe nvm use node, para cambiar a la versión actual, o bien nvm use --lts para cambiar a la versión de LTS. También puedes usar el número específico de cualquier versión adicional que hayas instalado, como nvm use v8.2.1. (Para enumerar todas las versiones de Node.js disponibles, usa el comando: nvm ls-remote).
Si usas NVM para instalar Node.js y NPM, no es necesario usar el comando SUDO para instalar nuevos paquetes.