Як встановити останню 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.