GNU/Linux >> Belajar Linux >  >> Cent OS

Centos – Mengapa Versi Baru Node.js Tidak Dapat Diinstal Di Centos 7?

Catatan:Ini sebagian teratasi, tetapi perlu sedikit lebih banyak perhatian. Lihat catatan di bagian bawah OP, dan jawaban sebagian @Digisec.

Saya mencoba mengatur Node.js di CentOS 7, tetapi perintah berikut gagal menginstal versi terbaru. Apa yang harus saya ubah pada kode di bawah ini untuk menginstal versi terbaru Node.js di CentOS 7?

Saya mulai dengan mengetik node --version yang menghasilkan v0.12.7 . Ini jelas merupakan versi lama karena nodejs.org mengatakan bahwa v5.6.0 adalah versi stabil terbaru.

Jadi saya ketik berikut ini untuk mendapatkan versi terbaru dari node.js:

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

Terminal mencetak bahwa saya harus mengetik berikut ini untuk menghapus versi node.js yang sudah ketinggalan zaman, jadi saya mengetik yang berikut:

yum remove -y nodejs npm

Terminal juga mengatakan untuk mengetik berikut ini untuk menginstal versi terbaru dari node.js, jadi saya ketik berikut ini:

yum install -y nodejs

Tapi kemudian saya mengetik node --version lagi, dan terminal membalas dengan v0.12.7 lagi, menunjukkan bahwa perintah sebelumnya, cukup instal ulang versi lama yang sudah usang.

Jadi, apa yang harus saya lakukan untuk menginstal versi stabil terbaru dari node.js di mesin CentOS 7?

UPAYA YANG BERLANGSUNG:

Sesuai saran @Digisec, saya menjalankan kembali perintah di atas, tetapi kali ini merekam semua output ke dalam teks berikut. Harap dicatat bahwa urutannya sedikit berbeda sekarang karena saya menjalankannya lagi, tetapi hasilnya sama, sebagai berikut:

[[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]#   

Kemudian, sesuai dengan jawaban @Digisec , saya selanjutnya mencoba yang berikut, tetapi hasilnya masih gagal untuk menginstal versi yang tepat , seperti yang Anda lihat dari keluaran terminal berikut:

[[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]# 

Saya kemudian mengunjungi artikel basis pengetahuan yang dirujuk oleh log kesalahan di atas, tetapi ternyata saya tidak dapat mengakses artikel lengkap karena saya bukan pelanggan Red Had.

Terkait:Linux – Direktori standar dan/atau umum pada OS Unix/Linux?

SOLUSI PARSIAL:

@Digisec sebagian menyelesaikan ini dengan menunjukkan cara menginstal versi baru, tetapi kami masih tidak dapat menghapus versi lama, yang akan meninggalkan risiko konflik di masa mendatang. Langkah apa yang perlu diambil untuk menghapus versi lama agar pemasangan baru dapat bersih dan lengkap?

Saya menemukan url tar untuk versi lama v0.12.7 di tautan ini. Dan @Digisec juga menyarankan untuk membaca tautan lain ini, yang menyarankan menggunakan perintah make uninstall . Saya merasa bahwa mungkin hanya ada lima atau sepuluh perintah yang harus diketik di terminal untuk menghapus v0.12.7 lama dan menginstal ulang versi baru nodejs. Apa perintah yang diperlukan?

Sepertinya saya telah menemukan tiga file tar pada mesin CentOS 7 yang terkait dengan nodejs v0.12.7 menggunakan perintah terminal berikut:

[[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] /]# 

Perhatikan bahwa ada tiga file tar tambahan yang ditandai node_modules yang hubungannya dengan v0.12.7 tidak jelas.

Perintah spesifik apa yang saya jalankan untuk mencopot pemasangan v0.12.7 dengan aman dan hapus semua v0.12.7 file tar terkait dari mesin?

Jawaban yang Diterima:

Saya baru saja memeriksa tautan tempat Anda mendapatkan ini. Anda menginstal, khususnya, versi 0.10 , atau mencoba setidaknya, tetapi Anda memiliki versi yang lebih baru di repo yang sedang diinstal. Anda harus mengikuti pengaturan untuk node v5.

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

PS :untuk referensi di masa mendatang, pastikan Anda membaca situs dengan sangat hati-hati terutama saat menjalankan perintah sebagai root .

EDIT: Baiklah, sepertinya Anda menambahkan repo dengan benar. Melihat ke dalam repo, paket Anda ada di sana tetapi sistem mencari versi yang salah. Pada titik ini, saya akan menyarankan.

yum clean all && yum update

Itu akan membersihkan repo yang di-cache dan mengambil dari jarak jauh.

Terkait:Mengapa Pembaruan Windows mencoba menginstal pembaruan yang tidak saya perlukan?

Jawaban: Setelah pekerjaan yang kami lakukan melalui chat , inilah jawaban yang tepat untuk Anda. nodejs v5 terpasang dengan baik. Anda sebelumnya mengkompilasi nodejs v0.12 secara manual, yang bukan ide bagus di distro biner, karena Anda akan berakhir di posisi ini.

which node

dikembalikan

/usr/local/bin/node

sementara

/usr/bin/node

mengembalikan jawaban yang benar dari v5.x .

Pada titik ini Anda memiliki beberapa opsi untuk memperbaikinya, tetapi saya akan merekomendasikan 2.

  • Opsi 1 :Ini adalah jalan keluar yang mudah. Anda dapat mengedit .bashrc dan tambahkan alias yang akan menunjuk node -> /usr/bin/node . Ini semudah menambahkan alias node="/usr/bin/node" . Ini akan memanggil versi yang benar setiap saat, tetapi saya tidak dapat menjamin bahwa itu tidak akan menyebabkan konflik di masa mendatang dengan perpustakaan.
  • Opsi 2 :Ini adalah cara yang sulit, tetapi akan memperbaikinya. Pertama, bersihkan dengan yum nodejs yang diinstal pada sistem. Kedua, dapatkan tarball untuk versi yang telah Anda kompilasi, untar, ./configure dan hapus instalannya. Langkah ini, Anda dapat menemukan online dengan mudah. Terakhir, instal ulang nodejs melalui yum , dan itu akan menyelesaikan masalah Anda.

Cent OS
  1. Cara menginstal Node.js dan NPM di CentOS

  2. Cara Menginstal MongoDB 4.2 / 4.0 di CentOS 6 / RHEL 6

  3. Cara Menginstal Firewall CSF di CentOS 7

  1. Cara Menginstal Versi Terbaru Python 3 di CentOS 7

  2. Cara Memasang LAMP Stack di CentOS 7

  3. Cara Instal Node.js dan NPM di CentOS 7

  1. Cara Menginstal MongoDB di CentOS 7

  2. Cara Menginstal Git di CentOS 7

  3. Cara Menginstal Gradle di CentOS 7