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

54

Это были мои шаги по установке узла на 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

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

Ссылка

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

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

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

Ссылка (там есть страница)

Ссылка (возвращает 404)

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

Edit:

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

sudo apt-get install -y nodejs 
Reading package lists... Done
Building dependency tree       
Reading state information... Done
The 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-doc
Use 'sudo apt autoremove' to remove them.
The following NEW packages will be installed:
  nodejs
0 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

Edit:

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

apt-cache policy nodejs
nodejs:
  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
    
задан user1063287 13.06.2016 в 04:16
источник

6 ответов

99

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

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

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

  

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

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

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

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

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

    deb https://deb.nodesource.com/node_6.x xenial main
    deb-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 :

    curl -s https://deb.nodesource.com/gpgkey/nodesource.gpg.key | sudo apt-key add -
    
  3. Вручную запустить sudo apt-get update .

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

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

  4. Проверить apt-cache policy nodejs .

    Это не выполняется скриптом, но вы хотите убедиться, что вы видите запись, которая говорит что-то вроде этого в выводе:

    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).

ответ дан Thomas Ward 13.06.2016 в 04:47
источник
33

Для меня у меня была более старая версия узла, поэтому после нескольких часов работы с headbanging все, что мне нужно было сделать, это очистить старый -

sudo apt-get purge nodejs npm

И затем, для узла 6 ,

curl -sL https://deb.nodesource.com/setup_6.x | sudo -E bash -

или ниже для узла 7

 curl -sL https://deb.nodesource.com/setup_7.x | sudo -E bash -

или ниже для узла 8

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

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

И наконец,

sudo apt-get install -y nodejs

Boom, последняя версия узла

    
ответ дан codemode 18.11.2016 в 19:34
2

Для пользователя версии Ubuntu 16.04.2 (с небольшим изменением от Thomas'post и спасибо за него)

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

2.СОЗДАНИЕ

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

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

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

5.reload

6. sudo apt-get update

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

8. sudo apt install nodejs

9. nodejs --version

СЕЙЧАС Все установлено .......

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

    
ответ дан Jason Liu 12.04.2017 в 23:46
2

У меня была такая же проблема. Но в моем случае мне пришлось обновить команду завитка. Вы можете увидеть проблему, выполнив ее с помощью опции -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 libcurl
gpg: no valid OpenPGP data found.

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

sudo apt-get install curl
sudo apt autoremove
curl -sL https://deb.nodesource.com/setup_8.x | sudo -E bash -
sudo apt-get install nodejs
    
ответ дан zatopek 17.11.2017 в 02:37
0

Я нашел эту ссылку и помог мне установить Nodejs8

ответ дан Victor Espinoza 29.06.2017 в 17:49
0

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

deb http://deb.nodesource.com/node_8.x xenial main
deb-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 ...

    
ответ дан sunilsmith 23.10.2017 в 11:09