Почему установка node 6.x на Ubuntu 16.04 фактически устанавливает node 4.2.6?

Это были мои шаги по установке node на Ubuntu 16.04:

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

каковы официальные инструкции:

https://nodejs.org/en/download/package-manager/#debian-and-ubuntu-based-linux-distributions

После выполнения этого, запустив nodejs --version возвращается v4.2.6.

Как я использовал setup_6.x Я предполагал версию, начинающуюся с 6 будет установлен?

Я подумал, что, возможно setup_6.x должно быть setup_6.2.1, но эта страница возвращает 404, см.:

https://deb.nodesource.com/setup_6.x (там есть страница)

https://deb.nodesource.com/setup_6.2.1 (возвращает 404)

Как мне установить последнюю стабильную версию node на Ubuntu 16.04?

Редактировать:

Это результаты после запуска sudo apt-get install -y nodejs:

sudo apt-get install -y nodejs Reading package lists... DoneBuilding dependency tree       Reading state information... DoneThe following packages were automatically installed and are no longer required:  gyp libboost-python1.58.0 libjs-inherits libjs-node-uuid libjs-underscore  libssl-dev libssl-doc libuv1-dev linux-headers-4.4.0-18  linux-headers-4.4.0-18-generic linux-headers-4.4.0-21  linux-headers-4.4.0-21-generic linux-image-4.4.0-18-generic  linux-image-4.4.0-21-generic linux-image-extra-4.4.0-18-generic  linux-image-extra-4.4.0-21-generic linux-signed-image-4.4.0-18-generic  linux-signed-image-4.4.0-21-generic python-configobj python-pycurl  python-pyexiv2 python-pyexiv2-docUse 'sudo apt autoremove' to remove them.The following NEW packages will be installed:  nodejs0 to upgrade, 1 to newly install, 0 to remove and 0 not to upgrade.Need to get 0 B/3,162 kB of archives.After this operation, 13.2 MB of additional disk space will be used.Selecting previously unselected package nodejs.(Reading database ... 329473 files and directories currently installed.)Preparing to unpack .../nodejs_4.2.6~dfsg-1ubuntu4_amd64.deb ...Unpacking nodejs (4.2.6~dfsg-1ubuntu4) ...Processing triggers for doc-base (0.10.7) ...Processing 1 added doc-base file...Registering documents with scrollkeeper...Processing triggers for man-db (2.7.5-1) ...Setting up nodejs (4.2.6~dfsg-1ubuntu4) ...update-alternatives: using /usr/bin/nodejs to provide /usr/bin/js (js) in auto mode

Редактировать:

Результаты apt-cache policy nodejs:

apt-cache policy nodejsnodejs:  Installed: 4.2.6~dfsg-1ubuntu4  Candidate: 4.2.6~dfsg-1ubuntu4  Version table: *** 4.2.6~dfsg-1ubuntu4 500        500 http://au.archive.ubuntu.com/ubuntu xenial/universe amd64 Packages        100 /var/lib/dpkg/status

Основная причина заключается в том, что сценарий установки не был запущен правильно. Таким образом, благодаря обновленным данным из OP, который поддерживает это, данные из репозитория NodeSource никогда не были замечены apt потому что он не был правильно настроен сценарием.

Таким образом, сценарий, возможно, не нашел ваш дистрибутив, или он, возможно, ошибся при настройке репозитория, или, возможно, произошел сбой в сети, или по любой из тысячи причин, по которым он был прерван и не выполнил свою работу.

Тот факт, что вы видите версию 4.x установка означает, что сценарий не выполнил свою работу правильно, поэтому сценарий не обязательно виноват. Это просто означает, что мы должны потенциально сделать это более сложным способом.

Я должен отметить: скрипт на самом деле не выполняет никакой установки - все, что он делает, это определяет версию Debian / Ubuntu, на которой вы работаете, и настраивает репозиторий для получения данных из него. Установочная часть на самом деле является sudo apt-get install шаг, который вы пробежали вручную.


Также следует отметить: это приведет к удалению npm пакет но это потому, что nodejs при этом восходящая упаковка будет включать в себя npm с его помощью - нет необходимости в npm пакет.


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

