Как установить последнюю версию 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? Является ли установка из источника моим единственным подходом?

MrColes
источник

Ответы:

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 (если применимо)
  • Добавить нод репо ssh ключ
  • Добавить репо узла в sources.list
  • обновить список пакетов и установить с помощью любимого инструмента apt
embik
источник
5
ops, используй его, но теперь есть setup_4.x... повторить curl и apt-get ok?
Питер Краусс
3
Поскольку вам может потребоваться новейшая актуальная версия, я рекомендую посетить их сайт: github.com/nodesource/distributions .
старший проповедник
Почему бы вам не
@ acidzombie24 верно, но даже если вы доверяете коду за то, что он не является злым, всегда есть вероятность ошибки в скрипте, или в устаревшем скрипте, или в вашей конфигурации, которая немного экзотична. Или, может быть, вы хотите заказать исходники, а сценарии - иначе. В любом случае, я также считаю, что это плохая практика, и новичков (я не нацелен на ОП, но в целом) не следует поощрять к этому. Особенно при выполнении действия вручную гораздо проще, чем при изучении сценария.
Жером
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 (это означает, что любые обновления каталога в вашей домашней папке отражаются в папке в другом месте через символическую ссылку ). Теперь вы хотите убедиться, что папка 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 22.09.16
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, а не с nodeource.com

убедитесь, что это проблема с apt-cache policy nodejs. вы должны увидеть что-то вроде, Candidate: 6.10.2-1nodesource1~jessie1а неCandidate: 0.10.29~dfsg-2

чтобы установить приоритет вывода для узла источника, добавьте файл в /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

georgiecasey
источник
apt-get cache updateвернулся, E: Invalid operation cacheпоэтому я побежал sudo aptitude update.
user394
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псевдонимы были включены для узла автоматически.

mrkvon
источник