вузол & nodejs мають різну версію


15

Я успішно оновлюю / встановлюю останню версію node 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. Яку версію вузла він використовуватиме?

Що мені робити, щоб вирішити це?

Велике спасибі за вашу допомогу


Справжнє питання imo полягає в тому, як я можу сказати n перезаписати будь-які існуючі версії вузла і посилання на символи як nodejsі nodeдо бінарних, встановлених n. І якщо російський не здатний на це, який сучасний підхід? У робочому середовищі він дуже схильний до помилок, якщо nodejs і вузол адресують різні версії nodejs.
атрип

Відповіді:


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

Детальніше про створення посилань: як працюють символічні посилання


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 

велике спасибі, ви додали інформацію, я вже вирішив питання сам. Я схвалив.
areim

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.