Вот ручной способ заставить это работать, и это в основном то, что делает скрипт (за исключением шага 4, который должен убедиться, что вы получаете точные данные о версии):

  1. Создайте новый файл: /etc/apt/sources.list.d/nodesource.list

    Вам нужно будет создать этот файл с помощью sudo, но когда вы создаете файл, поместите в него это:

    deb https://deb.nodesource.com/node_6.x xenial maindeb-src https://deb.nodesource.com/node_6.x xenial main

    Затем сохраните файл. (заменить node_6.x с node_7.x или node_8.x и т.д. для более новых версий узлов)

  2. Загрузите ключ подписи GPG из Nodesource для репозитория. В противном случае вы можете получить NO_PUBKEY ошибки с apt-get update (используйте wget в этой команде, если curl не установлен, и если ни один из них не установлен, установите один из них):

    curl -s https://deb.nodesource.com/gpgkey/nodesource.gpg.key | sudo apt-key add -
  3. Запуск вручную sudo apt-get update.

    Это обновляет данные из репозитория nodesource, поэтому apt знает, что существует более новая версия.

    Если вы получите NO_PUBKEY Ошибка GPG, затем вернитесь к шагу 2

  4. Проверять apt-cache policy nodejs выход.

    Это не делается скриптом, но вы хотите убедиться, что видите запись, которая говорит что-то вроде этого в выходных данных (хотя версия может отличаться, если вы не используете 6.x в качестве строки версии; единственное, что нас волнует, это то, что есть более новый номер версии предоставлено через nodesource):

    Version table:    6.2.1-1nodesource1~xenial1 500       500 https://deb.nodesource.com/node_6.x xenial/main amd64 Packages    4.2.6~dfsg-1ubuntu4 500       500 http://archive.ubuntu.com/ubuntu xenial/universe amd64 Packages

    Если вы не видите подобных записей и видите только 4.2.6, начните сначала. В противном случае продолжайте.

  5. Установите nodejs двоичный. Теперь, когда вы подтвердили, что 6.x доступен в вашей системе, вы можете установить его: sudo apt-get install nodejs

  6. nodejs --version теперь должно появиться v6.2.1 или аналогичный на выходе (при условии, что он начинается с v6. значит, вы используете версию 6; это может быть более высокий номер версии, если вы используете более новую версию, чем 6, но пока это не 4.2.6, все должно быть в порядке).

У меня была более старая версия node. Все, что мне нужно было сделать, это очистить старую:

sudo apt-get purge nodejs npm

А затем, заменив 6 в v=6 с 7, 8, 9 по мере необходимости для соответствующих версий (см. официальные инструкции по установке):

v=6curl -sL https://deb.nodesource.com/setup_$v.x | sudo -E bash -

(убедитесь, что у вас установлен curl.)

И, наконец,,

sudo apt-get install -y nodejs

Бум, последняя версия node.

Для пользователя версии Ubuntu 16.04.2 (с небольшим изменением по сравнению с сообщением Томаса и благодарностью за него)

1.откройте программу обновления программного обеспечения

2.настройка

3.другое программное обеспечение

4.Добавьте источники, но не забудьте выбрать опцию все новые источники позже.:


deb https://deb.nodesource.com/node_6.x xenial maindeb-src https://deb.nodesource.com/node_6.x xenial main

5.перезагрузка

6.sudo apt-get update

7.apt-cache policy nodejs //чтобы получить новую таблицу версий и проверить, выполнена ли настройка источника

8.sudo apt install nodejs

9.nodejs --version

ТЕПЕРЬ все готово.......

предупреждение: не меняйте драйвер Linux по умолчанию для вашей карты nvidia с панели обновления .... система выйдет из строя ....!!!

У меня была такая же проблема. Но в моем случае мне пришлось обновить свою команду curl.Вы можете увидеть проблему, запустив с параметром -S.

curl -s -S https://deb.nodesource.com/gpgkey/nodesource.gpg.key | sudo apt-key add -

Который показал проблему

curl: (1) Protocol "https" not supported or disabled in libcurlgpg: no valid OpenPGP data found.

Поэтому я исправил эту проблему, выполнив следующее.

sudo apt-get install curlsudo apt autoremovecurl -sL https://deb.nodesource.com/setup_8.x | sudo -E bash -sudo apt-get install nodejs

Добавив @Thomas Ward, ответьте тем, кто сталкивается с проблемой при установке nodejs 8.x с URL-адресом https или кодом, который продолжает устанавливаться v4.2.6, показывая ошибку сертификата, попробуйте добавить nodesource.список с нижеприведенными строками

deb http://deb.nodesource.com/node_8.x xenial maindeb-src http://deb.nodesource.com/node_8.x xenial main

следующий шаг: Запустите

sudo curl -sL http://deb.nodesource.com/setup_8.x | sudo -E bash -

Затем

sudo apt-get install -y nodejs

Это решит вашу проблему, установив обновленную версию nodejs и версию npm, как это решило мою проблему для Ubuntu 16.04 LTS...

