Команда npm install -g yo дает → ERR! [email protected] postinstall: `node scripts/doctor.js`

Я просто пытался установить npm, но получаю эту ошибку о докторе, js в конце. Мне нужно беспокоиться об этом?

npm install -g yo

. .

npm http 304 https://registry.npmjs.org/graceful-fs
npm http 200 https://registry.npmjs.org/fstream/-/fstream-0.1.25.tgz
/usr/local/bin/yo -> /usr/local/lib/node_modules/yo/cli.js

> [email protected] postinstall /usr/local/lib/node_modules/yo
> node scripts/doctor.js

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 ERR! [email protected] postinstall: `node scripts/doctor.js`
npm ERR! `sh "-c" "node scripts/doctor.js"` failed with 1
npm ERR! 
npm ERR! Failed at the [email protected] postinstall script.
npm ERR! This is most likely a problem with the yo package,
npm ERR! not with npm itself.
npm ERR! Tell the author that this fails on your system:
npm ERR!     node scripts/doctor.js
npm ERR! You can get their info via:
npm ERR!     npm owner ls yo
npm ERR! There is likely additional logging output above.

npm ERR! System Linux 3.11.0-12-generic
npm ERR! command "/usr/bin/nodejs" "/usr/bin/npm" "install" "-g" "yo"
npm ERR! cwd /etc/libvirt/qemu
npm ERR! node -v v0.10.15
npm ERR! npm -v 1.2.18
npm ERR! code ELIFECYCLE
npm ERR! 
npm ERR! Additional logging details can be found in:
npm ERR!     /etc/libvirt/qemu/npm-debug.log
npm ERR! not ok code 0

EDIT_ ___________ -

по какой-либо причине node -v ничего не выводит в терминале

У меня установлен последний node:

WebstormProjects # sudo apt-get install node Чтение списков пакетов... Готово Создание дерева зависимостей Чтение информации о состоянии... Готово node - это уже самая новая версия. 0 обновлено, 0 вновь установлено, 0 удалено и 143 не обновлены.

Ответы

Ответ 1

Решение по этой ссылке работает для меня:

http://plaidzooks.tumblr.com/post/36894116867/using-node-js-on-debian-ubuntu-systems

Ubuntu поставляется с пакетом, который автоматически создает ссылку, поэтому команда "nodejs" может быть вызвана как "node", только создав ссылку.

sudo apt-get install nodejs-legacy

И это помогло Йомену работать.

Ответ 2

Аналогично у меня была такая же проблема (хотя и на Mac). Я удалил и обновил node до последней версии (v0.10.24), но безуспешно.

Исправление symlink помогло мне, хотя и с небольшой настройкой:

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

Ответ 3

Я считаю, что это может быть связано с тем, как node был установлен в вашей системе. По-видимому, иногда при установке Node через диспетчер пакетов связанный двоичный файл имеет nodejs, (таким образом, nodejs _command_ - это команда, которая работает на вашем компьютере, а не гораздо более распространенная node _comamand_. Вы можете либо переустановить Node (последняя версия теперь 0.10.24) от nodejs.org, или попробуйте это решение из этой связанной проблемы:

Для тех, кто хочет по-прежнему использовать свой пакет ОС Node, простое решение для этого - определить, где Node установлен в вашей ОС, а затем создать символическую ссылку.

Например, у меня была проблема с ubuntu, а каталог установки -/usr/bin. Чтобы создать символическую ссылку, вы можете запустить:

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

в окнах вы можете использовать команду mklink. Обязательно откройте командную строку в качестве администратора

Ответ 4

Вы должны установить nodejs таким образом:

sudo apt-get install python-software-properties
sudo add-apt-repository ppa:chris-lea/node.js
sudo apt-get update
sudo apt-get install nodejs

Ответ 5

У меня была такая же ошибка при чистой установке Ubuntu 13.10, и никакое количество сим-ссылок (node > nodejs) или установка/удаление не помогли мне.

У меня недостаточно глубокое понимание среды node для устранения неполадок, но я смог установить Yeoman глобально, клонируя репо и удалив проверку postinstall из package.json.

Если кто-то еще захочет попробовать это решение:

Клон Йомен..

cd ~
git clone https://github.com/yeoman/yo

Отредактируйте package.json..

nano yo/package.json

.., чтобы удалить эти строки.

"scripts": {
    "test": "grunt",
    "postinstall": "node ./scripts/doctor",
    "postupdate": "node ./scripts/doctor"
},

Затем установите его с помощью npm..

cd yo
npm install -g

Если вы хотите очистить, вы можете удалить репортаж Yeoman..

cd ..
rm -R yo/

Очевидно, что ваш пробег может отличаться, но он работает для меня до сих пор.

Я также заметил, что мне удалось успешно запустить doctor.js script независимо от процесса установки. Не знаю, почему это было так сложно в первую очередь.

Ответ 6

В Ubuntu 14.04 я попытался установить устаревший пакет (для ответа Антонио) и создать символическую ссылку вручную (на ответ Стивена). Ничего не сработало. Пакет Ubuntu имеет версию 0.10.25 из node.js, но Yeoman, похоже, требует более новой версии.

После установки последней версии node.js из NodeSource (в настоящее время v6.9.1) мне удалось установить Yeoman с помощью npm install -g yo.

Ответ 7

Чтобы решить эту проблему, вам необходимо установить пакет nodejs-legacy.

sudo apt-get install nodejs-legacy