NodeJ를 설치할 수 없습니다 : / usr / bin / env : node : 해당 파일 또는 디렉토리가 없습니다


302

GruntJ를 사용하기 위해 nodebuns를 Ubuntu 14.04에 설치하려고합니다.

우분투 에 대해 다른 방법 으로 문제를 읽었 으므로 ( 문제? ) 설치하기 위해 수행 한 작업은 다음과 같습니다.

sudo apt-get install npm

sudo npm install -g grunt-cli

그 후 grunt를 입력하면 오류가 발생합니다.

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

그래서 시도했습니다.

curl -sL https://deb.nodesource.com/setup | sudo bash -

sudo apt-get install -y nodejs

sudo apt-get update

그리고 다시 시도하고 여전히 오류가 발생하여 시도했습니다.

sudo add-apt-repository https://launchpad.net/~chris-lea/+archive/node.js/

sudo apt-get install -y nodejs

이 메시지가 나타납니다.

nodejs is already the newest version.
0 to upgrade, 0 to newly install, 0 to remove and 3 not to upgrade.

나는 경우에 대비하여 정리를 시도했다.

sudo apt-get autoremove

그러나 아니, 오류는 여전히 존재합니다 : grunt를 입력해도 여전히 얻을 수 있습니다. /usr/bin/env: node: No such file or directory

어떻게해야합니까?

답변:


793

심볼릭 링크를 수행하면 문제가 해결됩니다.

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

( 보도 카이저의 답변에 내 감사와 +1 투표 ).


97
sudo apt-get install nodejs-legacy이 링크도 생성합니다. packages.debian.org/sid/nodejs-legacy
anatoly techtonik

1
symlink는 문제를 해결하고 많은 개발 시간을 절약했습니다. 감사!
Farzad YZ

이 수정은 생명의 은인입니다. 특히, 여기에서 수정 권한 가이드를 따르는 경우 docs.npmjs.com/getting-started/fixing-npm-permissions
Josh Frankel

감사합니다! Google 클라우드 Linux에서 노드 앱을 설정하려고 오후 시간을 절약했습니다.
jovan

1
which node노드의 올바른 경로를 얻을 수 있도록 사용해야 합니다. 따라서 명령은 다음과 같습니다ln -s "$(which node)" /usr/bin/node
technogeek1995

117

노드 버전에 문제가 없습니다. 대신 우분투에서 NodeJS가 기본적으로 설치되는 방식입니다. 우분투에서 노드 응용 프로그램을 실행할 때 nodejs somethign.js대신에 실행해야합니다node something.js

그래서 터미널에서 호출 응용 프로그램 이름입니다 nodejs하지 node. 로받은 단순히 앞으로 모든 명령에 대한 심볼릭 링크에 대한 필요가 이유입니다 node에가 nodejs.

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

6
"ln : 기호 링크 '/ usr / bin / node'를 만들지 못했습니다"오류가 발생하면 sudo를 사용하여이 명령을 실행해야합니다.
Suraj Dubey

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

54

최신 노드 버전을 업그레이드해야한다고 생각합니다.

sudo npm cache clean -f
sudo npm install -g n
sudo n stable

1
그냥 팁; 코드 줄을 4 칸 들여 쓰기;) 또한 nNode.JS와 관련된 명령이 아닙니다.
Qix-MONICA가


나를 위해 문제를 해결
criticerz

나는 복사 laravel에서 프로젝트를 windows기계 ubuntu 16.04laravel mix함께 문제가 있었다 npm run watch및이 솔루션은 나를 위해 일한 지금 문제가 사라

29

nodejs 명령을 사용하여 우분투 터미널에서 노드에 액세스 할 수 있다면이 문제는 간단히 nodejs 및 node

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

이 문제를 해결할 수 있습니다




9

패키지 관리자에서 설치하는 경우 bin이 nodejs라고 할 수 있으므로 심볼릭 링크 만하면됩니다.

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

1
부정적인 피드백을 추가하는 대신 의견에서 잘못된 점을 알려 주시면 도와 드리겠습니다. 특히 심볼릭 링크를 만드는 데 아무런 문제가 없으므로 일을 더 잘 관리하는 데 도움이됩니다.
Ahmad Awais

1
나는 내 자신을 위해이 접근법을 선호합니다. 깨끗합니다.
Muhammad Gelbana

8

nodejs가 이미 설치되어 which nodejs있고 (로 확인 ) 다른 패키지를 설치하지 않으려는 경우 루트로 할 수 있습니다.

