GNU/Linux >> Znalost Linux >  >> Cent OS

Centos – Proč se na Centos 7 nenainstaluje správná nová verze Node.js?

Poznámka:Toto je částečně vyřešeno, ale vyžaduje trochu více pozornosti. Viz poznámky v dolní části OP a částečná odpověď @Digisec.

Snažím se nastavit Node.js na CentOS 7, ale následujícím příkazům se nedaří nainstalovat nejnovější verzi. Co musím změnit v kódu níže, abych mohl nainstalovat nejnovější verzi Node.js na CentOS 7?

Začnu zadáním node --version výsledkem je v0.12.7 . Toto je zjevně stará verze, protože nodejs.org říká, že v5.6.0 je nejnovější stabilní verze.

Takže potom zadám následující, abych získal nejnovější verzi node.js:

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

Terminál vypíše, že bych měl napsat následující, abych odstranil zastaralou verzi node.js, takže napíšu následující:

yum remove -y nodejs npm

Terminál také říká, že je třeba zadat následující pro instalaci nejnovější verze node.js, takže napíšu následující:

yum install -y nodejs

Ale pak napíšu node --version znovu a terminál odpoví v0.12.7 opět ukazuje, že předchozí příkazy jednoduše znovu nainstalovaly starou zastaralou verzi.

Co tedy musím udělat, abych si na počítači CentOS 7 nainstaloval nejnovější stabilní verzi node.js?

PŘEBĚŽNÉ ÚSILÍ:

Podle návrhu @Digisec jsem znovu spustil výše uvedené příkazy, ale tentokrát zaznamenal veškerý výstup do následujícího textu. Vezměte prosím na vědomí, že sekvence je nyní mírně odlišná, když ji znovu spouštím, ale výsledek je stejný, a to následovně:

[[email protected] ~]# node --version
v0.12.7
[[email protected] ~]# cd /tmp
[[email protected] 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`

[[email protected] 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!
[[email protected] 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!
[[email protected] tmp]# node --version
v0.12.7
[[email protected] tmp]#   

Potom podle odpovědi @Digisec , dále jsem zkusil následující, ale výsledek se stále nedaří nainstalovat správnou verzi , jak můžete vidět z následujícího výstupu terminálu:

[[email protected] 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`

[[email protected] 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!
[[email protected] 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.

[[email protected] 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.

[[email protected] tmp]# node --version
v0.12.7
[[email protected] tmp]# 

Poté jsem navštívil článek znalostní báze, na který odkazuje výše uvedený protokol chyb, ale zjistil jsem, že nemám přístup k celému článku, protože nejsem zákazníkem Red Had.

Související:Linux – standardní a/nebo běžné adresáře na operačních systémech Unix/Linux?

ČÁSTEČNÉ ŘEŠENÍ:

@Digisec to částečně vyřešil tím, že ukázal, jak nainstalovat novou verzi, ale stále nejsme schopni odstranit starou verzi, což zanechá riziko budoucích konfliktů. Jaké kroky je třeba provést k odstranění staré verze, aby nová instalace mohla být čistá a úplná?

Na tomto odkazu jsem našel tar url pro starou verzi v0.12.7. A @Digisec‘ také navrhl přečíst si tento další odkaz, který navrhuje použít příkaz make uninstall . Mám pocit, že k odstranění staré verze 0.12.7 a opětovné instalaci nové verze nodejs může být k zadání pouze pět nebo deset příkazů v terminálu. Jaké jsou požadované příkazy?

Zdá se, že jsem na počítači CentOS 7 našel tři soubory tar, které souvisejí s nodejs v0.12.7 pomocí následujících příkazů terminálu:

[[email protected] ~]# cd /
[r[email protected] /]# 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
[[email protected] /]# 

Všimněte si, že existují další tři soubory tar označené node_modules jehož vztah s v0.12.7 není jasné.

Jaké konkrétní příkazy mám spustit, abych bezpečně odinstaloval v0.12.7 a odstraňte všechny v0.12.7 přidružené soubory tar z počítače?

Přijatá odpověď:

Právě jsem zkontroloval odkaz, ze kterého to máš. Instalujete konkrétně verzi 0.10 , nebo se o to alespoň pokoušíte, ale v repozitáři máte novější verzi, která se instaluje. Musíte postupovat podle nastavení pro uzel v5.

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

PS :pro budoucí použití se ujistěte, že jste si stránky přečetli velmi pozorně, zvláště když spouštíte příkazy jako root .

UPRAVIT: Dobře, zdá se, že jste repo přidali správně. Když se podíváte do repozitáře, vaše balíčky tam jsou, ale systém hledá špatnou verzi. V tomto bodě bych navrhoval.

yum clean all && yum update

Tím se vyčistí úložiště v mezipaměti a uchopte ze vzdáleného místa.

Související:Proč se služba Windows Update pokouší nainstalovat aktualizaci, kterou nepotřebuji?

Odpověď: Po práci, kterou jsme udělali přes chat , zde je pro vás správná odpověď. nodejs v5 nainstalováno v pořádku. Dříve jste zkompilovali nodejs v0.12 ručně, což u binárních distribucí není dobrý nápad, protože skončíte v této pozici.

which node

vráceno

/usr/local/bin/node

zatímco

/usr/bin/node

vrátil správnou odpověď v5.x .

V tuto chvíli máte několik možností, jak to opravit, ale já bych doporučil 2.

  • Možnost 1 :Toto je snadná cesta ven. Svůj .bashrc můžete upravit a přidejte alias to bude ukazovat na node -> /usr/bin/node . Je to stejně jednoduché jako přidání alias node="/usr/bin/node" . To pokaždé zavolá správnou verzi, ale nemohu zaručit, že to v budoucnu nezpůsobí konflikty s knihovnami.
  • Možnost 2 :Toto je nejtěžší způsob, ale opraví to. Nejprve proveďte vyčištění pomocí yum nodejs, který je nainstalován v systému. Za druhé, získejte tarball pro verzi, kterou jste zkompilovali, rozbalte jej, ./configure a odinstalujte jej. Tento krok můžete snadno najít online. Nakonec znovu nainstalujte nodejs přes yum , a to by mělo vyřešit váš problém.

Cent OS
  1. Jak nainstalovat Node.js a NPM na CentOS

  2. Jak nainstalovat MongoDB 4.2 / 4.0 na CentOS 6 / RHEL 6

  3. Jak nainstalovat CSF Firewall na CentOS 7

  1. Jak nainstalovat nejnovější verzi Pythonu 3 na CentOS 7

  2. Jak nainstalovat LAMP Stack na CentOS 7

  3. Jak nainstalovat Node.js a NPM na CentOS 7

  1. Jak nainstalovat MongoDB na CentOS 7

  2. Jak nainstalovat Git na CentOS 7

  3. Jak nainstalovat Gradle na CentOS 7