RHEL 8 setup
This Hello, World shows how to install and run a package on Red Hat Enterprise Linux 8. If you haven’t already, download and install RHEL 8, and register it with Red Hat Subscription Management. If you don’t already have a subscription, a no-cost developer subscription will be created for you when you download through developers.redhat.com.
Make sure you have the core Red Hat Enterprise Linux 8 development tools (make, git, gcc) installed. If you didn’t select Development Tools during installation, install them now:
$ sudo yum groupinstall ‘Development Tools’
Note: if sudo
isn’t enabled for your user ID, see How to enable sudo on Red Hat Enterprise Linux. During system installation, checking the box Make this user administrator enables sudo
for your user ID.
Node.js on RHEL 8 Quick Start (TL;DR)
Install latest Node.js with development libraries
$ sudo yum module install nodejs/development
Installing Node.js on RHEL 8
First, see what Node.js package are available as part of the Application Stream Repository:
$ sudo yum module list nodejs nodejs 10 [d] common [d], development, minimal, s2i Javascript runtime
There are several profiles available for the Node.js package. The default is to install a common set of runtime packages. For developers, using the development
profile installs the libraries that enable you to build dynamically loadable modules.
$ sudo yum module install nodejs/development
Node.js is now installed. Check the version and the path:
$ node -v $ npm -v $ which node /usr/bin/node $ which npm /usr/bin/npm
Alternatively If you wanted to install only a minimal set of Node.js packages, the command is:
$ sudo yum module install nodejs/minimal
For an explanation of the above commands, see Working with AppStreams below.
Node.js on RHEL 8 Hello, World
Let’s create a Node.js program that can be run from the command line. Using a text editor such as vi, nano, or geditcreate a file named hello.js with the following content:
hello.js #!/usr/bin/node console.log("Hello, Red Hat Developer World from Node " + process.version)
Save it and exit the editor. Run it with the `node` command:
$ node hello.js Hello, Red Hat Developer World from Node v10.11.0
Optionally, make `hello.js` executable:
$ chmod +x hello.js
Now because the program starts with `#!/usr/bin/node` you can run it directly:
$ ./hello.js
A web-based Hello, World
The next step is to try a slightly larger Node.js example that implements a tiny web server. Using your preferred text editor, create a file named hello-http.js with the following content:
hello-http.js #!/usr/bin/node var http = require('http'); var port = 8000; var laddr = '0.0.0.0'; http.createServer(function (req, res) { res.writeHead(200, {'Content-Type': 'text/plain'}); res.end('Hello, Red Hat Developer World from ' + process.version + '!\n'); console.log('Processed request for '+ req.url); }).listen(port, laddr); console.log('Server running at http://' + laddr + ':' + port + '/');
Save it and exit the editor. Then, make it executable:
$ chmod +x hello-http.js
Now, you can run it:
$ ./hello-http.js Hello, Red Hat Developer World from Node v10.11.0
You can use a browser such as Firefox, to connect to the Node.js web server using the URL `http://localhost:8000/`. Alternatively, you can use `curl` in a different window/terminal tab:
$ curl http://localhost:8000/
Working with Appstreams
The first step is to see what modules are available the Applications Streams (appstream) repo:
$ sudo yum module list # list all available modules in appstream
Or, find just the modules named `nodejs`
$ sudo yum module list nodejs
From the output you can see that Node.js 10 is the default module to install, note the `[d]`. You could have simply typed the following to install the default nodejs module.
$ sudo yum module install nodejs
Or even, shorter using ‘@’:
$ sudo yum install @nodejs
The above commands would have installed the nodejs with the default profile. A profile is group, usually a subset, of the packages in a module. For this module the default profile is named `default. In the steps above, the `development` profile was chosen to get the packages in the development profile installed.
To find out more about a module, use one of the following commands:
$ yum module info nodejs # get info about the default nodejs module
$ yum module info nodejs:10 # get info about a specific module stream