update-alternatives --install /usr/bin/node node /usr/bin/nodejs 99

이것이 올바른 데비안 방식입니다.
Tonin

6

gulp를 사용할 때이 오류가 발생했습니다.

~$ gulp

/ usr / bin / env : 'node': 해당 파일 또는 디렉토리가 없습니다.

이것은 / usr / bin 디렉토리에 모든 권한이 있음을 명심해야하는 다음 명령을 실행하여 제거되었습니다.

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

이것은 나를 위해 작동합니다 ..


5

노드를 설치 한 방법에 따라 대부분의 경우 / usr / bin /에 없을 수도 있습니다. 제 경우에는 nvm을 사용하여 설치했기 때문에 노드가 ./nvm/versions에있었습니다.

이 명령을 사용 which node하여 경로를 찾았지만 작업을 쉽게하기 위해이 명령을 실행할 수 있습니다.

nodepath=$(which node); sudo ln -s $nodepath /usr/bin/node

위의 명령은 노드의 위치를 ​​가져 와서 링크를 만듭니다.


5

이에 대한 두 가지 해결책이 있습니다.

a) "/ usr / local / bin"을 포함하도록 PATH 변수를 설정하십시오.

export PATH="$PATH:/usr/local/bin"

b) 이미 PATH에있는 "/ usr / bin"에 대한 심볼릭 링크를 만듭니다

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

도움이 되길 바랍니다.


4

ln -s가장 쉬운 해결 방법 이지만 설명은 다음과 같습니다.

다른 패키지와 충돌하기 때문에 Ubuntu 저장소의 실행 파일을 node 대신 nodejs라고합니다. 소프트웨어를 실행할 때이 점을 명심하십시오.

이 조언은 설치할 때 나타납니다 sudo apt-get install nodejs.

따라서 다른 알려진 도구 (어떻게하는지 모르겠습니다. 우분투 리포지토리로 알려져 있지만 기본적으로 16.04에 설치되어 있지 않습니다)는 해당 네임 스페이스를 차지합니다.

우분투가 패키지를 다른 방법으로 수작업으로하지 않으면이 문제를 '깨끗하게'고치는 방법에 대한 조언을 제공한다면 좋을 것입니다. (충돌이 발생하면 충돌이 계속 발생합니다.


1
@ tom-hale 답변이 우분투 방법입니다. 대안을 사용하여 올바른 노드를 지정하십시오
kervin


2

내 경우 링크를 들어 않았다 NOT 작업을 다음과 같이

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

그러나 / usr / local / bin / lessc를 루트로 열고 첫 번째 줄을 node에서 nodejs로 변경할 수 있습니다.

-#! / usr / bin / env 노드

+ #! / usr / bin / env nodejs


2

다음 명령을 따라 문제를 해결하십시오.

터미널에서 :

  1. 전체 NPM 캐시를 정리하십시오.

    $ sudo npm cache clean -f
  2. sudo npm install -g n
  3. 최신 안정 버전의 Node.js를 설치하십시오.

    sudo n stable

이제 최신 버전의 Node.js가 설치되었습니다. 다음을 사용하여 버전을 확인하십시오.

node -v


0

나를 위해 받아 들여진 대답은 아직 효과가 없었습니다. 여기에 제안 된대로 시작했습니다.

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

이 작업을 수행 한 후 다음 오류가 발생했습니다.

/usr/local/lib/node_modules/npm/bin/npm-cli.js:85 let notifier = require ( 'update-notifier') ({pkg}) ^^^

구문 오류 : Object의 Module._compile (module.js : 374 : 25)에서 exports.runInThisContext (vm.js : 53 : 16)에서 엄격 모드 외부에서 블록 범위 선언 (let, const, function, class)이 아직 지원되지 않습니다. Function.Module.runMain의 Module.load (module.js : 344 : 32)의 Function.Module._load (module.js : 301 : 12)의 Module._extensions..js (module.js : 417 : 10) ( module.js : 442 : 10) 시작시 (node.js : 136 : 18) node.js : 966 : 3에서

해결책은 https://nodejs.org/en/download/ 에서 최신 버전의 노드를 다운로드하는 것 입니다.

그런 다음 :

sudo tar -xf node-v10.15.0-linux-x64.tar.xz --directory /usr/local --strip-components 1

이제 업데이트가 성공적으로 완료되었습니다. npm -v3.2.1에서 6.4.1로 변경 되었습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.