Форум русскоязычного сообщества Ubuntu


Автор Тема: Ламерский вопрос Node.JS  (Прочитано 3606 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Shalmaran

  • Автор темы
  • Активист
  • *
  • Сообщений: 840
  • Cow super power!
    • Просмотр профиля
    • kristyushatmb.livejournal.com
Ламерский вопрос Node.JS
« : 06 Августа 2014, 17:57:41 »
Почему во всех руководствах (включая официальные, да и по Windows тоже) по Node.JS его запускают командой node, а у меня система пишет:
$ node
Приложение 'node' может быть найдено в следующих пакетах:
 * node
 * nodejs-legacy
Попробуйте: sudo apt-get install <выбранный пакет>
Зато нормально запускается командой nodejs. Вопрос даже не в том, как сделать запуск как у всех, а в том, почему у меня так :)

Пользователь решил продолжить мысль 06 Августа 2014, 18:12:19:
Если установить пакет nodejs-legacy - нормально всё, запускается командой node. Версия такая-же. Отсюда второй вопрос. В чём разница пакетов nodejs и nodejs-legacy?
« Последнее редактирование: 06 Августа 2014, 18:12:19 от Shalmaran »
Banana Pi

Оффлайн kletchatii

  • Новичок
  • *
  • Сообщений: 13
    • Просмотр профиля
Re: Ламерский вопрос Node.JS
« Ответ #1 : 12 Января 2015, 23:32:59 »
Столкнулся с аналогичной проблемой.. переустанавливать ничего не стал.
Я нашел файл bower
$ file /usr/local/lib/node_modules/bower/bin/bower
   /usr/local/lib/node_modules/bower/bin/bower: Node.js script, ASCII text executable

открыл файл (файл довольно большой показана только часть):
#!/usr/bin/env node
'use strict';

process.bin = process.title = 'bower';

var Q = require('q');
...

поменял в первой строке
#!/usr/bin/env node

на

#!/usr/bin/env nodejs

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

Спасибо.
Lenovo b570, nvidia 410M
Ubuntu 14.04 LTS

Оффлайн .ubuntufan

  • Активист
  • *
  • Сообщений: 638
    • Просмотр профиля
Re: Ламерский вопрос Node.JS
« Ответ #2 : 13 Января 2015, 11:24:10 »
Актуальные версии nodejs имеют одноименный исполняемый файл.
node и пакет node-legacy оставлены в репозитории для обратной совместимости.

Собственно пакет node-legacy при установке просто создает симлинк на nodejs:

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

Цитировать
This package contains a symlink for legacy Node.js code requiring binary to be /usr/bin/node (not /usr/bin/nodejs as provided in Debian).

https://packages.debian.org/sid/nodejs-legacy


Пользователь решил продолжить мысль 13 Января 2015, 11:33:01:
kletchatii
Лучше создай симлинк или установи node-legacy.
Твой метод решения является костылем, который перезапишется при первом обновлении.
« Последнее редактирование: 13 Января 2015, 11:33:01 от .ubuntufan »

 

Страница сгенерирована за 0.041 секунд. Запросов: 25.