Upgrading to more recent versions of Node.js on the Raspberry Pi

upgrading nodejs

I’ve received questions from readers of my Beginner’s Guide to Installing Node.js on a Raspberry Pi wanting to know how to upgrade to more recent versions of Node.js on the Raspberry Pi.  The steps are quite easy and can be adapted to other Debian variants as well including Ubuntu.  I’m assuming you followed the steps in my Beginners’ Guide, especially under the “Install Node.js” section where we update the Raspbian/Debian package repository to include the Node.js binaries provided by NodeSource.  Let’s get started!

Minor/Patch Version Upgrades

This section explains the steps necessary to upgrade Node to the latest version within a given major version.  For example, upgrading from Node 7.2.0 to Node 7.10.0.

Our first step is to ascertain the current version of Node we are running.  Run the following command from the terminal:

$ node -v
v7.2.0

I see that I am running Node 7.2.0 and I really want to be running the latest stable build within this Node branch (Node 7.10.0 ).

First, we run the apt “update” command. This command will not actually update any software on the system, but will download the latest package lists from the software repositories so that Raspbian will be aware of all new software available along with dependencies. Issue the following command at the “$” prompt:

$ sudo apt update

Note: we are using the newer Debian apt command as opposed to the older apt-get command.  Please see my Debian apt command cheat sheet for more information.

If you are not sure if you are already running the latest version of Node available, you have two options:

  • Option 1 (the “diligent” option): Issue the following command to determine the latest version that is available in the package repository:
    $ apt list nodejs

    This command will provide output that looks something like this:

    Listing... Done
    nodejs/unknown 7.10.0-1nodesource1~jessie1 armhf [upgradable from: 7.2.0-1nodesource1~jessie1]
    N: There are 2 additional versions. Please use the '-a' switch to see them.

    You could optionally add the -a switch  (apt list -a nodejs) to review additional versions of nodejs available; however, the basic apt list command will show the most recent version of Node available.  In this case, we see that Node 7.10.0 is available so we want to continue and upgrade.

  • Option 2 (the “lazy” option) : As a second option if you are not sure if you are already running the latest version of Node, you can simply power through and proceed with sudo apt install (listed next).  If you are already running the latest version, the apt package manager will simply tell you that you are already running the latest version of Node.  Your existing installation will not be impacted in any way.

Ok, we are now ready to upgrade our current version of Node.js to the latest version.  We use the apt install command which seems a bit counter-intuitive, but apt install will upgrade the package to the latest version in the package repository even though it is already installed.

$ sudo apt install nodejs

Let’s determine what version of Node we are running now:

$ node -v
v7.10.0

We see that we are running the latest version of Node so we know we have been successful!

Major Version Upgrades

In this scenario, we check the current version of Node we are running by invoking the following command from the terminal:

$ node -v
v6.9.1

We see that we are running Node 6.9.1 and we really want to be running Node 7.x.  We want to stay on the cutting edge rather than fading into obsolescence.  😎

Let’s update our package repository to use the latest version of Node at the time of this writing which is Node 7.x by using the setup_7.x script from NodeSource.

$ curl -sL https://deb.nodesource.com/setup_7.x | sudo -E bash -

In addition to updating your package repository, the setup script that runs in the previous command also invokes a sudo apt update command as one of its final steps.  Once again, the  sudo apt update command does not actually update any software on the system, but will download the latest package lists from the software repositories so that Raspbian will be aware of all new software available along with dependencies.

We are now ready to upgrade our current version of Node.js to the latest version.  We use the “apt install” command which will upgrade the package even though it is already installed.

$ sudo apt install nodejs

When we now request the current version of Node running, we see a more recent version of Node running so we can declare victory!

$ node -v
v7.10.0

That’s it for now; thanks for reading!  Follow @thisDaveJ (Dave Johnson) on Twitter to stay up to date on the latest tutorials and tech articles.

Related Articles

Beginner’s Guide to Installing Node.js on a Raspberry Pi
While I napped, we got a new apt – Debian apt command cheat sheet
Learning through Making – Getting Started with Node.js
Create a Web Server in Node without any Code
Make Your Raspberry Pi Web Server Available on the Internet with Node.js

Share

8 thoughts on “Upgrading to more recent versions of Node.js on the Raspberry Pi

  1. Hi! Thanks for the great tutorials one question I have, if I type type ‘nodejs -v’ into the command line I get ‘v7.0.0’, but if I type in ‘node -v’ I get ‘v4.3.2’, am I missing something? Are nodejs and node different frameworks? How do I update both? Thanks so much!

    1. Hi Dan, you are very welcome!

      It sounds like you might have previously installed the “node” package which is used for Amateur Packet Radio and this has created some conflicts with the “nodejs” package which we use for Node.js. As another option, you might have previously installed Node.js through another method such as “dpkg” rather than through my recommended method with apt via the NodeSource repository. Here’s what you can try:

      $ which node
      (This will show the path of the node binary such as /usr/bin/node and might yield some clues if it is not “/usr/bin/node”. For example, it *might* be “/usr/sbin/node” if you installed the Amateur Packet Radio “node” package.)

      $ ls -la `which node`
      (Those are backticks surrounding which node. This may show you that “node” is pointing to a symbolic link (symlink) such as /etc/alternatives/node which you could update to point to /usr/bin/nodejs.

      When you run “apt install nodejs”, it creates a binary at /usr/bin/nodejs, but it also tries to creates a shortcut at /usr/bin/node that points to /etc/alternatives/node. If there are conflicts, “node” may point to the wrong place while “nodejs” points to the Node v7 package you just installed. One solution is to always invoke node.js using “nodejs” and all will be good. (You will update Node.js versions following my guide above and using the package name of “nodejs” like everyone else.) If you want to invoke with “node”, you can do the following (assuming you installed the “node” package by mistake in addition to “nodejs” via my guide):


      $ sudo apt remove node
      $ sudo apt remove nodejs
      $ sudo apt install nodejs
      $ sudo reboot

      Hope this helps!

  2. Hi,

    What if

    $ apt list nodejs

    shows some old version like:

    Listing… Done
    nodejs/stable,now 0.10.29~dfsg-2 armhf [installed,automatic]

    And this is the version that is currently installed. I would like to install the version 4 or up.

    thanks,
    sigman

    1. Hi sigman, you can follow my upgrade steps under “Major Version Upgrades” and substitute “setup_7.x” with your desired version of Node. For example, “setup_6.x” for Node 6.x. As part of the major upgrade process (when you sudo apt install nodejs), the current Node version installed on your system (node 0.10.29, in your case) will be removed and replaced with the updated version of Node you specified. At that point, you will be good to go and can follow the “Minor/Patch Version Upgrades” section of my post for minor (security, etc.) updates in the future.

  3. Hi i am running node red in my latest raspberry pi 3 with node red version of 6.10. it repeatedly crashes with errors uncaught exception and enoment ? the graphical page is not opening. how do i rectify it

Leave a Reply

Your email address will not be published. Required fields are marked *