Почему правильная новая версия Node.js не устанавливается на CentOS 7?

Почему правильная новая версия Node.js не устанавливается на CentOS 7?

Примечание: Это частично решено, но требует немного больше внимания. См. примечания внизу OP и частичный ответ @Digisec.

Я пытаюсь настроить Node.js на CentOS 7, но следующие команды не позволяют установить последнюю версию. Что мне нужно изменить в коде ниже, чтобы установить новейшую версию Node.js на CentOS 7?

Я начинаю с ввода node --version, что приводит к v0.12.7. Это явно старая версия, потому что nodejs.orgговорит, что v5.6.0это последняя стабильная версия.

Затем я ввожу следующее, чтобы получить последнюю версию node.js:

cd /tmp
curl -sL https://rpm.nodesource.com/setup | bash -

Терминал выводит сообщение о том, что для удаления устаревшей версии node.js мне следует ввести следующее, поэтому я вводлю следующее:

yum remove -y nodejs npm

Терминал также предлагает ввести следующее для установки новейшей версии node.js, поэтому я ввожу следующее:

yum install -y nodejs

Но затем я node --versionснова печатаю, и терминал отвечает «renew» v0.12.7, показывая, что предыдущие команды просто переустановили старую устаревшую версию.

Так что же мне нужно сделать, чтобы установить последнюю стабильную версию node.js на машину с CentOS 7?


ТЕКУЩИЕ УСИЛИЯ:


Согласно предложению @Digisec, я повторно выполнил вышеуказанные команды, но на этот раз записал весь вывод в следующий текст. Обратите внимание, что последовательность теперь немного отличается, когда я запускаю ее снова, но результат тот же, как показано ниже:

[root@localhost ~]# node --version
v0.12.7
[root@localhost ~]# cd /tmp
[root@localhost tmp]# curl -sL https://rpm.nodesource.com/setup | bash -

## Installing the NodeSource Node.js 0.10 repo...


## Inspecting system...

+ rpm -q --whatprovides redhat-release || rpm -q --whatprovides centos-release || rpm -q --whatprovides cloudlinux-release || rpm -q --whatprovides sl-release
+ uname -m

## Confirming "el7-x86_64" is supported...

+ curl -sLf -o /dev/null 'https://rpm.nodesource.com/pub_0.10/el/7/x86_64/nodesource-release-el7-1.noarch.rpm'

## Downloading release setup RPM...

+ mktemp
+ curl -sL -o '/tmp/tmp.ePYEdVWXQH' 'https://rpm.nodesource.com/pub_0.10/el/7/x86_64/nodesource-release-el7-1.noarch.rpm'

## Installing release setup RPM...

+ rpm -i --nosignature --force '/tmp/tmp.ePYEdVWXQH'

## Cleaning up...

+ rm -f '/tmp/tmp.ePYEdVWXQH'

## Checking for existing installations...

+ rpm -qa 'node|npm' | grep -v nodesource

## Run `yum install -y nodejs` (as root) to install Node.js 0.10 and npm.
## You may also need development tools to build native addons:
##   `yum install -y gcc-c++ make`

[root@localhost tmp]# yum remove -y nodejs npm
Loaded plugins: fastestmirror, langpacks
No Match for argument: npm
Resolving Dependencies
--> Running transaction check
---> Package nodejs.x86_64 0:0.10.42-1nodesource.el7.centos will be erased
--> Finished Dependency Resolution

Dependencies Resolved

====================================================================================================================================================================================
 Package                             Arch                                Version                                                     Repository                                Size
====================================================================================================================================================================================
Removing:
 nodejs                              x86_64                              0.10.42-1nodesource.el7.centos                              @nodesource                               16 M

Transaction Summary
====================================================================================================================================================================================
Remove  1 Package

Installed size: 16 M
Downloading packages:
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
  Erasing    : nodejs-0.10.42-1nodesource.el7.centos.x86_64                                                                                                                         1/1 
  Verifying  : nodejs-0.10.42-1nodesource.el7.centos.x86_64                                                                                                                         1/1 

Removed:
  nodejs.x86_64 0:0.10.42-1nodesource.el7.centos                                                                                                                                    

