programing

NodeJs: /usr/bin/env: 노드를 설치할 수 없습니다.해당 파일 또는 디렉터리가 없습니다.

showcode 2023. 5. 20. 11:02
반응형

NodeJs: /usr/bin/env: 노드를 설치할 수 없습니다.해당 파일 또는 디렉터리가 없습니다.

나는 GruntJs를 사용하기 위해 Ubuntu 14.04에 nodeJs를 설치하려고 합니다.

Ubuntu에 대한 다양한 방법(문제?)을 읽었기 때문에 설치하기 위해 다음과 같이 했습니다.

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

어떻게 해야 하나?

심볼릭 링크를 사용하면 다음과 같은 문제가 해결됩니다.

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

(보도카이저의 답변에 감사드리며 +1표를 드립니다.)

노드 버전에 문제가 없습니다.대신, 그것은 노드의 방식입니다.JS는 기본적으로 Ubuntu에 설치됩니다.에서 Node 는 Ubuntu를 .nodejs somethign.jsnode something.js

은 그서단말호서애출이션은름이케플리래된에기▁so▁called은이ation▁name름▁applic▁is션▁the▁terminal그▁in이.nodejs그리고 아닌node에 단순히 를 이이수신명단전위심달이다필로 합니다.nodenodejs.

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

을 .nvm노드 버전 관리자, 다음 명령을 사용하여 심볼 링크를 만듭니다.

sudo ln -s "$(which node)" /usr/bin/node
sudo ln -s "$(which npm)" /usr/bin/npm
  • 첫 번째 명령은 다음에 대한 심볼 링크를 생성합니다.node
  • 두 번째 명령은 다음에 대한 심볼 링크를 생성합니다.npm

최신 노드 버전을 업그레이드해야 할 것 같습니다.

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

만약 당신이 nodejs 명령을 사용하여 unbuntu 터미널의 노드에 액세스할 수 있다면, 이 문제는 -nodejs와 노드의 심볼릭 링크를 만드는 것을 사용하여 간단히 해결할 수 있습니다.

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

그리고 이것이 문제를 해결할 수도 있습니다.

저의 경우 nodejs-legacy를 설치하여 문제를 해결했습니다.

sudo apt-get install nodejs-legacy

그냥 해요

$ sudo apt-get install nodejs-legacy

그리고 그것은 작동하기 시작할 것입니다.

설치되어 있는 nodejs로 하십시오.which nodejs다른 패키지를 설치하지 않으셔도 됩니다.

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

저는 이것이 종종 잘못된 이름 지정 오류라는 것을 발견했습니다. 패키지 관리자에서 설치하면 빈이 nodejs라고 불릴 수 있으므로 그렇게 심볼릭하면 됩니다.

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

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

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

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

위의 명령은 노드의 위치를 가져오고 링크를 만듭니다.

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

~$ gulp

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

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

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

이것은 나에게 효과가 있습니다.

다음 명령에 따라 문제를 해결합니다.

터미널에서:

  1. 전체 NPM 캐시를 정리합니다.

    $ sudo npm cache clean -f
    
  2. sudo npm install -g n
    
  3. Node.js의 최신 안정 버전을 설치합니다.

    sudo n stable
    

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

node -v

이에 대한 두 가지 솔루션이 있습니다.

"/usr/local/bin"을 포함하도록 PATH 변수를 설정합니다.

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

이미 PATH에 있는 "/usr/bin"에 대한 심볼 링크 생성

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

도움이 되길 바랍니다.

snap을 사용하여 설치된 경우,

sudo ln -sfn /snap/node/current/bin/node /usr/bin/node

하는 동안에ln -s가장 쉬운 해결책은 다음과 같습니다.

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

시이조표시다니됩이언ing를 설치할 때 이 이 나옵니다sudo apt-get install nodejs.

알려진 다른 도구(무엇을 하는지는 모르겠습니다).Ubuntu 저장소에는 알려져 있지만 16.04에서는 기본적으로 설치되지 않습니다.)이 네임스페이스를 차지합니다.

우분투가 이 '깨끗하게' 해결하는 방법에 대한 조언을 제공했다면 좋았을 것입니다. 그렇지 않으면 패키지가 할 수 있는 일을 손으로 하지 않았다면 말입니다. (충돌은 충돌로 남아 있습니다...)if+발생 시기)

sudo PATH="$PATH:/usr/local/bin" npm install -g <package-name>

나의 경우 링크가 아래와 같이 작동하지 않았습니다.

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

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

-#!/usr/bin/env 노드

+#!/usr/bin/envnodejs

7년 전에 문제가 발생했고 여전히 관련이 있습니다.

여기 제 문제가 있습니다. 비슷하지만 완전히 같지는 않습니다.

Jenkins에서 이 명령을 호출할 때

ssh root@xxx.xxx.xxx.xxx "pm2 앱 다시 시작"

그런 다음 오류 /usr/bin/env 노드 해당 파일 또는 디렉터리 없음

그렇다면 여기 내 해결책이 있습니다.

xxx.xxx.xxx 서버에 있습니다.xxx

/usr/bin/node를 다시 연결합니다.

첫 번째: "rm -f /usr/bin/node" 명령을 사용하여 기존 시스템을 제거합니다.

두 번째: "ln -s /root/.nvm/versions/node/v14.17.4/bin/node/usr/bin/node" 명령을 사용하여 새 링크를 만듭니다.

설치에 따라 다른 노드 버전입니다.도움이 되길.

이 오류의 핵심은 노드의 링크입니다.

명령 또는 파일 이름을 바꾸기만 하면 됩니다.ln -s /usr/bin/nodejs /usr/bin/node이 명령에 의하여

저는 아직 수락된 답변이 효과가 없었습니다.저는 여기서 제안한 대로 시작했습니다.

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

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

/usr/local/lib/node_message/npm/bin/npm-cli.js:85는 알림자 = required-update-notifier'({pkg}) ^^^

구문 오류: 모듈에서 exports.runInThisContext(vm.js:53:16)에서 블록 범위 선언(let, const, function, class)이 strict 모드 외부에서 아직 지원되지 않습니다._compile (module.js:374:25) at Object.모듈._확장..모듈.load(모듈.js:417:10)에서 js(모듈.js:344:32)로 설정됩니다.함수에서 Module._load(module.js:301:12).시작 시(node.js:136:18) node.js:966:3에서 Module.runMain(module.js:442:10)

해결책은 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로 변경됨

노드를 설치한 사용자용nvm을 사용하는 JS.

나처럼 일부 버전을 설치, 제거 및 재설치한 경우 다음 작업만 수행하면 됩니다.

nvm v14.21.1 사용

또는 사용 중인 버전이 무엇이든 상관없습니다.

에 대한 링크가 다시 생성합니다.node그리고.npm'정리' 중에 손실된 명령:D

sudo nautilus 

파일 관리자를 관리자로 엽니다./usr/bin으로 이동하여 노드를 검색합니다.링크가 끊겼을 수 있으니 삭제하세요.패키지를 설치하지 마십시오.효과가 있을지도 몰라요 - 나에게 효과가 있었습니다.

언급URL : https://stackoverflow.com/questions/26320901/cannot-install-nodejs-usr-bin-env-node-no-such-file-or-directory

반응형