node & nodejs memiliki versi berbeda

15

Saya berhasil memperbarui / menginstal versi terbaru dari simpul js dengan menggunakan perintah-perintah itu ( curlcara resmi tidak berfungsi untuk saya):

sudo npm cache clean -f
sudo npm install -g n
sudo n stable

sudo ln -sf /usr/local/n/versions/node/<VERSION>/bin/node /usr/bin/node

Namun, versi simpul dan simpul saya menjadi berbeda:

$ node --version
v5.0.0
$ nodejs --version
v0.10.25

Tampaknya simpul baru sudah diinstal /usr/local/bin/node, jadi saya mencoba:

sudo ln -s /usr/bin/nodejs /usr/local/bin/node

Tetapi ia kembali:

ln: failed to create symbolic link ‘/usr/local/bin/node’: File exists

Saya juga menggunakan tautan ini:

$ sudo ln -s /usr/bin/nodejs /usr/bin/node
ln: failed to create symbolic link ‘/usr/bin/node’: File exists

Saya akan menggunakan beberapa kerangka kerja yang bergantung pada node, seperti Ionic. Versi node mana yang akan digunakan?

Apa yang harus saya lakukan untuk menyelesaikan ini?

Terima kasih banyak atas bantuan Anda

Blaze Tama
sumber
Imo pertanyaan sebenarnya adalah, bagaimana cara saya memberitahu n untuk menimpa setiap versi node yang ada dan symlink baik nodejsdan nodeke biner yang diinstal oleh n. Dan jika n tidak mampu melakukan hal itu, apa pendekatan canggihnya? Dalam lingkungan kerja sangat rentan terhadap kesalahan, jika nodejs dan node membahas versi nodejs yang berbeda.
Atrip

Jawaban:

13

Langkah-langkah yang memecahkan masalah yang sama bagi saya:

sudo apt-get remove nodejs
sudo ln -s /usr/bin/node /usr/bin/nodejs

Penjelasan

Anda telah menginstal dua versi nodejs di komputer Anda, jadi Anda harus menghapus salah satunya. Situasi Anda:

node v5.0.0 - you will keep this one
nodejs v0.10.25 - this you can remove

Anda dapat menghapus nodejspaket melalui apt-get removeperintah. Ini juga akan menghapus file /usr/bin/nodejsdan Anda tidak akan mendapatkan pesan kesalahan lagi.

Sekarang Anda dapat membuat tautan simbolis yang disebut "/ usr / bin / nodejs", yang menunjuk pada sumber "/ usr / local / bin / node". Dalam contoh Anda, Anda memiliki urutan jalur yang salah "dari" dan "ke"

sudo ln -s source_file myfile

Info selengkapnya tentang pembuatan tautan: Cara kerja tautan simbolik

areim
sumber
5

Kesalahan:

ln: failed to create symbolic link ‘/usr/bin/node’: File exists

biasanya disebabkan ketika Anda benar-benar memiliki dua versi Nodejs, a dengan alias dari nodedan yang lainnya dengan nodejsalias, seperti yang dapat kita lihat pada hasil perintah node --versiondan nodejs --version:

$ node --version
v5.0.0
$ nodejs --version
v0.10.25

jadi Anda tidak dapat membuat tautan simbolis untuk file yang sudah ada.

Untuk mengatasi ini, Anda perlu menghapus dua paket menggunakan:

sudo apt-get purge node
sudo apt-get purge nodejs
sudo rm -rf bin/node bin/node-waf include/node lib/node lib/pkgconfig/nodejs.pc share/man/man1/node

dan instal ulang hanya nodejspaket menggunakan perintah:

sudo apt-get install nodejs

dan buat tautan simbolis menggunakan:

ln -s /usr/bin/nodejs /usr/bin/node

atau instal nodejs-legacyyang akan menyelesaikan masalah ini dengan perintah:

sudo apt-get install nodejs-legacy 
Valdeci
sumber
terima kasih banyak, Anda menambahkan informasi, saya sudah menyelesaikan masalah sendiri. Saya terbalik.
areim
0

Bagi saya nodeperintahnya adalah NodeJS diinstal oleh nvmdan nodejsperintah adalah NodeJS diinstal menggunakanapt-get

Alexander Elgin
sumber