Installing Node.js for IBM i


  1. See the installation guide to determine what versions of Node.js are supported by each Profound.js release.

  2. IBM i 7.2 or higher is required for installing Node.js on IBM i.

  3. The yum opensource package manager is required for installing Node.js on IBM i.

Don't have yum?

Documentation by IBM on how to install the yum opensource package manager to an IBM i can be found here.

Installing Node.js with yum Package Manager

If yum is properly set up on your system, you can install Node.js by running the following command in a PASE shell:

yum install nodejs20

If you would like to install a different version of Node.js, you can simply replace nodejs20 with the correct version in the command.

Multiple versions of Node.js can co-exist on the same IBM i system. For instructions on selecting the system default version when multiple Node.js versions are installed, see here.

IMPORTANT - Profound.js is tested with versions of Node Package Manger (NPM) that install from the IBM yum repos. The Node.js packages include a copy of NPM that gets updated when the Node.js yum package is updated. Do not manually update or change the NPM version on the system, as this can result in installation problems.

For example, if NPM shows a message like below, DO NOT follow the steps given to update NPM:

Downgrade NPM

If you accidentally changed the version of NPM from that installed by yum, re-install Node.js to set NPM back to normal. For example, to re-install Node.js 14 w/NPM 6:

yum reinstall nodejs14

Node.js on IBM i

Node.js on IBM i is installed in locations like this:


The system-wide default version is a symlink here, which points to one of the above:


Setting System-wide Default

This command is used to select the system-wide default version of Node.js, which sets the above symlink:

alternatives --config node

Setting Default Version for a User

To select an alternate version of Node.js, users can simply prepend one of the above directories to the PATH environment variable. An easy way to do that is to add a line like this to the profile file at /home/USER_PROFILE/.profile:

export PATH=/QOpenSys/pkgs/lib/nodejs18/bin:$PATH

The commands in the profile file are executed when the shell starts, so the user must exit and log on to a new shell for this to take effect.

Setting Default Version for a Profound.js / PAPI Instance

Instances on IBM i started with STRTCPSVR normally use the system-wide default version of Node.js. This can be overridden using the nodePath directive in the instance configuration file, as documented here.

Changes that Need to be Made When Upgrading

Be sure to update the following when you have completed upgrading to a different Node.js version:

Unable to render {children}. This macro only works on pages.