Complete!
[root@localhost tmp]# yum install -y nodejs
Loaded plugins: fastestmirror, langpacks
Loading mirror speeds from cached hostfile
 * base: www.gtlib.gatech.edu
 * epel: mirror.sfo12.us.leaseweb.net
 * extras: dallas.tx.mirror.xygenhosting.com
 * updates: linux.mirrors.es.net
Resolving Dependencies
--> Running transaction check
---> Package nodejs.x86_64 0:0.10.42-1nodesource.el7.centos will be installed
--> Finished Dependency Resolution

Dependencies Resolved

====================================================================================================================================================================================
 Package                             Arch                                Version                                                      Repository                               Size
====================================================================================================================================================================================
Installing:
 nodejs                              x86_64                              0.10.42-1nodesource.el7.centos                               nodesource                              4.5 M

Transaction Summary
====================================================================================================================================================================================
Install  1 Package

Total download size: 4.5 M
Installed size: 16 M
Downloading packages:
nodejs-0.10.42-1nodesource.el7.centos.x86_64.rpm                                                                                                             | 4.5 MB  00:00:09     
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
  Installing : nodejs-0.10.42-1nodesource.el7.centos.x86_64                                                                                                                         1/1 
  Verifying  : nodejs-0.10.42-1nodesource.el7.centos.x86_64                                                                                                                         1/1 

Installed:
  nodejs.x86_64 0:0.10.42-1nodesource.el7.centos                                                                                                                                    

Complete!
[root@localhost tmp]# node --version
v0.12.7
[root@localhost tmp]#   

Затем, согласно @Digisecотвечать, я затем попробовал следующее,но результат все еще не позволяет установить нужную версию, как вы можете видеть из следующего вывода терминала:

[root@localhost tmp]# curl --silent --location https://rpm.nodesource.com/setup_5.x | bash -

## Installing the NodeSource Node.js 5.x repo...


## Inspecting system...

+ rpm -q --whatprovides redhat-release || rpm -q --whatprovides centos-release || rpm -q --whatprovides cloudlinux-release || rpm -q --whatprovides sl-release
+ uname -m

## Confirming "el7-x86_64" is supported...

+ curl -sLf -o /dev/null 'https://rpm.nodesource.com/pub_5.x/el/7/x86_64/nodesource-release-el7-1.noarch.rpm'

## Downloading release setup RPM...

+ mktemp
+ curl -sL -o '/tmp/tmp.NEM1bxM9WB' 'https://rpm.nodesource.com/pub_5.x/el/7/x86_64/nodesource-release-el7-1.noarch.rpm'

## Installing release setup RPM...

+ rpm -i --nosignature --force '/tmp/tmp.NEM1bxM9WB'

## Cleaning up...

+ rm -f '/tmp/tmp.NEM1bxM9WB'

## Checking for existing installations...

+ rpm -qa 'node|npm' | grep -v nodesource

## Run `yum install -y nodejs` (as root) to install Node.js 5.x and npm.
## You may also need development tools to build native addons:
##   `yum install -y gcc-c++ make`

[root@localhost tmp]# yum remove -y nodejs npm
Loaded plugins: fastestmirror, langpacks
No Match for argument: npm
Resolving Dependencies
--> Running transaction check
---> Package nodejs.x86_64 0:0.10.42-1nodesource.el7.centos will be erased
--> Finished Dependency Resolution

Dependencies Resolved

====================================================================================================================================================================================
 Package                             Arch                                Version                                                     Repository                                Size
====================================================================================================================================================================================
Removing:
 nodejs                              x86_64                              0.10.42-1nodesource.el7.centos                              @nodesource                               16 M

Transaction Summary
====================================================================================================================================================================================
Remove  1 Package

Installed size: 16 M
Downloading packages:
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
  Erasing    : nodejs-0.10.42-1nodesource.el7.centos.x86_64                                                                                                                             1/1 
  Verifying  : nodejs-0.10.42-1nodesource.el7.centos.x86_64                                                                                                                             1/1 

Removed:
  nodejs.x86_64 0:0.10.42-1nodesource.el7.centos                                                                                                                                    

Complete!
[root@localhost tmp]# yum install -y nodejs
Loaded plugins: fastestmirror, langpacks
Loading mirror speeds from cached hostfile
 * base: www.gtlib.gatech.edu
 * epel: mirror.sfo12.us.leaseweb.net
 * extras: dallas.tx.mirror.xygenhosting.com
 * updates: linux.mirrors.es.net
