Requisitos de software y convenciones de la línea de comandos de Linux Categoría | Requisitos, convenciones o versión de software utilizada |
Sistema | RHEL 8 / CentOS 8 |
Software | El software necesario para seguir este tutorial ya está incluido en una instalación mínima de Rhel 8 |
Otro | Privilegios de raíz para instalar los paquetes necesarios |
Convenciones | # – requiere que los comandos de Linux dados se ejecuten con privilegios de root, ya sea directamente como usuario root o mediante el uso de sudo comando $ – requiere que los comandos de Linux dados se ejecuten como un usuario normal sin privilegios |
¿Qué versión de Node.js?
Como vimos en un artículo anterior sobre la instalación de php en Rhel8, la versión de Red Hat Enterprise Linux presenta una nueva forma de organizar el software en los repositorios. Por defecto, solo hay dos fuentes de software habilitadas en la distribución:BaseOs
y Appstream
. El primero contiene los paquetes principales que necesita el sistema operativo, mientras que el segundo alberga varios tipos de software organizados en modules
. .
La principal ventaja de usar este paradigma es que es posible elegir entre diferentes versiones de una misma aplicación o utilidad. Node.js es una de las aplicaciones incluidas en el Appstream
repositorio, por lo tanto, para verificar las versiones de este tiempo de ejecución de Javascript disponibles en RHEL 8, todo lo que tenemos que hacer es usar module
, un subcomando de dnf
, el administrador de paquetes de distribución. Ejecutamos:
$ sudo dnf module list nodejs
La salida del comando muestra los módulos disponibles y su estado:
Red Hat Enterprise Linux 8 for x86_64 - AppStream Beta (RPMs)
Name Stream Profiles Summary
nodejs 10 [d] development, minimal, s2i, default [d] Javascript runtime
nodejs 8 development, minimal, s2i, default [d] Javascript runtime
Hint: [d]efault, [e]nabled, [x]disabled, [i]nstalled
¿Qué nos dice esta salida? En primer lugar, podemos ver que hay dos versiones (o "flujos") de Node.js
disponibles en el sistema:10 y 8. También podemos ver que el primero está marcado como [d]
y por lo tanto se establece como el predeterminado para ser instalado. Para cada transmisión, hay varios perfiles disponibles:se instalarán diferentes conjuntos de paquetes según cuál se seleccione. Para ver la lista de paquetes que se instalarían con cada perfil, podemos ejecutar el siguiente comando:
$ sudo dnf module info --profile nodejs
La sintaxis del comando es intuitiva:usamos dnf
con el module
subcomando y el info
action, para solicitar información sobre el módulo nodejs. Al proporcionar el --profile
opción, especificamos que queremos información sobre los perfiles disponibles. Aquí está la salida del comando:
Name : nodejs:10:20181011133319:9edba152:x86_64
development : nodejs
: nodejs-devel
: npm
minimal : nodejs
s2i : nodejs
: nodejs-nodemon
: npm
default : nodejs
: npm
Name : nodejs:8:20181011134412:9edba152:x86_64
development : nodejs
: nodejs-devel
: npm
minimal : nodejs
s2i : nodejs
: nodejs-nodemon
: npm
default : nodejs
: npm
Para cada flujo disponible se muestra la lista de paquetes incluidos en cada perfil. Podemos ver eso usando el default
perfil, los paquetes incluidos en la instalación son nodejs
sí mismo y npm
, el administrador de paquetes de nodos. Usando el development
perfil, el nodejs-devel
el paquete se agrega a la lista, mientras que cuando se usa el minimal
one, el único paquete instalado es nodejs. Finalmente, el s2i
El perfil (Source-to-Image) incluye nodejs, npm y nodejs-nodemon, que es básicamente un script destinado a ser utilizado durante el desarrollo de una aplicación node.js.
Instalando la versión por defecto
Ahora que conocemos las versiones disponibles de Node.js, podemos decidir cuál instalar. Como dijimos anteriormente, la versión por defecto es la 10. Si esta es la deseada, todo lo que tenemos que hacer es ejecutar:
$ sudo dnf install nodejs
En el terminal se mostrará un resumen de los paquetes a instalar y sus dependencias, y el sistema solicitará la confirmación para continuar:
======================================================================================================================================================
Package Arch Version Repository Size
======================================================================================================================================================
Installing:
nodejs x86_64 1:10.11.0-2.el8+2021+27085a9b Rhel-8-for-x86_64-appstream-beta-rpms 8.4 M
Installing dependencies:
npm x86_64 1:6.4.1-1.10.11.0.2.el8+2021+27085a9b Rhel-8-for-x86_64-appstream-beta-rpms 3.6 M
libuv x86_64 1:1.23.1-1.el8 Rhel-8-for-x86_64-appstream-beta-rpms 134 k
http-parser x86_64 2.8.0-1.el8 Rhel-8-for-x86_64-appstream-beta-rpms 40 k
Enabling module streams:
nodejs 10
Transaction Summary
======================================================================================================================================================
Install 4 Packages
Total download size: 12 M
Installed size: 57 M
Is this ok [y/N]:
Especificar la versión a instalar
¿Qué pasa si queremos instalar una versión alternativa (un stream
en la terminología de Rhel) o un perfil diferente? La sintaxis es bastante simple:
name:stream/profile
Básicamente, para instalar la versión predeterminada de nodejs
módulo, pero con el development
perfil, ejecutaríamos:
$ sudo dnf module install nodejs:10/development
La lista de paquetes que se instalarían aumenta de acuerdo al cambio de perfil:
======================================================================================================================================================
Package Arch Version Repository Size
======================================================================================================================================================
Installing group/module packages:
npm x86_64 1:6.4.1-1.10.11.0.2.el8+2021+27085a9b Rhel-8-for-x86_64-appstream-beta-rpms 3.6 M
nodejs-devel x86_64 1:10.11.0-2.el8+2021+27085a9b Rhel-8-for-x86_64-appstream-beta-rpms 11 M
nodejs x86_64 1:10.11.0-2.el8+2021+27085a9b Rhel-8-for-x86_64-appstream-beta-rpms 8.4 M
Installing dependencies:
redhat-rpm-config noarch 115-1.el8 Rhel-8-for-x86_64-appstream-beta-rpms 82 k
perl-srpm-macros noarch 1-25.el8 Rhel-8-for-x86_64-appstream-beta-rpms 11 k
go-srpm-macros noarch 2-16.el8 Rhel-8-for-x86_64-appstream-beta-rpms 14 k
dwz x86_64 0.12-9.el8 Rhel-8-for-x86_64-appstream-beta-rpms 109 k
libuv x86_64 1:1.23.1-1.el8 Rhel-8-for-x86_64-appstream-beta-rpms 134 k
http-parser x86_64 2.8.0-1.el8 Rhel-8-for-x86_64-appstream-beta-rpms 40 k
python3-rpm-macros noarch 3-35.el8 Rhel-8-for-x86_64-appstream-beta-rpms 13 k
rust-srpm-macros noarch 5-2.el8 Rhel-8-for-x86_64-appstream-beta-rpms 9.3 k
ocaml-srpm-macros noarch 5-4.el8 Rhel-8-for-x86_64-appstream-beta-rpms 9.5 k
efi-srpm-macros noarch 3-2.el8 Rhel-8-for-x86_64-appstream-beta-rpms 22 k
qt5-srpm-macros noarch 5.11.1-2.el8 Rhel-8-for-x86_64-appstream-beta-rpms 11 k
http-parser-devel x86_64 2.8.0-1.el8 Rhel-8-for-x86_64-appstream-beta-rpms 18 k
nodejs-packaging noarch 17-2.el8+1541+81a6effd Rhel-8-for-x86_64-appstream-beta-rpms 19 k
libuv-devel x86_64 1:1.23.1-1.el8 Rhel-8-for-x86_64-appstream-beta-rpms 34 k
ghc-srpm-macros noarch 1.4.2-7.el8 Rhel-8-for-x86_64-appstream-beta-rpms 9.4 k
python-srpm-macros noarch 3-35.el8 Rhel-8-for-x86_64-appstream-beta-rpms 14 k
openblas-srpm-macros noarch 2-2.el8 Rhel-8-for-x86_64-appstream-beta-rpms 8.0 k
krb5-devel x86_64 1.16.1-19.el8 Rhel-8-for-x86_64-baseos-beta-rpms 546 k
libsepol-devel x86_64 2.8-1.el8 Rhel-8-for-x86_64-baseos-beta-rpms 85 k
libcom_err-devel x86_64 1.44.3-1.el8 Rhel-8-for-x86_64-baseos-beta-rpms 37 k
pcre2-devel x86_64 10.31-11.el8 Rhel-8-for-x86_64-baseos-beta-rpms 591 k
zip x86_64 3.0-21.el8 Rhel-8-for-x86_64-baseos-beta-rpms 270 k
libkadm5 x86_64 1.16.1-19.el8 Rhel-8-for-x86_64-baseos-beta-rpms 184 k
unzip x86_64 6.0-38.el8 Rhel-8-for-x86_64-baseos-beta-rpms 192 k
keyutils-libs-devel x86_64 1.5.10-6.el8 Rhel-8-for-x86_64-baseos-beta-rpms 48 k
openssl-devel x86_64 1:1.1.1-6.el8 Rhel-8-for-x86_64-baseos-beta-rpms 2.3 M
libselinux-devel x86_64 2.8-5.el8 Rhel-8-for-x86_64-baseos-beta-rpms 199 k
zlib-devel x86_64 1.2.11-10.el8 Rhel-8-for-x86_64-baseos-beta-rpms 56 k
pcre2-utf16 x86_64 10.31-11.el8 Rhel-8-for-x86_64-baseos-beta-rpms 223 k
libverto-devel x86_64 0.3.0-5.el8 Rhel-8-for-x86_64-baseos-beta-rpms 18 k
pcre2-utf32 x86_64 10.31-11.el8 Rhel-8-for-x86_64-baseos-beta-rpms 215 k
Installing module profiles:
nodejs/development
Enabling module streams:
nodejs 10
Transaction Summary
======================================================================================================================================================
Install 34 Packages
De la misma manera, para instalar la versión 8 del tiempo de ejecución de Javascript con el perfil predeterminado, ejecutaríamos:
$ sudo dnf module install nodejs:8
En este caso, como queríamos usar el perfil predeterminado, omitimos incluirlo en el comando. Como puede
verificar en el siguiente resultado, la versión de los paquetes a instalar cambió nuevamente:
======================================================================================================================================================
Package Arch Version Repository Size
======================================================================================================================================================
Installing group/module packages:
nodejs x86_64 1:8.11.4-2.el8+2022+2ec55091 Rhel-8-for-x86_64-appstream-beta-rpms 7.5 M
npm x86_64 1:5.6.0-1.8.11.4.2.el8+2022+2ec55091 Rhel-8-for-x86_64-appstream-beta-rpms 4.1 M
Installing dependencies:
libuv x86_64 1:1.23.1-1.el8 Rhel-8-for-x86_64-appstream-beta-rpms 134 k
http-parser x86_64 2.8.0-1.el8 Rhel-8-for-x86_64-appstream-beta-rpms 40 k
Installing module profiles:
nodejs/default
Enabling module streams:
nodejs 8
Transaction Summary
======================================================================================================================================================
Install 4 Packages
Supongamos que confirmamos la instalación de la lista de paquetes anterior. Si ahora ejecutamos:
$ sudo dnf module list nodejs
Podemos ver los cambios reflejados por la notación utilizada en la salida:
Name Stream Profiles Summary
nodejs 10 [d] development, minimal, s2i, default [d] Javascript runtime
nodejs 8 [e] development, minimal, s2i, default [d] [i] Javascript runtime
Hint: [d]efault, [e]nabled, [x]disabled, [i]nstalled
La versión 10
todavía está marcado como el predeterminado, pero ahora la versión 8
la transmisión está marcada con [e]
lo que significa que se ha habilitado automáticamente. Además, el [i]
La marca se usa en la sección de perfiles de la misma transmisión, cerca del nombre del instalado.
Versión de cambio
¿Qué pasa si instalamos una versión específica de Node.js y queremos cambiar a otra? Básicamente, tenemos que especificar la nueva versión a instalar y el sistema se encargará del resto. Por ejemplo, para volver a la versión 10
corremos de nuevo:
$ sudo dnf module install nodejs:10/default
Las acciones que se realizarían para satisfacer la solicitud se calculan y se nos muestran. En el Transaction Summary
sección del resultado a continuación, podemos notar que se actualizarán 2 paquetes (nodejs y npm):
======================================================================================================================================================
Package Arch Version Repository Size
======================================================================================================================================================
Upgrading:
npm x86_64 1:6.4.1-1.10.11.0.2.el8+2021+27085a9b Rhel-8-for-x86_64-appstream-beta-rpms 3.6 M
nodejs x86_64 1:10.11.0-2.el8+2021+27085a9b Rhel-8-for-x86_64-appstream-beta-rpms 8.4 M
Switching module streams:
nodejs 8 -> 10
Transaction Summary
======================================================================================================================================================
Upgrade 2 Packages
Conclusiones
Node.js es un tiempo de ejecución basado en el motor Javascript V8 creado por Google y utilizado originalmente en el navegador Chrome. Al usarlo, podemos crear aplicaciones usando Javascript fuera del contexto de un navegador web. En este tutorial vimos cómo instalar nodejs
paquete en el sistema operativo RHEL/CentOS Linux 8, qué versiones del paquete están disponibles en los repositorios predeterminados, cómo es posible instalar uno específico y cómo, gracias a modules
, la nueva forma de organizar el software en la última versión de la distribución empresarial de Red Hat, podemos cambiar de una versión a otra.