Имя переводчика NodeJS (node
) в Ubuntu было переименовано nodejs
из-за конфликта имен с другим пакетом. Вот что читает. Debian говорит:
Вышестоящее имя для команды интерпретатора Node.js - «узел». В Debian команда интерпретатора была изменена на "nodejs".
Это было сделано для предотвращения конфликта пространства имен: другие команды используют то же имя в своем восходящем потоке, например, ax25-node из пакета "node".
Сценарии, вызывающие Node.js в качестве команды оболочки, должны быть изменены, чтобы вместо них использовать команду "nodejs".
Однако использование nodejs портит установку пакетов с помощью npm
. Установка пакета завершается с ошибкой:
sh: 1: node: not found npm WARN This failure might be due to the use of legacy binary "node" npm WARN For further explanations, please read /usr/share/doc/nodejs/README.Debian
Как заставить npm понять, что nodejs уже установлен в системе, но имя интерпретатора другое?
ln -s nodejs node
в/usr/bin
. Это вроде взломать хотя.Ответы:
TL; DR:
Прежде всего позвольте мне немного прояснить ситуацию. Летом 2012 года сопровождающие Debian решили переименовать исполняемый файл Node.js, чтобы предотвратить какое-либо столкновение пространства имен с другим пакетом. Это было очень сложное решение для Технического комитета Debian, потому что оно нарушает обратную совместимость.
Ниже приводится цитата из проекта резолюции Комитета, опубликованная в списке рассылки Debian :
Пункт 2 является актуальным решением проблемы ОП. OP должен попытаться установить этот пакет, а не делать символическую ссылку вручную. Вот ссылка на этот пакет на веб-сайте индекса пакетов Debian .
Может быть установлен с помощью
sudo apt-get install nodejs-legacy
.Я не нашел никакой информации о принятии всего этого разработчиками NPM, но я думаю, что
npm
пакет будет исправлен в какой-то момент иnodejs-legacy
станет действительно наследием.источник
sudo apt-get install nodejs-legacy
Попробуйте связать узел с nodejs. Сначала выясните, где находится nodejs
Затем узел мягкой ссылки на nodejs
Я предполагаю, что / usr / bin находится в вашем пути выполнения. Затем вы можете проверить, набрав в командной строке node или npm, и теперь все должно работать.
источник
nodejs-legacy
пакета проще./usr/bin
если не будешьdpkg
. Правильное решение (если вам нравится этот подход к созданию символических/usr/local/bin
ссылок вручную) состоит в создании символической ссылки, в которой предусмотрены локальные установки и переопределения. Все, что вы делаете вручную,/usr/bin
может и будет перезаписано менеджером пакетов, и / или запутает это.Вы также можете установить Nodejs с помощью NVM или Nodejs Version Manager. Использование менеджера версий дает множество преимуществ . Одним из них является то, что вам не нужно беспокоиться об этой проблеме.
Инструкции:
После установки необходимых пакетов вы можете открыть скрипт установки nvm со страницы проекта GitHub. Номер версии может отличаться, но в целом вы можете загрузить и установить его с использованием следующего синтаксиса:
Это загрузит скрипт и запустит его. Он установит программное обеспечение в подкаталог вашего домашнего каталога по адресу
~/.nvm
. Это также добавит необходимые строки в ваш~/.profile
файл, чтобы использовать файл.Чтобы получить доступ к функциональности nvm, вам нужно выйти и снова войти в систему, или вы можете получить файл ~ / .profile, чтобы ваш текущий сеанс знал об изменениях:
Теперь, когда у вас установлен nvm, вы можете установить изолированные версии Node.js.
Чтобы узнать версии Node.js, доступные для установки, вы можете набрать:
Как вы можете видеть, самая последняя версия на момент написания этой статьи - v0.11.14. Вы можете установить это, набрав:
Обычно nvm переключается на использование последней установленной версии. Вы можете явно указать nvm использовать только что загруженную версию, набрав:
Когда вы устанавливаете Node.js с помощью nvm, исполняемый файл называется node. Вы можете увидеть версию, в настоящее время используемую оболочкой, набрав:
Урок Comeplete можно найти здесь
источник
usr/bin/node
. Так побежалsudo ln -s /home/www/.nvm/v0.10.36/bin/node /usr/bin/node
Установите
nvm
сначала используя:Команда Run
Теперь запустите это, и это покажет все установленные или другие версии пакетов:
Установленные пакеты будут зеленого цвета. Установите любую версию, которую вы хотите:
Проверьте, где не установлен:
Проверьте текущую версию:
источник
Сочетание принятого ответа со
source ~/.profile
сложенным комментарием и некоторыми командами очистки перед этим. Скорее всего, вам также нужно будетsudo apt-get install npm
после.источник
для меня проблема была решена,
источник
Вот другой подход, который я использую, так как мне нравится n для легкого переключения между версиями узла.
В новой системе Ubuntu сначала установите узел system:
Затем установите модуль n глобально:
Поскольку системный узел был установлен первым (см. Выше), альтернативная система может использоваться для точного указания на узел, предоставленный n . Сначала убедитесь, что система альтернатив не имеет ничего для узла:
Затем добавьте узел, предоставленный n :
Затем добавьте узел, предоставленный системой (тот, который был установлен с помощью curl):
Теперь выберите узел , предоставленную п с помощью интерактивного меню (выбрать
/usr/local/bin/node
из меню , представленного следующей командой):Наконец, так как
/usr/local/bin
обычно приоритет в PATH выше/usr/bin
, чем в следующем, необходимо создать следующий псевдоним (введите в .bashrc или .zshrc), если альтернативный системный узел должен быть эффективным; в противном случае узел, установленный с n в / usr / local / bin, всегда имеет приоритет:Теперь вы можете легко переключаться между версиями узлов с помощью
n <desired node version number>
.источник
В Linux Mint 17 я попробовал оба решения (создание символической ссылки или использование
nodejs-legacy
пакета).Единственное, что в итоге сработало для меня, это использование ppa от Криса Ли:
Это установленный узел версии 10.37 и npm 1.4.28. После этого я мог устанавливать пакеты по всему миру.
источник
Как уже упоминали другие люди, я предлагаю не использовать «sudo apt-get» для установки узла или какой-либо библиотеки разработки. Вы можете скачать нужную версию с https://nodejs.org/dist/v6.9.2/ и настроить собственную среду.
Я буду рекомендовать инструменты, такие как nvm и n , чтобы управлять версией вашего узла. С этими модулями очень удобно переключаться и работать. https://github.com/creationix/nvm https://github.com/tj/n
Или напишите базовый bash для загрузки zip / tar, распакуйте папку перемещения и создайте мягкую ссылку. Всякий раз, когда вам нужно обновить, просто укажите старую программную ссылку на новую загруженную версию. Как я создал для себя, вы можете сослаться на: https://github.com/deepakshrma/NodeJs-4.0-Reference-Guide/blob/master/nodejs-installer.sh
источник
Простое решение отсюда
Вы можете указать версию, изменив значение setup_x.x, например на setup_5.x
источник
Ваша Система не может обнаружить двоичный путь узла js.
1. какой узел
2. Затем узел мягкой ссылки на nodejs
Я предполагаю, что / usr / bin находится в вашем пути выполнения. Затем вы можете проверить, набрав в командной строке node или npm, и теперь все должно работать.
источник
Удалите любую версию вашего узла
установить nvm (менеджер версий узлов) https://github.com/creationix/nvm
Теперь вы можете установить любую версию узла и переключаться между версиями.
источник
nvm
обратите внимание, что пакет nodejs-legacy v0.10.25. (или, по крайней мере, это то, что я увидел, когда попробовал.)Я исправил это, не связывая / usr / sbin / node (который связан с пакетом ax25-node), затем я создал ссылку на nodejs, используя это в командной строке
Поскольку такой пакет, как karma, не работает с именем nodejs, однако меняю первую строку скрипта karma с узла на nodejs, но я предпочитаю решить эту проблему раз и навсегда
источник
Для меня исправлением было удаление пакетов узла *, а также пакетов npm.
Затем новая установка как:
источник
sudo apt-get autoclean
делает "то же самое", чемsudo apt-get install autoclean
Проблема не в установщике:
замените nodejs на node или измените путь с / usr / bin / nodejs на / usr / bin / node
источник
Это ваш узел не правильно установлен, сначала вам нужно удалить узел, а затем установить снова. Для установки узла это может помочь вам http://array151.com/blog/nodejs-tutorial-and-set-up/
после этого вы можете легко установить пакеты. Для установки пакетов это может помочь вам
http://array151.com/blog/npm-node-package-manager/
источник
Вы можете создать
ln -s nodejs
узел ссылки в/usr/bin
надежде, что это решит вашу проблему.источник