Как установить NodeJS 4 с помощью apt?

Ответы:

75

Инструкции были взяты отсюда: https://github.com/nodesource/distributions

wget -qO- https://deb.nodesource.com/setup_4.x | sudo bash -

а потом:

sudo apt-get install nodejs

Вот версии системы:

ubuntu@424c7702-0947-e7c7-c532-dfec484fc109:~$ lsb_release -r
Release:    15.04
ubuntu@424c7702-0947-e7c7-c532-dfec484fc109:~$ node -v
v4.0.0
ubuntu@424c7702-0947-e7c7-c532-dfec484fc109:~$ npm -v
2.14.2
jarsever
источник
@jarserver - «Следующие пакеты имеют неудовлетворенные зависимости: nodejs: Зависит от: rlwrap, но его невозможно установить. E: Невозможно исправить проблемы, у вас есть поврежденные пакеты.» - Ошибка при установке apt-get. Как это исправить?
Кумар Самбхав
@KumarSambhav звучит так, как будто ваша база данных пакетов находится в неисправном состоянии, поищите на сайте, как исправить поврежденное состояние.
Battlemidget
Это не работает для меня в Ubuntu 15.10. Он всегда устанавливает v0.10.25 (более низкая версия, чем OP, поэтому я понятия не имею, что происходит ...)
HankScorpio
@HankScorpio Похоже, что APT-РЕПО не был обновлен. Попробуйте выполнить инструкцию по установке вручную ( github.com/nodesource/distributions#manual-installation ) и посмотрите, исправляет ли это.
jarsever
Да, вот в чем проблема. Некоторые ключи GPG (какими бы они ни были) отсутствовали, поэтому apt-get updateкаждый раз терпел неудачу. Раньше я y-ppa-managerисправлял проблему, и теперь у меня установлена ​​последняя версия NodeJS 4.
HankScorpio
37

Node Version Manager всегда имеет последнюю версию

Я твердо придерживаюсь мнения, что установка Node с Node Version Manager - лучший вариант в Ubuntu, если вы устанавливаете его на компьютер, на котором вы собираетесь заниматься разработкой (вместо производственного сервера).

Когда вы устанавливаете через официальные репозитории, вы получаете что-то ужасно устаревшее. Вы всегда можете добавить PPA, но у вас все равно останутся грязные разрешения, когда для глобальной установки модулей из npm требуются права администратора.

С NVM все хранится в вашей домашней папке (поэтому нет необходимости sudo), и вы можете установить несколько версий Node (включая 4.0) и легко переключаться между ними.

Установка с помощью NVM

Взято из инструкции по установке NVM :

Возьмите последнюю версию NVM (вам может понадобиться sudo apt-get install curlсначала):

curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.26.1/install.sh | bash

Скажите вашей оболочке использовать nvm(вы можете добавить это, ~/.bashrcчтобы это произошло автоматически в будущем):

source ~/.nvm/nvm.sh

Затем установите последнюю версию узла:

nvm install 4.0

И скажите nvm, какую версию Node вы хотите использовать:

nvm use 4.0

Вы также можете добавить nvm use 4.0строку в свой список ~/.bashrc, чтобы вам не приходилось выбирать версию узла при каждом запуске терминала.

Теперь, если вы проверите, which nodeон должен дать вам путь к исполняемому файлу узла в вашей домашней папке. Бег node --versionдолжен сказать вам, что вы бежите v4.0.0.

Майкл Мартин-Смукер
источник
6
Я не думаю, что беспорядочный комментарий о разрешениях является точным, я устанавливаю узел из репозитория nodeource apt и могу запускать и устанавливать модули узлов в моем локальном домашнем каталоге (включая глобальную опцию -g). Все, что нужно, это обновить ~ / .npmrc, чтобы определить каталог префикса.
Battlemidget
3
Ах, это очень справедливо. Я все еще поклонник nvm в аспекте управления версиями, но если это не ваша вещь, установка префикса ~/.npmrcопределенно является правильным способом обработки разрешений для глобальных модулей.
Майкл Мартин-Смукер
Я полагаю, что «устаревшее» примечание об официальных репозиториях, в ответе немного ... устарело ;-) Официальные репозитории теперь поддерживают любую публично выпущенную версию в поддерживаемом выпуске - есть репозитории для версий 6, 7 и даже 8, и так было, по крайней мере, с моего ответа ниже (10/15)
Guss
36

С Kudus @jarsever я лично не подпишусь на парадигму " curl | sh ".

Если вы чувствуете то же чувство неловкости, что и я, когда меня просят просто передать какой-то произвольный текст из Интернета в процесс оболочки учетной записи root, вы можете попробовать это для того же эффекта, но с (немного) меньшим страхом, неопределенностью и сомневаюсь:

version=4
apt-key adv --keyserver keyserver.ubuntu.com --recv 68576280
apt-add-repository 'deb https://deb.nodesource.com/node_${version}.x precise main'
apt-get update
apt-get install nodejs

Я считаю, что процесс должен быть понятным, и вы также можете сделать то же самое с помощью Ubuntu Software Properties UI.

Guss
источник
Есть ли какой-либо недостаток, чтобы сделать это таким образом? Похоже, лучший вариант ...
Catskul
6
Это более чем одна строка, и она позволяет вам узнать о вашей системе? ... Некоторым людям это не нравится, я думаю, это единственный способ объяснить это curl|shявление.
Guss
3
В дополнение к изучению менеджера пакетов вашей ОС, это также проблема безопасности. curl|shизвлекает скрипт с сервера и выполняет его непосредственно в оболочке. Я лично доверяю nodeource, но это не очень хорошая привычка. unix.stackexchange.com/questions/46286/…
blanket_cat
И там просят вас об этом sudo -E bash. Он работает от имени пользователя root. Я настоятельно рекомендую вам прочитать и понять сценарий, если вы собираетесь передать его из сети в корневую оболочку.
blanket_cat
1
Вообще говоря, устанавливая пакет deb, вы берете на себя тот же риск, что и подключение Интернета в корневую оболочку. При этом одно подразумевает, что вы понимаете свою систему, другое подразумевает, что вы не понимаете - и это огромная разница.
Guss
0

Мне нравится использовать nodeenv из pypi ( https://pypi.python.org/pypi/nodeenv ), вы устанавливаете пакет с помощью pip, затем настраиваете «node / virtualenv» и говорите ему об установке предустановленной версии, быстрой и простой , Павел

Павел
источник
-1

Это сработало для меня

echo 'export PATH=$HOME/local/bin:$PATH' >> ~/.bashrc
. ~/.bashrc
mkdir ~/local
mkdir ~/node-latest-install
cd ~/node-latest-install
curl http://nodejs.org/dist/node-latest.tar.gz | tar xz --strip-components=1
./configure --prefix=~/local
make install 
curl https://www.npmjs.org/install.sh | sh

Источник: https://gist.github.com/isaacs/579814

johnjullies
источник
1
Вопрос конкретно о том, как установить NodeJS с Apt .
Дэвид Фёрстер