browserify 오류 / usr / bin / env : 노드 : 해당 파일 또는 디렉토리가 없습니다.


85

apt-get install 및 모든 종속성을 통해 노드 js 및 npm을 설치 한 다음 browserify를 설치했습니다.

npm install browserify -g

프로세스를 거치고 올바르게 설치된 것처럼 보이지만이 연습에 따라 간단한 번들을 시도하면

오류가 발생합니다.

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

여기에 이미지 설명 입력


흠 당신은 노드 실행 파일이 / usr / bin 또는 / usb / bin / env에 있는지 확인해야합니다. 적어도 이것은 운영에 특정한 문제입니다. browserify local을 설치하여이 문제를 해결할 수 있습니다.
bodokaiser 2014 년

내 browserfy 실행 파일은 / usr / local / bin /에 있지만 경로가 엉망인 다른 것을 호출하고 있습니까?
Eduardo Dennis

3
아 당신은 우분투의 노드에 nodejs를 심볼릭 링크해야합니다. 우분투는 노드를 nodejs로 설치 한 다음 "ln -s / usr / bin / nodejs / usr / bin / node"와 같은 작업을 수행하여 시스템이 노드로도 찾도록해야합니다
bodokaiser 2014 년

1
그게 해결되었습니다 :-PI가 지난 한 시간 동안 내 머리를 부수고 있습니다. 수락하기 위해 답변 형식을 입력 해 주시겠습니까?
Eduardo Dennis

1
이 일을 기뻐 그것이 정말 내가 처음 : 주석 왜이 문제 이잖아 경우 확실하지 않았다
bodokaiser

답변:


246

일부 Linux 배포판은 nodejs를 "node"실행 파일이 아니라 "nodejs"로 설치합니다.

이 경우 "노드"바이너리 다음에 많은 패키지가 프로그래밍되므로 "노드"에 수동으로 링크해야합니다. 유사한 일이 "python"에 연결되지 않은 "python2"에서도 발생합니다.

이 경우 쉬운 심볼릭 링크를 할 수 있습니다. 패키지 바이너리를 설치하는 리눅스 배포판의 /usr/bin경우

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

5
ax24-node (nodejs와 관련 없음) 이기 때문에 Ubuntu 14.04의 솔루션 이 아닙니다/usb/sbin/node . 심볼릭 링크 /usr/bin/node는 작동하지 않을 것 /usr/sbin/node입니다.$PATH
Gareth

8
이 문제를 해결하는 올바른 방법은를 사용하는 것 update-alternatives입니다. 여기에 내 대답을 참조 stackoverflow.com/a/24592328/454615
airtonix

1
실제로 이것에 대해 더 많이 생각하고 ... 이와 같이 바이너리를 심볼릭 링크하는 것은 시스템을 손상시키려는 경우 채택하는 좋은 습관입니다.
airtonix 2014 년

네, 미묘한 방법으로 그것을 깨뜨리는 것을 알아 냈습니다. 더 나은 해결책을 찾았습니까?
Eduardo Dennis

1
@EduardoDennis 예, update-alternatives. 이러한 정확한 상황을 위해 존재합니다.
airtonix

52

새로운 답변 :

  1. 시스템 패키지 관리자 (dnf, apt-get 등)를 통해 설치 한 모든 nodejs 패키지를 제거하고 모든 업그레이드를 다시 생성 한 바보 같은 심볼릭 링크를 삭제합니다 (웃음).
  2. NVM 설치,
  3. nvm을 사용하여 nodejs 설치 : nvm install 6

이전 답변 :

심볼릭 링크를 만들거나 다른 노드 패키지를 설치하는 것에 대한 이야기는 허위이며 지속 가능하지 않습니다.

이 문제를 해결하는 올바른 방법은 다음과 같습니다.

  1. 이미 가지고있는 것처럼 apt-get으로 nodejs 패키지를 간단히 설치하십시오.
  2. update-alternativesnodejs 바이너리가 책임이 있음을 나타내는 데 사용#!/usr/bin/env node

