Node.js ist eine Javascript-Laufzeitumgebung, die auf V8
basiert Open-Source-Engine von Google, die ursprünglich in Chrome verwendet wurde. Dank Node.js können wir Javascript außerhalb des Browserkontexts ausführen und es auch wie eine serverseitige Skriptsprache verwenden und so eine ganze Webanwendung darum herum erstellen. In diesem Tutorial erfahren Sie, wie Sie Node.js in der RHEL 8 / CentOS 8-Distribution installieren.
In diesem Tutorial lernen Sie:
- Wie man die verfügbaren Node.js-Versionen auf RHEL 8 / CentOS 8 auflistet
- So installieren Sie eine bestimmte Version von Node.js
- Wechseln zwischen Node.js-Versionen auf RHEL 8 / CentOS 8
Node.js – RHEL 8
Softwareanforderungen und verwendete Konventionen
Kategorie | Anforderungen, Konventionen oder verwendete Softwareversion |
---|---|
System | RHEL 8 / CentOS 8 |
Software | Die für dieses Tutorial benötigte Software ist bereits in einer Minimalinstallation von Rhel 8 enthalten |
Andere | Root-Rechte zum Installieren der benötigten Pakete |
Konventionen | # – erfordert, dass bestimmte Linux-Befehle mit Root-Rechten ausgeführt werden, entweder direkt als Root-Benutzer oder durch Verwendung von sudo Befehl$ – erfordert, dass bestimmte Linux-Befehle als normaler, nicht privilegierter Benutzer ausgeführt werden |
Welche Version von Node.js?
Wie wir in einem früheren Artikel über die Installation von PHP auf Rhel8 gesehen haben, führt die Version von Red Hat Enterprise Linux eine neue Art der Organisation von Software in Repositories ein. Standardmäßig sind in der Distribution nur zwei Softwarequellen aktiviert:BaseOs
und Appstream
. Ersteres enthält die vom Betriebssystem benötigten Kernpakete, während letzteres verschiedene Arten von Software beherbergt, die in Modulen
organisiert sind .
Der Hauptvorteil der Verwendung dieses Paradigmas besteht darin, dass zwischen verschiedenen Versionen derselben Anwendung oder desselben Dienstprogramms gewählt werden kann. Node.js ist eine der im Appstream
enthaltenen Anwendungen Repository, daher müssen wir, um die Versionen dieser Javascript-Laufzeitumgebung zu überprüfen, die auf RHEL 8 verfügbar sind, nur module
verwenden , ein Unterbefehl von dnf
, der Paketmanager der Distribution. Wir laufen:
$ sudo dnf module list nodejs
Die Ausgabe des Befehls zeigt die verfügbaren Module und ihren Status:
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
Was sagt uns diese Ausgabe? Zunächst können wir sehen, dass es zwei Versionen (oder „Streams“) von Node.js
gibt auf dem System verfügbar:10 und 8. Wir können auch sehen, dass Ersteres als [d]
markiert ist und wird daher standardmäßig installiert. Für jeden Stream sind mehrere Profile verfügbar:Je nachdem, welches ausgewählt wird, werden unterschiedliche Pakete installiert. Um die Liste der Pakete anzuzeigen, die mit jedem Profil installiert würden, können wir den folgenden Befehl ausführen:
$ sudo dnf module info --profile nodejs
Die Syntax des Befehls ist intuitiv:Wir haben dnf
verwendet mit dem Modul
Unterbefehl und die info
action, um Informationen über das nodejs-Modul anzufordern. Durch Angabe des --profile
Option haben wir angegeben, dass wir Informationen über die verfügbaren Profile wünschen. Hier ist die Ausgabe des Befehls:
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
Für jeden verfügbaren Stream wird die Liste der in jedem Profil enthaltenen Pakete angezeigt. Wir können das sehen, indem wir den default
verwenden profile sind die in der Installation enthaltenen Pakete nodejs
selbst und npm
, der Node Package Manager. Durch die Verwendung der Entwicklung
Profil, das nodejs-devel
Paket wird der Liste hinzugefügt, während bei Verwendung des minimal
Erstens ist nodejs das einzige installierte Paket. Schließlich das s2i
(Source-to-Image)-Profil enthält nodejs, npm und nodejs-nodemon, das im Grunde ein Skript ist, das während der Entwicklung einer node.js-App verwendet werden soll.
Installieren der Standardversion
Da wir nun die verfügbaren Node.js-Versionen kennen, können wir entscheiden, welche installiert werden soll. Wie wir oben gesagt haben, ist die Standardversion 10. Wenn dies die gewünschte ist, müssen wir nur Folgendes ausführen:
$ sudo dnf install nodejs
Eine Zusammenfassung der zu installierenden Pakete und ihrer Abhängigkeiten wird auf dem Terminal angezeigt, und das System fragt nach einer Bestätigung, um fortzufahren:
====================================================================================================================================================== 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]:
Festlegen der zu installierenden Version
Was ist, wenn wir eine alternative Version (eine stream
in der Rhel-Terminologie) oder ein anderes Profil? Die Syntax ist ganz einfach:
name:stream/profile
Grundsätzlich, um die Standardversion von nodejs
zu installieren Modul, aber mit dem development
Profil würden wir ausführen:
$ sudo dnf module install nodejs:10/development
Die Liste der zu installierenden Pakete verlängert sich entsprechend der Profiländerung:
====================================================================================================================================================== 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
Um Version 8 der Javascript-Laufzeitumgebung mit dem Standardprofil zu installieren, würden wir auf die gleiche Weise Folgendes ausführen:
$ sudo dnf module install nodejs:8
Da wir in diesem Fall das Standardprofil verwenden wollten, haben wir darauf verzichtet, es in den Befehl aufzunehmen. Wie Sie
in der Ausgabe unten überprüfen können, hat sich die Version der zu installierenden Pakete erneut geändert:
====================================================================================================================================================== 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
Angenommen, wir haben die Installation der obigen Paketliste bestätigt. Wenn wir jetzt laufen:
$ sudo dnf module list nodejs
Wir können die Änderungen sehen, die sich in der in der Ausgabe verwendeten Notation widerspiegeln:
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
Die Version 10
ist immer noch als Standard gekennzeichnet, aber jetzt die Version 8
Stream ist mit [e]
gekennzeichnet was bedeutet, dass es automatisch aktiviert wurde. Außerdem ist der [i][code> mark wird im Profilabschnitt desselben Streams neben dem Namen des installierten Streams verwendet.
Version wechseln
Was ist, wenn wir eine bestimmte Version von Node.js installiert haben und zu einer anderen wechseln möchten? Grundsätzlich müssen wir die zu installierende neue Version angeben und das System kümmert sich um den Rest. Zum Beispiel, um zurück zu Version 10
zu wechseln wir laufen wieder:
$ sudo dnf module install nodejs:10/default
Die Aktionen, die zur Erfüllung der Anfrage durchgeführt würden, werden berechnet und uns angezeigt. In der Transaktionszusammenfassung
Abschnitt der Ausgabe unten können wir tatsächlich feststellen, dass 2 Pakete (nodejs und npm) aktualisiert würden:
====================================================================================================================================================== 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
Schlussfolgerungen
Node.js ist eine Laufzeitumgebung, die auf der V8-JavaScript-Engine von Google basiert und ursprünglich im Chrome-Browser verwendet wurde. Durch die Verwendung können wir Anwendungen mit Javascript außerhalb des Kontexts eines Webbrowsers erstellen. In diesem Tutorial haben wir gesehen, wie man die nodejs
installiert Paket auf dem Betriebssystem RHEL/CentOS Linux 8, welche Versionen des Pakets in den Standard-Repositories verfügbar sind, wie es möglich ist, ein bestimmtes Paket zu installieren, und wie, dank modules
, der neuen Art, Software in der neuesten Version der Red Hat Enterprise Distribution zu organisieren, können wir von einer Version zur anderen wechseln.