Some distributions of Linux, particularly Raspbian, don’t have recent versions of Node in their repositories, and there’s often a mismatch in versions between Node and npm. To add to the problem, some version managers also don’t support ARM architectures. While the excellent n does support ARM, it doesn’t install Node or npm in a way that is accessible via sudo.

In general, you shouldn’t be using Node or npm with sudo, but getting the permissions right for that situation can be a huge pain, and sometimes you just need a Raspberry Pi with a hastily set up Node server to run some local projects. Getting sudo to work with Node and npm in these instances can also be a huge pain, and the vast array of different possible answers can be daunting to sift through.

The Fix

For quick, one-off setups, the following will most likely work, and only takes a few minutes – without having to worry about sudo having access to it:

The first step installs the Node and npm versions available on your distro’s repository. The second line will install the latest version of npm. NOTE: you may see a warning about a mismatch in versions while this step is running. It is safe to ignore. The third step uses n to install the lts version of Node.

That’s it! Test your Node and npm with sudo by running ~ $ sudo node -v and ~ $ sudo npm -v. Both should output their version numbers. This also works to install Node and npm for the Windows Subsystem for Linux.

Colophon

This site was created by Ronald Roe, is built on Wordpress, using a fully custom theme. All of the PHP, CSS and JavaScript are fully custom. Fonts used are Antic Slab, Source Sans Pro and a custom icon font built using Icomoon.