Install Node and Angular on Linux and Docker
- Install nodejs and Angular on Linux Ubuntu / Mint
- Nodejs ... don't apt install
- Install Angular
- Installing NVM inside an Ubuntu Docker
Install nodejs and Angular on Linux Ubuntu / Mint
I'm setting up an Ubuntu (22.x) / Linux Mint laptop for personal development.
Here some notes about the setup of node.js and Angular.
Nodejs ... don't apt install
If I try to type node
in the terminal, I receive the suggestion to install the package nodejs, this is an ultra old package. The current stable node version is 20, the version offered by the system is 12!
marco@x11-6:~$ apt show nodejs
Package: nodejs
Version: 12.22.9~dfsg-1ubuntu3.2
Nvm to the rescue
nvm is a node package manager, this is the recommended solution to manage node not only on Linux but on MacOs and Windows too.
A great feature of nvm is that you can install multiple versions of node and easily switch between them.
To install nvm you can follow the instructions on GitHub or
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.7/install.sh | bash
If your machine or container doesn't have curl you can use wget:
wget -qO- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.7/install.sh | bash
To install the version 20 of node we can simply type:
nvm install 20
/# nvm install 20
Downloading and installing node v20.10.0...
Downloading https://nodejs.org/dist/v20.10.0/node-v20.10.0-linux-x64.tar.gz...
############################################################################################################### 100.0%
Computing checksum with sha256sum
Checksums matched!
Now using node v20.10.0 (npm v10.2.3)
Creating default alias: default -> 20 (-> v20.10.0)
You can check their documentation to see the other features.
Install Angular
Now that we have node and npm we can install Angular. If you have only to build a simple project you don't have to install Angular globally.
In the most common cases the commands that you will use more frequently are npm install
and ng build
. npm comes with the install of node, to install ng (globally) you have to npm install -g @angular/cli
To install ng
we need to install @angular/cli
with the global flag. npm install -g @angular/cli
Installing NVM inside an Ubuntu Docker
I tried to reproduce the installation of node and nvm inside Ubuntu. It has been more challenging that initally thought because Docker doesn't maintaint the context between commands.
# We use the official Ubuntu base image to install NVM
FROM ubuntu:latest
# Set the Node.js version to be installed
ENV NODE_VERSION 20
# Set the environment variable for NVM directory
ENV NVM_DIR /usr/local/nvm
# Update the package lists and install curl
RUN apt-get update \
&& apt-get install -y curl \
&& apt-get -y autoclean
# Create a directory for NVM
RUN mkdir /usr/local/nvm
# Download and run the NVM installation script
RUN curl https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.1/install.sh | bash \
# Activate NVM
&& . ${NVM_DIR}/nvm.sh \
# Install Node.js
&& nvm install ${NODE_VERSION} \
# Set Node.js as the default version
&& nvm alias default ${NODE_VERSION} \
&& nvm use default
# Set environment variables for Node.js
ENV NODE_PATH $NVM_DIR/v$NODE_VERSION/lib/node_modules
ENV PATH $NVM_DIR/versions/node/v$NODE_VERSION/bin:$PATH
# Set the default command to run when the container starts
CMD ["bash"]
After building and running the container you can test that node 20 is correctly installed.