Resolving Dependencies
--> Running transaction check
---> Package nodejs.x86_64 0:0.10.42-1nodesource.el7.centos will be installed
--> Finished Dependency Resolution

Dependencies Resolved

====================================================================================================================================================================================
 Package                             Arch                                Version                                                      Repository                               Size
====================================================================================================================================================================================
Installing:
 nodejs                              x86_64                              0.10.42-1nodesource.el7.centos                               nodesource                              4.5 M

Transaction Summary
====================================================================================================================================================================================
Install  1 Package

Total download size: 4.5 M
Installed size: 16 M
Downloading packages:
nodejs-0.10.42-1nodesource.el7 FAILED                                          
https://rpm.nodesource.com/pub_5.x/el/7/x86_64/nodejs-0.10.42-1nodesource.el7.centos.x86_64.rpm: [Errno 14] HTTPS Error 404 - Not Found           ]  0.0 B/s |    0 B  --:--:-- ETA 
Trying other mirror.
To address this issue please refer to the below knowledge base article 

https://access.redhat.com/articles/1320623

If above article doesn't help to resolve this issue please create a bug on https://bugs.centos.org/



Error downloading packages:
  nodejs-0.10.42-1nodesource.el7.centos.x86_64: [Errno 256] No more mirrors to try.

[root@localhost tmp]# yum install -y nodejs
Loaded plugins: fastestmirror, langpacks
Loading mirror speeds from cached hostfile
 * base: www.gtlib.gatech.edu
 * epel: mirror.sfo12.us.leaseweb.net
 * extras: dallas.tx.mirror.xygenhosting.com
 * updates: linux.mirrors.es.net
Resolving Dependencies
--> Running transaction check
---> Package nodejs.x86_64 0:0.10.42-1nodesource.el7.centos will be installed
--> Finished Dependency Resolution

Dependencies Resolved

====================================================================================================================================================================================
 Package                             Arch                                Version                                                      Repository                               Size
====================================================================================================================================================================================
Installing:
 nodejs                              x86_64                              0.10.42-1nodesource.el7.centos                               nodesource                              4.5 M

Transaction Summary
====================================================================================================================================================================================
Install  1 Package

Total download size: 4.5 M
Installed size: 16 M
Downloading packages:
No Presto metadata available for nodesource  
nodejs-0.10.42-1nodesource.el7 FAILED    
https://rpm.nodesource.com/pub_5.x/el/7/x86_64/nodejs-0.10.42-1nodesource.el7.centos.x86_64.rpm: [Errno 14] HTTPS Error 404 - Not Found           ]  0.0 B/s |    0 B  --:--:-- ETA 
Trying other mirror.
To address this issue please refer to the below knowledge base article 

https://access.redhat.com/articles/1320623

If above article doesn't help to resolve this issue please create a bug on https://bugs.centos.org/



Error downloading packages:
  nodejs-0.10.42-1nodesource.el7.centos.x86_64: [Errno 256] No more mirrors to try.

[root@localhost tmp]# node --version
v0.12.7
[root@localhost tmp]# 

Затем я посетилстатья базы знаний, на которую ссылается журнал ошибок выше, но обнаружил, что не могу получить доступ к полной статье, поскольку не являюсь клиентом Red Had.


ЧАСТИЧНОЕ РЕШЕНИЕ:


@Digisec частично решил эту проблему, показав, как установить новую версию, но мы по-прежнему не можем удалить старую версию, что оставляет риск возникновения конфликтов в будущем. Какие шаги необходимо предпринять для удаления старой версии, чтобы новая установка была чистой и полной?

я нашелtar-url для старой версии v0.12.7 по этой ссылке. И @Digisec' также предложил почитатьэта другая ссылка, которая предлагает использовать командуmake uninstall. У меня такое чувство, что для удаления старой версии v0.12.7 и повторной установки новой версии nodejs в терминале нужно ввести всего пять или десять команд. Какие команды требуются?

Кажется, мне удалось найти три tar-файла на машине CentOS 7, которые связаны с nodejs v0.12.7, используя следующие команды терминала:

