browserify error / usr / bin / env: node: Немає такого файлу або каталогу


85

Я встановив node js та npm через apt-get install та всі залежності, а потім встановив browserify

npm install browserify -g

він проходить процес, і здається, що він встановлений правильно, але коли я намагаюся зробити простий комплект для цього покрокового керівництва

Я отримую помилку:

/ usr / bin / env: node: Немає такого файлу або каталогу

введіть тут опис зображення


хмм, вам слід перевірити, чи виконуваний файл вузла знаходиться в / usr / bin або / usb / bin / env, принаймні, це конкретна операційна проблема. Можливо, ви зможете вирішити цю проблему, встановивши браузер для підтвердження local.
bodokaiser

мій виконуваний файл browserfy знаходиться в / usr / local / bin /, але чи викликає він щось інше, що шлях переплутаний?
Едуардо Денніс

3
ах, ви повинні символічно посилати nodejs на вузол на ubuntu. Ubuntu встановлює вузол як nodejs, тоді вам потрібно зробити щось на зразок "ln -s / usr / bin / nodejs / usr / bin / node", щоб системи також знайшли його як вузол
bodokaiser

1
це вирішило: -ПІ за останню годину ламав голову над цим, чи можете ви, будь ласка, поставити у форматі відповіді, щоб прийняти?
Едуардо Денніс

1
рада, що це спрацювало, не була впевнена, чи справді це проблеми, ось чому я прокоментував перший :)
bodokaiser

Відповіді:


246

Деякі дистрибутиви Linux встановлюють nodejs не як виконуваний файл "node", а як "nodejs".

У цьому випадку вам доведеться вручну зробити посилання на "вузол", оскільки багато пакетів запрограмовано після двійкового файлу "вузол". Щось подібне також відбувається з "python2", не пов'язаним з "python".

У цьому випадку ви можете зробити просте символічне посилання. Для дистрибутивів Linux, які встановлюють двійкові файли пакетів, /usr/binви можете це зробити

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

