Node forever / usr / bin / env : node : 해당 파일 또는 디렉토리 없음


108

다음을 사용하여 nodejs를 설치했습니다.

apt-get install nodejs

그런 다음 다음을 사용하여 npm을 설치했습니다.

apt-get install npm

그리고 다음을 사용하여 영원히 설치했습니다.

npm install forever -g

이제 내 프로젝트로 이동 /var/www/myproject

그리고 실행을 시도 forever start server.js

그러면 다음 메시지가 나타납니다.

/usr/bin/env: node: No such file or directory

아무도 무슨 일인지 말해 줄 수 있습니까?



1
이 버그가 발생하고 Node Version Manager를 사용하고 있습니다.
munchschair

답변:


270

편집 : 2018 년 12 월 현재, 이것은 더 이상 올바른 방법이 아닙니다. 다른 두 답변을 참조하십시오.

nodejs 실행 파일을 노드에 심볼릭 링크해야합니다. sudo ln -s "$(which nodejs)" /usr/local/bin/node그 이유는 "apt-get install node"를 수행 할 때 관련없는 패키지를 설치하므로 충돌하지 않도록 다른 이름을 선택해야하기 때문입니다.


4
$ (which nodejs) "는 무엇인가를 붙여 넣는 코드입니다. 복사하여 붙여 넣어야하는 코드입니까?
Marc Rasmussen

11
"$ (which nodejs)"는 nodejs 실행 파일의 경로를 가져옵니다. "$ ()"안에 무언가를 넣으면 실행되고 포함 된 명령에 삽입됩니다
chedabob

2
@chedabob 나는 같은 문제에 직면했지만 그 당시 명령을 실행할 때 아직 해결하지 못했습니다. ln : 심볼릭 링크를 만들지 못했습니다. '/ usr / bin / node': 파일이 있습니다
DASADIYA CHAITANYA

@ dasadiya-chaitanya이 경우 다음을 실행하여 기존 파일이 올바른 노드 실행 파일을 가리키는 지 확인하십시오. ls -lart / usr / bin / node. 심볼릭 링크가 올바른 바이너리를 가리 키지 않으면 삭제하십시오. 그리고 다음을 다시 실행하십시오. sudo ln -s "$ (which nodejs)"/ usr / bin / node
brownmamba

4
Debian 및 Ubuntu nodejs-legacy에는 심볼릭 링크를 제공 하는 패키지가 있습니다. 수동으로해서는 안됩니다. apt-get install nodejs-legacy문제를 해결하는 올바른 방법입니다. 아래 내 대답을 참조하십시오.
Clément Schreiner

45

받아 들여진 대답으로 문제가 해결되지만 적어도 Debian Jessie 및 forward 및 Ubuntu 14.4 및 forward 1 을 사용 하는 올바른 방법 은 nodejs-legacy 를 설치하는 것입니다 .

apt-get install nodejs-legacy

그 이유는 데비안은 이미 / usr / bin / node를 제공하는 패키지 (노드)를 가지고 있고 nodejs 노드 바이너리를 / usr / bin / nodejs에 설치해야하기 때문입니다.

nodejs - 기존 패키지는 / usr / 빈 / nodejs를 / usr / 빈 / 노드 (과와의 충돌에서 심볼릭 링크를 제공하는 노드 패키지).

출처 : [CTTE # 614907] node / nodejs 충돌Debian 버그 # 614907 해결 : node : node.js 인터프리터와 이름 충돌


이것은 데비안 / 우분투 +1에서 올바른 방법이며, OS에 익숙하지 않은 사람들에게 좋은 맥락입니다.
Ligemer

18

최신 노드 버전으로 업데이트하는 것이 좋습니다.

  1. sudo npm 캐시 정리 -f
  2. sudo npm 설치 -gn
  3. sudo n 안정
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.