그렇게 :

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

이것은 이제 패키지 업그레이드, dist-upgrade 등을 통해 지속 가능합니다.


이건 내 문제에 대한 해결책입니다 stackoverflow.com/questions/26155795/...
아론 카멜

감사합니다, 훌륭한 솔루션입니다. 심볼릭 링크를 사용하는 트릭은 인터넷에서 가장 많이 반복되지만 저에게는 효과가 없었습니다.
Emilia Tyl

이제 실제 정답은 Linux에서 NVM을 사용하고 Windows에서 Nodist를 사용하는 것입니다.
airtonix

35

을 실행 apt-get install nodejs-legacy합니다.

특정 Linux 배포판은 node.js 바이너리 이름을 변경하여 많은 node.js 패키지와 호환되지 않습니다. 패키지 nodejs-legacy는이를 해결하기위한 심볼릭 링크를 제공합니다.


2
/usb/sbin/nodeax24-node (nodejs와 무관) 이기 때문에 Ubuntu 14.04의 솔루션입니다 . 단지 상징적 인 연결이 /usr/bin/node때문에 작동하지 않습니다 /usr/sbin/node에서 먼저$PATH
가레스

나를 도와 주었다. 감사!
Lapidus 2014-06-18

apt-get은 nodejs-legacy를 설치합니다. Windows 사용자의 경우 'apt-get'은 내부 또는 외부 명령, 작동 가능한 프로그램 또는 배치 파일로 인식되지 않습니다.
Swift

7

NVM 또는 Nodejs 버전 관리자를 사용하여 Nodejs를 설치할 수도 있습니다 . 버전 관리자를 사용 하면 많은 이점 이 있습니다. 그중 하나는이 문제에 대해 걱정할 필요가 없다는 것입니다.


명령:


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

필수 패키지가 설치되면 프로젝트의 GitHub 페이지에서 nvm 설치 스크립트를 풀다운 할 수 있습니다. 버전 번호는 다를 수 있지만 일반적으로 다음 구문으로 다운로드하여 설치할 수 있습니다.

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

nvm을 사용하여 Node.js를 설치하면 실행 파일을 node라고합니다. 다음을 입력하여 현재 쉘에서 사용중인 버전을 확인할 수 있습니다.

node -v

Comeplete 튜토리얼은 여기 에서 찾을 수 있습니다 .


예, 환경 버전 관리자를위한 것입니다. 우리 둘 다이 작업을 수행하는 올바른 방법 임에도 불구하고 확실히 저보다 훨씬 더 나은 대답입니다. 나는 nvm이 프로덕션 서버가 아닌 대화 형 워크 스테이션을 더 겨냥한다고 말할 것입니다 (하지만 왜 거기에서 사용할 수 없었는지 알 수 없습니다) ... 개인적으로 저는 프로덕션에서 도커 이미지를 사용하는 경향이 있습니다.
airtonix


0

Linux에서 atom을 빌드 할 때도 동일한 문제로 보입니다.

sudo apt-get install nodejs-dev

내 질문을 수정하십시오.


0

심볼릭 링크를 원하지 않으면 이렇게 할 수 있습니다. 우분투에서 작동

#!/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

"node"가 아니라 "nodejs"를 호출해야합니다. 이를 확인하려면 node -v쉘에 입력 하십시오. 아무것도 발견되지 않으면 try nodejs -v. 그 표시하는 경우 버전 번호는 다음 사용되어야하는 명령은 nodejs하지 node. 따라서에서 스크립트에 browserify에 대한 호출 변경해야 node하는을 nodejs(아래 그림 참조) : 교체

#!/usr/bin/env node

#!/usr/bin/env nodejs

수퍼 유저로 스크립트를 열어야 할 수도 있습니다.

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