5
Це не рішення для Ubuntu 14.04, оскільки /usb/sbin/nodeє ax24-вузлом (не пов'язаним з nodejs). Просто символічне посилання на /usr/bin/nodeце не спрацює, тому що воно /usr/sbin/nodeперше в$PATH
Гарет

8
правильний спосіб вирішити це - використовувати update-alternatives. Дивіться моя відповідь тут stackoverflow.com/a/24592328/454615
airtonix

1
насправді більше про це думати ... подібні зв’язування двійкових файлів навколо цього - чудова звичка, якщо ви хочете зламати свою систему.
airtonix

так, я помітив, що це все порушує тонкими способами, чи знайшли ви краще рішення?
Едуардо Денніс

1
@EduardoDennis так, використовуйте update-alternatives. воно існує для цих точних ситуацій.
airtonix

52

Нова відповідь:

  1. Видаліть будь-який пакет nodejs, який ви встановили за допомогою диспетчера системних пакетів (dnf, apt-get тощо), видаліть усі безглузді символічні посилання, які ви відтворювали під час кожного оновлення (хаха).
  2. Встановіть NVM,
  3. використовуйте nvm для встановлення nodejs: nvm install 6

Стара відповідь:

Будь-які розмови про створення символічних посилань або встановлення якогось іншого вузлового пакету є хибними та нестійкими.

Правильний спосіб вирішити це:

  1. просто встановіть пакет nodejs за допомогою apt-get, як у вас вже є
  2. використовувати, update-alternativesщоб вказати, за що відповідає двійковий файл nodejs#!/usr/bin/env node

Подобається так:

sudo apt-get install nodejs
sudo update-alternatives --install /usr/bin/node nodejs /usr/bin/nodejs 100

Тепер це стає стійким під час оновлення пакунків, дист-апгрейдів тощо.


Це рішення моєї проблеми stackoverflow.com/questions/26155795/…
Алон Кармель

Дякую, чудове рішення, фокус із символічними посиланнями є найбільш повторюваним у мережі, але для мене не спрацював.
Емілія Тиль

Фактичною правильною відповіддю зараз є використання NVM у Linux та Nodist у Windows.
airtonix

35

Біжи apt-get install nodejs-legacy.

Деякі дистрибутиви Linux змінили двійкове ім'я node.js, що робить його несумісним з великою кількістю пакетів node.js. Пакет nodejs-legacyнадає символічне посилання для вирішення цієї проблеми.


2
Це рішення для Ubuntu 14.04, оскільки /usb/sbin/nodeє ax24-node (не пов'язаний з nodejs). Просто символічне посилання на /usr/bin/nodeце не спрацює, тому що воно /usr/sbin/nodeперше в$PATH
Гарет

Допоміг мені. Дякую!
Лапідус,

apt-get install nodejs-legacy. каже, що для користувача Windows 'apt-get' не розпізнається як внутрішня чи зовнішня команда, операційна програма або командний файл.
Свіфт,

7

Ви також можете встановити Nodejs за допомогою NVM або Nodejs Manager Manager . Користування менеджером версій має багато переваг . Одним з них є те, що вам не потрібно турбуватися з цього приводу.


Інструкції:


sudo apt-get update
sudo apt-get install build-essential libssl-dev

Після встановлення необхідних пакетів ви можете витягнути сценарій встановлення nvm зі сторінки проекту GitHub. Номер версії може бути іншим, але загалом ви можете завантажити та встановити його з таким синтаксисом:

curl https://raw.githubusercontent.com/creationix/nvm/v0.16.1/install.sh | sh

Це завантажить сценарій і запустить його. Він встановить програмне забезпечення в підкаталог домашнього каталогу за адресою ~/.nvm. Він також додасть необхідні рядки до вашого ~/.profileфайлу, щоб використовувати файл.

Щоб отримати доступ до функціональності nvm, вам потрібно буде вийти і ввійти знову, або ви можете отримати файл ~ / .profile, щоб ваш поточний сеанс знав про зміни:

source ~/.profile

Тепер, коли у вас встановлено nvm, ви можете встановити ізольовані версії Node.js.

Щоб дізнатися версії Node.js, які доступні для встановлення, можна ввести:

nvm ls-remote
. . .

v0.11.10
v0.11.11
v0.11.12
v0.11.13
v0.11.14

Як бачите, найновішою версією на момент написання цієї статті є v0.11.14. Ви можете встановити це, набравши:

nvm install 0.11.14

Зазвичай nvm переключається на останню встановлену версію. Ви можете прямо сказати nvm використовувати версію, яку ми щойно завантажили, набравши:

nvm use 0.11.14

Коли ви встановлюєте Node.js за допомогою nvm, виконуваний файл називається node. Ви можете побачити версію, яка зараз використовується оболонкою, набравши:

node -v

Повний посібник можна знайти тут


так, плюс один для менеджерів версій середовища. безумовно, набагато краща відповідь, ніж моя, незважаючи на те, що наш вибір є правильним способом зробити це. Я скажу, що nvm більше спрямований на інтерактивні робочі станції, а не на робочі сервери (але я не розумію, чому там його не можна було б використовувати) ... особисто я більше схильний використовувати образи докерів у виробництві.
airtonix


0

Здається, та сама проблема, коли я будую атом в Linux.

sudo apt-get install nodejs-dev

Виправте моє питання. Сподіваюся, що корисно для вас.


0

Якщо ви не хочете символічного посилання, ви можете зробити це. працює в ubuntu

#!/usr/local/bin/node --harmony

тег гармонії - для нової гармонії ECMAscript


0
  1. запустіть команду which nodeрезультатом буде щось

    /home/moh/.nvm/versions/node/v8.9.4/bin/node

  2. Скопіюйте шлях, який ви отримали вище, а потім виконайте команду на кроці 3.

  3. ln -s /home/moh/.nvm/versions/node/v8.9.4/bin/node /usr/bin/node


-1

Ви повинні викликати "nodejs", а не "node". Щоб перевірити це, введіть node -vна оболонці: якщо нічого не знайдено, спробуйте nodejs -v. Якщо відображається номер версії, тоді команда, яку ви повинні використовувати, є nodejsі ні node. Тому вам доведеться змінити дзвінок для перегляду у вашому сценарії з nodeна nodejs(як показано нижче): replace

#!/usr/bin/env node

з

#!/usr/bin/env nodejs

Можливо, вам також доведеться відкрити сценарій як суперкористувач.

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