node & nodejs имеют другую версию

15

Я успешно обновляю / устанавливаю последнюю версию узла js с помощью этих команд (официальный curlспособ не работает для меня):

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

Тем не менее, версия моего узла и nodejs становятся разными:

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

Кажется, новый узел установлен /usr/local/bin/node, поэтому я попытался:

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

Но это возвращает:

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

Я также использую эту ссылку:

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

Я буду использовать некоторые фреймворки, которые зависят node, как Ionic. Какую версию узла он будет использовать?

Что я должен сделать, чтобы решить это?

Большое спасибо за твою помощь

Blaze Tama
источник
Реальный вопрос им в том, как я говорю п перезаписывать любые существующие версии узлов и симлинкам как nodejsи nodeв двоичном виде установленный на п. И если n не в состоянии сделать это, каков современный подход? В рабочей среде это очень подвержено ошибкам, если nodejs и узел обращаются к разным версиям nodejs.
atripes

Ответы:

13

Шаги, которые решили ту же проблему для меня:

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

объяснение

Вы установили две версии nodejs на свой компьютер, поэтому вам нужно удалить одну из них. Ваша ситуация:

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

Вы можете удалить nodejsпакет с помощью apt-get removeкоманды. Это также удалит файл, /usr/bin/nodejsи вы больше не получите сообщение об ошибке.

Теперь вы можете создать символическую ссылку с именем "/ usr / bin / nodejs", которая указывает на источник "/ usr / local / bin / node". В вашем примере у вас неправильный порядок путей "от" и "до"

sudo ln -s source_file myfile

Подробнее о создании ссылок: как работают символические ссылки

AREIM
источник
5

Ошибка:

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

обычно вызывается, когда у вас действительно есть две версии Nodejs, a с псевдонимом nodeи другая с nodejsпсевдонимом, как мы видим из результатов команд node --versionи nodejs --version:

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

поэтому вы не можете создать символическую ссылку для файла, который уже существует.

Для решения этой проблемы вам необходимо полностью удалить два пакета, используя:

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

и переустановите только nodejsпакет, используя команду:

sudo apt-get install nodejs

и создайте символическую ссылку, используя:

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

или установите nodejs-legacy, чтобы решить эту проблему с помощью команды:

sudo apt-get install nodejs-legacy 
Вальдеси
источник
Большое спасибо, вы добавили информацию, я уже решил проблему самостоятельно. Я проголосовал.
ареим
0

Для меня nodeкоманда является NodeJS установленного nvmи nodejsкоманда в NodeJS устанавливается с помощьюapt-get

Александр Эльгин
источник