Примечание: это частично решено, но требует немного большего внимания. Смотрите примечания внизу 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
снова печатаю, и терминал 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 tar для старой версии 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 с компьютера?
yum remove -y nodejs
.Ответы:
Я только что проверил ссылку, с которой ты это получил. Вы устанавливаете, в частности, версию
0.10
или пытаетесь, по крайней мере, но у вас есть более новая версия в репозитории, которая устанавливается. Вы должны следовать настройке для узла v5.PS : для дальнейшего использования убедитесь, что вы очень внимательно читаете сайты, особенно когда запускаете команды от имени пользователя root .
РЕДАКТИРОВАТЬ: Хорошо, кажется, что вы добавили репо правильно. Заглядывая в репозиторий, ваши пакеты есть, но система ищет неправильную версию. На данный момент, я бы предложил.
Это очистит кэшированный репо и захватит с удаленного.
Ответ: После работы, которую мы проделали
chat
, вот правильный ответ для вас.nodejs v5
установлен нормально. Ранее вы компилировалиnodejs v0.12
вручную, что не очень хорошая идея для бинарных дистрибутивов, потому что вы окажетесь в этой позиции.возвращенный
пока
вернул правильный ответ
v5.x
.На данный момент у вас есть несколько вариантов, чтобы исправить это, но я бы порекомендовал 2.
.bashrc
и добавить,alias
что будет указыватьnode -> /usr/bin/node
. Это так же просто, как добавлениеalias node="/usr/bin/node"
. Это будет вызывать правильную версию каждый раз, но я не могу гарантировать, что это не вызовет конфликтов в будущем с библиотеками.yum
выполните очистку с помощью nodejs, установленного в системе. Во-вторых, получите tarball для версии, которую вы скомпилировали, распакуйте ее./configure
и удалите. Этот шаг вы можете легко найти в Интернете . Наконец, переустановитеnodejs
черезyum
, и это должно решить вашу проблему.источник
Что я сделал:
и я получил:
источник
CentOS 7.2, NodeJS 6.7.0 ( https://nodejs.org/download/release/v6.7.0/ ). Установить вручную
удалить
make uninstall
источник
Я попытался установить узел из того же NodeSource RepoInstaller . На мой взгляд, проблема решена путем включения
nodesource
репо. Перейдитеenabled=0
наenabled=1
и все должно работать.источник
У меня также были некоторые проблемы с установкой новых версий npm и nodejs в CentOS 7.
Я следовал инструкциям на сайте nodejs, затем попытался установить npm. Это оказалось проблемой (npm устанавливался из EPEL). Репозиторий Nodesource не предоставляет отдельные пакеты для npm, как в случае с EPEL. Вместо этого все находится внутри одного пакета 'nodejs'. Итак, после установки nodejs из Nodesource вы автоматически установили npm и готовы перейти на обновленную версию.
источник
Я боролся с той же проблемой,
yum clean all
ниrm -f /etc/yum.repos.d/nodesource*
помогал. Затем я обнаружил, что yum использовал репозиторий Epel для установки узла, поэтому я временно отключил его (в/etc/yum.repos.d/epel.repo
комплектеenabled=0
) и после этогоисточник
Я также столкнулся с той же проблемой.
Решение: 1. Перейдите в
/tmp
папку «Удалить все файлы и папки».2. теперь вы можете использовать команды ниже для установки NodeJs
источник