Jak zainstalować najnowszą wersję Node.js (NVM)
Spis treści
apt install nodejs i po sprawie? Niestety nie.
Node.js z domyślnych repozytoriów Ubuntu czy Debiana jest zazwyczaj mocno leciwy. Do tego jeden projekt chce Node 18, drugi 20, a trzeci najnowszego, i wszystkie mają chodzić na tym samym serwerze. Z pakietami systemowymi robi się z tego niezły węzeł gordyjski.
Tu wkracza NVM (Node Version Manager). Instaluje Node.js w Twoim katalogu domowym, nie dotykając pakietów systemowych, i pozwala trzymać kilka wersji równocześnie. Przełączasz się między nimi jedną komendą.
Na Mikrusie#
W NOOBS-ie jest gotowy skrypt, który stawia NVM razem z najnowszym Node.js LTS:
curl -s https://noobs.mikr.us | bash
sudo /opt/noobs/scripts/chce_nvm.sh
Po instalacji wyloguj się i zaloguj ponownie. Albo, jeśli nie chce Ci się rozłączać, doładuj NVM w bieżącej sesji:
source ~/.nvm/nvm.sh
Przy kolejnych logowaniach nic już nie musisz robić, bo skrypt sam dopisuje ładowanie NVM do .bashrc/.profile.
Na dowolnym serwerze (Ubuntu/Debian)#
Wersja ręczna. Na Mikrusie działa tak samo jak na każdym innym VPS-ie:
sudo apt update
sudo apt install -y git
git clone https://github.com/nvm-sh/nvm.git ~/.nvm
cd ~/.nvm
git checkout $(git describe --abbrev=0 --tags --match "v[0-9]*" $(git rev-list --tags --max-count=1))
Ta dość upiorna ostatnia linijka przełącza po prostu repozytorium na najnowsze oficjalne wydanie NVM.
Teraz automatyczne ładowanie w .bashrc:
cat >> ~/.bashrc << 'EOF'
export NVM_DIR="$HOME/.nvm"
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh"
[ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion"
EOF
source ~/.bashrc
I instalacja najnowszego LTS (Long Term Support, czyli wersji zalecanej na produkcję):
nvm install -b --lts --latest-npm --default
Zwróć uwagę na -b, bo to najważniejsza flaga w tym poradniku. Wymusza instalację z gotowej binarki. Bez niej NVM, gdy nie znajdzie binarki pasującej do Twojej architektury, potrafi zabrać się za kompilowanie Node.js ze źródeł. A to proces tak pamięciożerny, że na typowym Mikrusie kończy się natychmiastowym OOM-em. Dlatego: zawsze z -b.
Instalacja konkretnej wersji#
Projekt upiera się przy konkretnej wersji, powiedzmy Node 20? Zamiast --lts podajesz numer:
nvm install -b 20
Przełączanie między wersjami#
Co masz zainstalowane:
nvm ls
Przełączenie w bieżącej sesji:
nvm use 20
Ustawienie wersji domyślnej#
nvm use działa tylko do końca bieżącej sesji. Zalogujesz się ponownie i wraca wersja domyślna. Jeśli chcesz zmienić, która wersja ładuje się na starcie:
nvm alias default 20
Najczęstsze błędy#
nvm: command not found tuż po instalacji. NVM nie załadował się jeszcze w tej sesji. source ~/.nvm/nvm.sh albo ponowne logowanie i po kłopocie.
Instalacja stoi w miejscu i pożera całą pamięć. Zapomniane -b, patrz wyżej. Ctrl+C i jeszcze raz, tym razem z flagą.
npm install używa nie tej wersji Node, co trzeba. Sprawdź node -v w katalogu projektu. Jeżeli projekt ma plik .nvmrc, wystarczy w tym katalogu odpalić nvm use bez argumentów i NVM sam dobierze właściwą wersję.
Jeśli szukasz miejsca dla swoich developerskich potrzeb, to zapoznaj się z ofertą serwerów VPS od Mikrusa.
SerweryVPS już od 35 zł rocznie.
Dowiedz się więcej