[root@localhost ~]# cd /
[root@localhost /]# find . -type f -iname "*.tar"
find: ‘./run/user/1000/gvfs’: Permission denied
./opt/node-v0.12.7/deps/npm/node_modules/tar/test/dir-normalization.tar
./opt/node-v0.12.7/deps/npm/test/fixtures/gitignore-and-npmignore-2.tar
./opt/node-v0.12.7/deps/npm/test/fixtures/gitignore-and-npmignore.tar
./usr/local/lib/node_modules/npm/test/fixtures/gitignore-and-npmignore-2.tar
./usr/local/lib/node_modules/npm/test/fixtures/gitignore-and-npmignore.tar
./usr/local/lib/node_modules/npm/node_modules/tar/test/dir-normalization.tar
[root@localhost /]# 

Обратите внимание, что отмечены еще три tar-файла, node_modulesсвязь которых с v0.12.7.

Какие конкретные команды мне следует выполнить для безопасного удаления v0.12.7и удаления всех v0.12.7связанных tar-файлов с машины?

решение1

Я только что проверилсвязьвы получили это от. Вы устанавливаете, конкретно, версию 0.10, или пытаетесь, по крайней мере, но у вас есть более новая версия в репозитории, которая устанавливается. Вам нужно следовать настройке для узла v5.

curl --silent --location https://rpm.nodesource.com/setup_5.x | bash -

ПС: для справок в будущем, обязательно внимательно читайте сайты, особенно при запуске команд, каккорень.

РЕДАКТИРОВАТЬ: Хорошо, похоже, вы добавилирепоправильно. Заглядывая в репозиторий, ваши пакеты там, но система ищет не ту версию. На этом этапе я бы предложил.

yum clean all && yum update

Это очистит кэшированный репозиторий и выгрузит данные из удаленного хранилища.

Отвечать: После проделанной нами работы над chat, вот правильный ответ для вас. nodejs v5установлен нормально. Ранее вы компилировали nodejs v0.12вручную, что не является хорошей идеей для бинарных дистрибутивов, потому что вы окажетесь в таком положении.

which node

вернулся

/usr/local/bin/node

пока

/usr/bin/node

вернул правильный ответ v5.x.

На этом этапе у вас есть несколько вариантов исправления, но я бы рекомендовал 2.

  • Опция 1: Это простой выход. Вы можете отредактировать свой .bashrcи добавить , aliasкоторый будет указывать на node -> /usr/bin/node. Это так же просто, как добавить alias node="/usr/bin/node". Это будет вызывать правильную версию каждый раз, но я не могу гарантировать, что это не вызовет конфликтов с библиотеками в будущем.
  • Вариант 2: Это сложный путь, но он исправит это. Во-первых, очистите с помощью yumnodejs, который установлен в системе. Во-вторых, получите tarball для версии, которую вы скомпилировали, распакуйте его ./configureи удалите. На этом этапе вы можете найтиВ сетилегко. Наконец, переустановите nodejsчерез yum, и это должно решить вашу проблему.

решение2

Что я сделал:

rm -f /etc/yum.repos.d/nodesource-el*
curl -sL https://rpm.nodesource.com/setup_7.x | bash -
yum install -y nodejs
узел --версия

и я получил:

v7.2.0

решение3

CentOS 7.2, NodeJS 6.7.0 (https://nodejs.org/download/release/v6.7.0/). Установить вручную

wget https://nodejs.org/download/release/v6.7.0/node-v6.7.0.tar.gz
./configure
make
make install

удалитьmake uninstall

решение4

Та же проблема здесь. Что я сделал, чтобы решить это:

ВСЕ ДОЛЖНО БЫТЬ ВЫПОЛНЕНО ОТ ПРАВ ROOT или, по крайней мере, добавить SUDO в начале каждой команды

Удалите nodejs - в моем случае node v8

yum uninstall nodejs npm

удалить репозиторий из /etc/yum.repos.d

rm /etc/yum.repos.d/nodesource*

Обновите свой репозиторий

yum update

Получите обновленный репозиторий - в моем случае node v14

curl -sL https://rpm.nodesource.com/setup_14.x | bash -

Мне нравится делать новые обновления yum (это необязательно)

yum update

Установите новую версию узла

yum install nodejs

Наслаждаться

no code available for this

Связанный контент