Я нашел эту ссылку, и она помогла мне установить Nodejs8____https://www.ubuntuupdates.org/ppa/nodejs_7.x . Мне пришлось присоединиться к Nojs8https в этой строке, потому что там говорилось, что мне нужно быть второго уровня, чтобы иметь возможность размещать более двух ссылок. Я думаю, что это случайно, но неважно.

Перед его установкой я выполнил команду: apt-get remove --purge version nodejs

Чтобы убедиться, что у вас не установлена какая-либо версия, запустите: apt-cached policy nodejs и/или nodejs --version

Я смог установить Node js 8, просто изменив 7 на 8, и в итоге я получил версию 8.1.3. Для этого я выполнил команды, которые находятся на той странице, которую я опубликовал выше, но вот команды в любом случае:

Загрузите ключ репозитория с помощью:

curl -s https://deb.nodesource.com/gpgkey/nodesource.gpg.key | apt-key add -

Затем настройте репозиторий::

sudo sh -c "echo deb https://deb.nodesource.com/node_7.x zesty main \ > /etc/apt/sources.list.d/nodesource.list"sudo apt-get updatesudo apt-get install nodejs

Опять же, если вам нужен узел js 8, вы можете изменить номер 7 в этой командной строке на 8 и вуаля!

Я попытался следовать инструкциям на https://github.com/nodesource/distributions для версии 8, но это не сработало для меня. Я посетил https://deb.nodesource.com/setup_8.x непосредственно в браузере и скопировал и вставил скрипт в файл в моей системе nodejs.sh. Затем я выполнил следующие команды

sudo -E bash nodejs.shapt-cache policy nodejssudo apt-get install nodejs

Команда apt-cache показала две версии с предпочтением установки 8. После этого вы можете удалить установочный файл. Не уверен, почему локальное копирование файла помогло, потому что команда curl правильно отображала сценарий.

Эй, ребята, если у вас есть Ubuntu 16, попробуйте эту инструкцию. Это сработало для меня идеально.Также указывайте пароль своей учетной записи всякий раз, когда его запрашивают в ходе этого процесса.

  1. sudo su -c "echo 'deb https://deb.nodesource.com/node_8.x>> "main" /etc/apt/sources.list.d/nodesource.list"

  2. sudo su -c "echo 'deb-src https://deb.nodesource.com/node_8.x>> "main" /etc/apt/sources.list.d/nodesource.list"

  3. sudo apt-получить обновление

  4. apt-cache policy nodejsCheck проверяет, есть ли в перечисленных версиях узел 8

  5. sudo apt-get install nodejs

  6. nodejs -vcheck установленная версия узла

Это должно привести к успешной установке nodejs версии 8 в вашей системе. Если вы хотите какую-либо другую версию, то измените версию на шагах 1 и 2, она должна работать успешно.

Спасибо за обновленные данные. Похоже, по какой-то причине сценарий не сделал того, что должен был сделать. Я подробно описываю, что это так, и “ручной” способ сделать то, что делает скрипт, в моем ответе ниже. Вы можете использовать это, чтобы получить последнюю версию из NodeJS. Это не так приятно и просто, как сценарий, но это действительно то, что делает сценарий по своей сути.

@pipe К счастью, есть такие люди, как я, которые запускают скрипты в разрушаемых виртуальных машинах, чтобы мы могли видеть, что они делают. Вот как я получил инструкции в своем ответе, так что мы можем делать то, что этот “скрипт” делает вручную, хех.

Пожалуйста, включите копию выходных данных apt-cache policy nodejs в свой вопрос в качестве редактирования.

Тот факт, что система загрузила NodeJS 4.x, означает, что либо вы запустили неправильные скрипты, либо репозиторий был неправильно добавлен в систему - используя точные шаги, описанные на странице, на которую вы ссылаетесь, я смог получить последнюю версию, установленную как есть, так что может быть любое количество из проблем - если вы можете предоставить данные “apt-cache”, чтобы мы могли видеть, что, по мнению вашего компьютера, существует в репозиториях, мы можем помочь в дальнейшем.

@ThomasW. - Добавлены данные для публикации.

Я хотел бы отметить, что передача скрипта прямо из Интернета в оболочку `sudo"ed - это не такая уж хорошая идея…

По-видимому, с тех пор, как был задан вопрос, сценарий был исправлен. Я только что запустил его в своей системе Ubuntu 16.04, и он чисто установил “node v6.9.1” и “npm 3.10.8”. Инструкции на данный момент требуют только “sudo apt-get install nodejs” (после запуска скрипта), строка “sudo apt-get install -y npm” в вашем вопросе теперь отсутствует в официальных инструкциях.