Comment installer node.js sur RHEL 8/CentOS 8 Linux
Node.js s’agit d’un environnement d’exécution Javascript basé sur le moteur open source V8 créé par Google et utilisé à l’origine dans Chrome. Grâce à Node.js nous pouvons exécuter Javascript en dehors du contexte du navigateur, et l’utiliser également comme un langage de script côté serveur, créant ainsi une application web entière autour de celui-ci. Dans ce tutoriel, nous allons voir comment installer Node.js dans la distribution RHEL 8/CentOS 8.
Dans ce tutoriel, vous allez apprendre :
- Comment répertorier les versions Node.js disponibles sur RHEL 8/CentOS 8
- Comment installer une version spécifique de Node.js
- Comment basculer entre Node.js versions sur RHEL 8/CentOS 8
Le Node.js – RHEL 8
Configuration logicielle requise et conventions utilisées
Quelle version de Node.js ?
Comme nous l’avons vu dans un précédent article sur l’installation de php sur Rhel8, la version de Red Hat Enterprise Linux introduit une nouvelle façon d’organiser les logiciels dans les dépôts. Par défaut, seules deux sources logicielles sont activées dans la distribution : BaseOs et Appstream. Le premier contient les packages de base nécessaires au système d’exploitation, tandis que le second héberge divers types de logiciels organisés en modules.
Le principal avantage de l’utilisation de ce paradigme est qu’il est possible de choisir entre différentes versions d’une même application ou d’un même utilitaire. Node.js’est l’une des applications incluses dans le référentiel Appstream, donc pour vérifier les versions de ce runtime Javascript disponibles sur RHEL 8, tout ce que nous avons à faire est d’utiliser module, une sous-commande de dnf, le gestionnaire de paquets de distribution. Nous gérons :
sudo dnf module list nodejsLe résultat de la commande indique les modules disponibles et leur état :
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
Que nous dit cette production ? Tout d’abord, nous pouvons voir qu’il existe deux versions (ou « flux ») de Node.js disponibles sur le système : 10 et 8. Nous pouvons également voir que la première est marquée comme [d] et est donc définie comme celle par défaut à installer. Pour chaque flux, plusieurs profils sont disponibles : différents ensembles de packages seront installés en fonction de celui qui est sélectionné. Pour voir la liste des paquets qui seraient installés avec chaque profil, nous pouvons exécuter la commande suivante :
sudo dnf module info --profile nodejsLa syntaxe de la commande est intuitive : nous avons utilisé dnf avec la sous-commande module et l’action info, pour demander des informations sur le module nodejs. En fournissant l’option --profile, nous avons spécifié que nous voulons des informations sur les profils disponibles. Voici le résultat de la commande :
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
Pour chaque flux disponible, la liste des forfaits inclus dans chaque profil s’affiche. Nous pouvons voir qu’en utilisant le profil par défaut, les paquets inclus dans l’installation sont nodejs lui-même et npm, le gestionnaire de paquets de nœuds. En utilisant le profil de développement, le paquet nodejs-devel est ajouté à la liste, tandis qu’en utilisant le minimal, le seul paquet installé est nodejs. Enfin, le profil s2i (Source-to-Image) comprend nodejs, npm et nodejs-nodemon qui est essentiellement un script destiné à être utilisé lors du développement d’une application node.js.
Installation de la version par défaut
Maintenant que nous connaissons les versions Node.js disponibles, nous pouvons décider laquelle installer. Comme nous l’avons dit plus haut, la version par défaut est la 10. Si c’est celui que nous souhaitons, tout ce que nous avons à faire est d’exécuter :
sudo dnf install nodejsUn résumé des paquets à installer et de leurs dépendances sera affiché sur le terminal, et le système demandera la confirmation pour continuer :
======================================================================================================================================================
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]:Spécification de la version à installer
Que se passe-t-il si nous voulons installer une version alternative (un flux dans la terminologie de Rhel) ou un profil différent ? La syntaxe est assez simple :
name:stream/profileEn gros, pour installer la version par défaut du module nodejs, mais avec le profil de développement, on exécuterait :
sudo dnf module install nodejs:10/developmentLa liste des paquets qui seraient installés augmente en fonction du changement de profil :
======================================================================================================================================================
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 PackagesDe la même manière, pour installer la version 8 du runtime Javascript avec le profil par défaut, on exécuterait :
sudo dnf module install nodejs:8Dans ce cas, puisque nous voulions utiliser le profil par défaut, nous avons omis de l’inclure dans la commande. Comme vous pouvez le vérifier dans le résultat ci-dessous, la version des paquets à installer a de nouveau changée dans
:
======================================================================================================================================================
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 PackagesSupposons que nous confirmions l’installation de la liste des paquets ci-dessus. Si nous exécutons maintenant :
sudo dnf module list nodejsNous pouvons voir les changements reflétés par la notation utilisée dans la sortie :
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]nstalledLa version 10 est toujours marquée par défaut, mais le flux de la version 8 est maintenant marqué d’un [e], ce qui signifie qu’il a été automatiquement activé. De plus, la marque [i] est utilisée dans la section des profils du même flux, près du nom du flux installé.
Changement de version
Que se passe-t-il si nous installons une version spécifique de Node.js et que nous voulons passer à une autre ? En gros, nous devons spécifier la nouvelle version à installer et le système s’occupera du reste. Par exemple, pour revenir à la version 10, nous exécutons à nouveau :
sudo dnf module install nodejs:10/defaultLes actions qui seraient effectuées afin de satisfaire la demande sont calculées et nous sont affichées. Dans la section Résumé des transactions de la sortie ci-dessous, on peut en effet remarquer que 2 packages (nodejs et npm) seraient mis à jour :
======================================================================================================================================================
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
Conclusions
Node.js est un runtime basé sur le moteur Javascript V8 créé par google, et utilisé à l’origine dans le navigateur Chrome. En l’utilisant, nous pouvons créer des applications en utilisant Javascript en dehors du contexte d’un navigateur web. Dans ce tutoriel, nous avons vu comment installer le paquet nodejs sur le système d’exploitation RHEL/CentOS Linux 8, quelles versions du paquet sont disponibles dans les dépôts par défaut, comment il est possible d’en installer un spécifique, et comment, grâce aux modules, la nouvelle façon d’organiser les logiciels dans la dernière version de la distribution d’entreprise Red Hat, On peut passer d’une version à l’autre.