Ręczna instalacja Node.js i npm w Ubuntu

Standardowa instalacja node.js w Ubuntu z dostępnych repozytoriów poprzez sudo apt-get install nodejs nie zawsze pozwala uzyskać nam najświeższą wersję. Dla Ubuntu 16.04 zapytanie o paczkę nodejs zwraca nam wersję 4.2.6:

 


$ sudo apt-cache show nodejs
Version: 4.2.6~dfsg-1ubuntu4.1
$ apt-cache policy nodejs
nodejs:
Installed: 4.2.6~dfsg-1ubuntu4.1
Candidate: 4.2.6~dfsg-1ubuntu4.1
Version table:
*** 4.2.6~dfsg-1ubuntu4.1 500
500 http://archive.ubuntu.com/ubuntu xenial-updates/universe amd64 Packages
100 /var/lib/dpkg/status
4.2.6~dfsg-1ubuntu4 500
500 http://archive.ubuntu.com/ubuntu xenial/universe amd64 Packages

Jednym słowem, smuteczek.
Po wejściu na stronę projektu nodejs.org w oczy rzucają się od razu 2 wersje: 8.9.4 (Long Time Support, stabilna i zalecana dla większości użytkowników) oraz 9.6.1 – Current – PRAWIE najświeższa z możliwych, bo są jeszcze tzw. Nightly Build dla ludzi z dużą ilością czasu wolnego :).

Jednym ze sposobów sprawdzenia wersji paczki zainstalowanej aktualnie w systemie – oczywiście o ile jest zainstalowana – jest:


$ sudo dpkg -l | grep node
ii nodejs 4.2.6~dfsg-1ubuntu4.1 amd64 evented I/O for V8 javascript

My jednak chcielibyśmy korzystać z najświeższej stabilnej wersji – 8.9.4.

Z wcześniej podanej strony pobieramy archiwum i rozpakowujemy:


$ wget https://nodejs.org/dist/v8.9.4/node-v8.9.4-linux-x64.tar.xz
$ tar xf node-v8.9.4-linux-x64.tar.xz

Rozpakowany katalog node-v8.9.4-linux-x64 wrzucamy na przykład do katalogu /opt/:


$ sudo mv node-v8.9.4-linux-x64 /opt/

Opcjonalnie zmieniamy rekurencyjnie właściciela katalogów i plików w lokalizacji /opt/node-v8.9.4-linux-x64:


$ sudo chown -R filip:filip /opt/node-v8.9.4-linux-x64/

Może to być przydatne, gdybyśmy chcieli kiedyś w tym katalogu coś zapisywać (np. inne pliki binarne) oraz instalować pakiety z npm.
Pozostaje nam utworzyć dowiązania symboliczne:

Jeśli próba uruchomienia poleceń node i npm się nie powiedzie jest dość prawdopodobne, że te ścieżki nie są dodane do naszej zmiennej środowiskowej PATH. Może to być przydatne w przyszłości, gdy w katalogu bin znajdzie się więcej plików wykonywalnych.
Aktualną zawartość zmiennej PATH możemy wyświetlić poleceniem echo $PATH i aby rozszerzyć tą zmienną o nowe katalogi zmieniamy w pliku ~/.bashrc zmienną środowiskową:


export PATH=$PATH:"/usr/bin:/opt/node-v8.9.4-linux-x64/bin"

Żeby wprowadzone zmiany w ramach ~/.bashrc odniosły skutek powinniśmy go „przeładować”: source ~/.bashrc

Przydatny okazać się może poniższy skrypt, który w sumie spina wszystko w całość i pozwala prześledzić wykonane akcje krok po kroku:


#!/bin/bash
## Check for versions compiled with ARM at http://nodejs.org/dist/
## Inspired by https://gist.github.com/myrtleTree33/8080843
##########################################################################
## Fill in the latest Node Version below:
NODE_VERSION="v8.9.4"
NODE_DIR="/opt/node-${NODE_VERSION}"
NODE_DIR_NAME="node-${NODE_VERSION}"
##########################################################################
# Make a new directory where you'll put the binary
sudo mkdir -p $NODE_DIR
# Get it
wget https://nodejs.org/dist/$NODE_VERSION/node-$NODE_VERSION-linux-x64.tar.xz
# Unpack
tar xf node-$NODE_VERSION-linux-x64.tar.xz
# Rename extracted directory
mv node-$NODE_VERSION-linux-x64 $NODE_DIR_NAME
# Move to the dir you made as the first step
sudo mv $NODE_DIR_NAME /opt/
# Add node to your path so you can call it with just "node"
# Add these lines to the file you opened
PROFILE_TEXT="
PATH=\$PATH:$NODE_DIR/bin
export PATH
"
echo "$PROFILE_TEXT" >> ~/.bash_profile
source ~/.bash_profile
# Linking for sudo node
sudo ln -s $NODE_DIR/bin/node /usr/bin/node
sudo ln -s $NODE_DIR/bin/npm /usr/bin/npm
# Test
echo "node installed on `which node` with version `node -v`"
echo "npm installed on `which npm` with version `npm -v`"

2 myśli na temat “Ręczna instalacja Node.js i npm w Ubuntu

    1. Obecnie to lepiej poszukać czegoś więcej na temat pakietów nvm i avn. nvm pozwoli zautomatyzować instalację i wybór różnych wersji node’a, a avn w projekcie pozwoli automatycznie aktywować wersję node’a w projekcie.
      Postaram się więcej o tym napisać.

Skomentuj

Wprowadź swoje dane lub kliknij jedną z tych ikon, aby się zalogować:

Logo WordPress.com

Komentujesz korzystając z konta WordPress.com. Wyloguj /  Zmień )

Zdjęcie z Twittera

Komentujesz korzystając z konta Twitter. Wyloguj /  Zmień )

Zdjęcie na Facebooku

Komentujesz korzystając z konta Facebook. Wyloguj /  Zmień )

Połączenie z %s

Ta witryna wykorzystuje usługę Akismet aby zredukować ilość spamu. Dowiedz się w jaki sposób dane w twoich komentarzach są przetwarzane.