Як встановити останню NodeJS на Debian Jessie?


29

Я щойно встановив NodeJS & NPM на Debian Jessie, використовуючи рекомендований підхід:

apt-get install curl
curl -sL https://deb.nodesource.com/setup | bash -
apt-get install -y nodejs

Однак це досить стара версія (вузол v0.10.38 & npm 1.4.28).

Будь-які пропозиції щодо найпростішого способу встановлення новіших версій, наприклад, наразі вузол v0.12.4 і npm 2.7.4? Чи встановлення з джерела мого єдиного підходу?

Відповіді:


48

Існує сценарій налаштування для Node.js (див. Інструкції щодо встановлення ):

# Adapt version number to the version you want
curl -sL https://deb.nodesource.com/setup_0.12 | sudo bash -
sudo apt-get install -y nodejs

Невеликий коментар: На мою скромну думку, це дуже погана ідея curl | sudo bash. У вас запущений сценарій, який ви не перевіряли з правами root. Завжди краще завантажити сценарій, прочитати його, перевірити наявність шкідливих команд і після цього запустити його. Але це лише мої два центи.

Установка може бути досягнута вручну за кілька кроків, дотримуючись процедуру ручного встановлення :

  • Видаліть старий PPA (якщо застосовується)
  • Додати ключ вузла repo ssh
  • Додайте репо вузла до sources.list
  • оновити список пакунків та встановити його за допомогою улюбленого інструменту apt

5
ops, використовуй це, але тепер є setup_4.x... повторити завивку і apt-отримати все гаразд?
Пітер Краус

3
Оскільки вам може знадобитися найновіша, фактична версія, рекомендую відвідати їхній сайт: github.com/nodesource/distributions .
старший викладач

Чому б вам не довіряти, якщо воно відбувається через безпечне з'єднання з того самого джерела, з якого ви виконуєте бінарні файли

@ acidzombie24 правильно, але навіть якщо ви довіряєте коду, що він не є злим, завжди є ймовірність помилки в скрипті, або застарілому сценарії, або ваш конфігурація трохи екзотична. Або, можливо, ви хочете замовити джерела.list якось так, а сценарії інакше. У будь-якому випадку, я також вважаю, що це погана практика, і початківців (я не націлений на ОП, але взагалі) не слід заохочувати це робити. Тим більше, що виконання дії вручну набагато простіше, ніж вивчення сценарію.
Jérôme

12

Ви можете завантажити останню версію Node ( 4.2.2) з їх веб-сайту замість пакету, який надає Debian ( 0.12). Це також означає, що у вас оновлена ​​версія npm. У мене не було проблем з Джессі.

Завантажте їх .tar.gzіз свого веб-сайту та cdв цей каталог (назва файлу, очевидно, специфічна для мого завантаження):

$ tar -xzvf node-v4.2.2-linux-x64.tar.gz
$ cd node-v4.2.2-linux-x64

Якщо ви подивитесь у папку bin, ви побачите бінарні файли, необхідні для node та npm:

$ ls node-v4.2.2-linux-x64/bin 
node  npm

Тепер я перейменував би папку на щось трохи простіше відстежувати

$ mv node-v4.2.2-linux-x64 nodejs

Якщо ви не зацікавлені в тому, щоб оновити вузол, просто перенесіть цю папку в одне з ваших місць для сміття (я використовую ~/bin) та пропустіть наступний крок.

Якщо ви хочете мати можливість легко оновити версію свого вузла, то перемістіть nodejsпапку кудись, щоб ви могли відстежувати її ( ~/nodejsможливо?). Тоді ви хочете створити посилання на один із ваших місць бін, щоб двійкові файли могли використовуватися з вашої оболонки, не виписуючи повний шлях.

Якщо припустити, що ви помістите папку nodejs у свій домашній каталог, ви можете зараз:

$ ln -s ~/nodejs ~/bin/nodejs

Очевидно, що це може перейти в будь-яке місце для сміття. Я використовував свій домашній каталог, тому він доступний лише мені, але ви також можете легко зробити:

$ ln -s ~/nodejs /usr/local/bin/nodejs

Це створить символьне посилання з папки nodejs у вашому домашньому каталозі до каталогу bin (це означає, що будь-які оновлення до каталогу у вашій домашній папці відображаються в іншій папці через символічне посилання ). Тепер ви хочете переконатися, що папка бін, що містить каталог nodejs, знаходиться у вашій $PATHзмінній оточення , тому відкрийте ~/.profileфайл у вашій домашній директорії. Ви хочете додати це внизу цього файлу (змінивши шлях, якщо ви не використовували ~/bin/):

# Set the node PATH if it exists
if [ -d "$HOME/bin/nodejs/bin" ] ; then
    PATH="$HOME/bin/nodejs/bin:$PATH"
fi

Це дозволить перевірити, чи існує каталог, і якщо він є, додайте його до вашої PATH. Я використовую, zshтому щойно оновив рядок у ~/.zshrc:

export PATH="$HOME/bin/nodejs/bin:$PATH"

Закрийте термінал і знову відкрийте, а потім введіть наступне, щоб перевірити:

$ node -v
v4.2.2

$ npm -v
2.14.7

Створивши sym-посилання, це означає, що в майбутньому ви можете завантажити нове .tar.gzз веб-сайту Nodejs, витягнути його ~/nodejs, а двійкові файли, доступні вам у вашій $PATH змінній оточення , автоматично оновлюються.


Цей працював на мене, оскільки він також давав робочу хвилину.
artfulrobot

4

у моєму випадку я виконував рекомендовані команди оболонки:

curl -sL https://deb.nodesource.com/setup_6.x | sudo -E bash -
sudo apt-get install -y nodejs

Проблема полягала в тому, що скрипт bash не оновив мою APT-фіксацію, тому apt-get встановлено за замовчуванням старий пакет Debian з джерела debian.org, а не з nodesource.com

переконайтеся, що це проблема apt-cache policy nodejs. ви повинні побачити щось подібнеCandidate: 6.10.2-1nodesource1~jessie1 а неCandidate: 0.10.29~dfsg-2

щоб встановити пріоритет PIN-коду до ресурсу вузла, додайте файл із /etc/apt/preferences.d/покликаним nodeабо будь-яким іншим із цього вмісту:

Package: nodejs
Pin: release o=Node Source
Pin-Priority: 1200

зберегти і бігти apt-get cache update. потім спробуйте apt-cache policy nodejsще раз. якщо кандидат виглядає правильно, встановіть як зазвичайapt-get install nodejs


apt-get cache updateповернувся, E: Invalid operation cacheтому я побіг sudo aptitude update.
користувач394

2

Ви можете дотримуватися офіційної документації на node.js, щоб встановити останню версію за допомогою менеджера пакунків.

Node.js v6:

curl -sL https://deb.nodesource.com/setup_6.x | sudo -E bash -
sudo apt-get install -y nodejs

Node.js v7:

curl -sL https://deb.nodesource.com/setup_7.x | sudo -E bash -
sudo apt-get install -y nodejs

Запуск останнього, у моїй системі було встановлено вузол v7.5.0 та npm v4.1.2. Обидва nodeі nodejsпсевдоніми були включені для вузла автоматично.


Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.