Node.js est un environnement d'exécution Javascript basé sur le V8
moteur open source 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 complète autour de lui. Dans ce tutoriel, nous verrons comment installer Node.js dans la distribution RHEL 8 / CentOS 8.
Dans ce didacticiel, vous apprendrez :
- 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 les versions de Node.js sur RHEL 8/CentOS 8
Le Node.js – RHEL 8
Configuration logicielle requise et conventions utilisées
Catégorie | Exigences, conventions ou version du logiciel utilisée |
---|---|
Système | RHEL 8/CentOS 8 |
Logiciel | Le logiciel nécessaire pour suivre ce tutoriel est déjà inclus dans une installation minimale de Rhel 8 |
Autre | Privilèges root pour installer les packages nécessaires |
Conventions | # - nécessite que les commandes linux données soient exécutées avec les privilèges root soit directement en tant qu'utilisateur root, soit en utilisant sudo commande$ – nécessite que les commandes linux données soient exécutées en tant qu'utilisateur normal non privilégié |
Quelle version de Node.js ?
Comme nous l'avons vu dans un article précédent sur l'installation de php sur Rhel8, la version de Red Hat Enterprise Linux introduit une nouvelle façon d'organiser les logiciels dans des référentiels. Par défaut, il n'y a que deux sources logicielles 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 différents 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 Appstream
référentiel, donc pour vérifier les versions de ce runtime Javascript disponibles sur RHEL 8, il suffit d'utiliser module
, une sous-commande de dnf
, le gestionnaire de packages de distribution. Nous courons :
$ sudo dnf module list nodejs
La sortie de la commande affiche 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 sortie ? Tout d'abord nous pouvons voir qu'il existe deux versions (ou "streams") de Node.js
disponible sur le système :10 et 8. Nous pouvons également voir que le premier est marqué comme [d]
et est donc défini comme celui 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 packages qui seraient installés avec chaque profil, nous pouvons exécuter la commande suivante :
$ sudo dnf module info --profile nodejs
La syntaxe de la commande est intuitive :nous avons utilisé dnf
avec le module
sous-commande et le info
action, pour demander des informations sur le module nodejs. En fournissant le --profile
option, nous avons spécifié que nous voulions 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 packages inclus dans chaque profil est affichée. Nous pouvons le voir en utilisant le default
profile, les packages inclus dans l'installation sont nodejs
lui-même et npm
, le gestionnaire de packages de nœuds. En utilisant le development
profil, le nodejs-devel
package est ajouté à la liste, tandis que lors de l'utilisation du minimal
un, le seul package installé est nodejs. Enfin, le s2i
Le profil (Source-to-Image) inclut 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 disponibles de Node.js, nous pouvons décider laquelle installer. Comme nous l'avons dit plus haut, la version par défaut est 10. Si c'est celle souhaitée, il suffit de lancer :
$ sudo dnf install nodejs
Un récapitulatif des packages à installer et de leurs dépendances s'affichera 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écifier la version à installer
Et si nous voulons installer une version alternative (un stream
dans la terminologie Rhel) ou un profil différent ? La syntaxe est assez simple :
name:stream/profile
En gros, pour installer la version par défaut du nodejs
module, mais avec le development
profil, nous lancerions :
$ sudo dnf module install nodejs:10/development
La liste des packages 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 Packages
De la même manière, pour installer la version 8 du runtime Javascript avec le profil par défaut, nous exécuterions :
$ sudo dnf module install nodejs:8
Dans ce cas, puisque nous voulions utiliser le profil par défaut, nous avons omis de l'inclure dans la commande. Comme vous pouvez
vérifier dans la sortie ci-dessous, la version des packages à installer a de nouveau changé :
====================================================================================================================================================== 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
Supposons que nous confirmions l'installation de la liste des packages ci-dessus. Si nous exécutons maintenant :
$ sudo dnf module list nodejs
Nous 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]nstalled
La version 10
est toujours marqué comme celui par défaut, mais maintenant la version 8
le flux est marqué avec [e]
ce qui signifie qu'il a été automatiquement activé. De plus, le [i]
La marque est utilisée dans la section des profils du même flux, près du nom de celui installé.
Changer de version
Et si nous installions une version spécifique de Node.js et que nous voulions passer à une autre ? Fondamentalement, nous devons spécifier la nouvelle version à installer et le système s'occupera du reste. Par exemple, pour revenir à la version 10
nous recommençons :
$ sudo dnf module install nodejs:10/default
Les actions qui seraient réalisées afin de satisfaire la demande nous sont calculées et affichées. Dans le Transaction Summary
section 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
Conclusion
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 utilisant Javascript en dehors du contexte d'un navigateur Web. Dans ce tutoriel, nous avons vu comment installer le nodejs
package sur le système d'exploitation RHEL/CentOS Linux 8, quelles versions du package sont disponibles dans les référentiels par défaut, comment est-il 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, nous pouvons passer d'une version à l'autre.