우분투 12.04의 nodejs와 node


363

여기에 제공된 지침에서 우분투에 nodejs를 설치했습니다.

node --version터미널에 쓸 때 나는 이것을 본다 :
-bash: /usr/sbin/node: No such file or directory

/usr/sbin/그래도 디렉토리 에서 노드를 볼 수 있습니다 .

작문 npm --version쇼 1.3.5
작문 nodejs --version쇼v0.10.15

또한 /usr/bin/디렉토리 에서 노드를 볼 수 있습니다 .

어떻게 node일을합니까?

또한 bash 대신 zsh 를 사용하면 node명령이 작동합니다.


1
"/ usr / bin /에 node"가 표시되면 ls -l /usr/bin/node?
— randunel

1
@randunel이 결과를 얻었습니다lrwxrwxrwx 1 root root 22 Jan 1 2013 /usr/bin/node -> /etc/alternatives/node
— Jatin

쉘 rc를 변경 했습니까?
— randunel

이것은 편집 후 쉘 문제처럼 보입니다. export | grep PATH사용하지 않을 때 출력되는 것은 무엇 zsh입니까? ( /usr/bin다른 것들 중에서 인쇄해야 함 )
— randunel

1
해결책 + 여기에 설명 : stackoverflow.com/questions/21168141/…
— throbi

답변:


599

symlink를 수동으로 작성해야합니다 /usr/bin/node. bash 호환 쉘의 단축키 :

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

또는 비표준 쉘을 사용하는 경우 찾은 경로를 하드 코딩하십시오 which nodejs.

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

나중에 편집

귀하가 게시 한 링크에서이 설명을 찾았습니다

노드 패키지 (Amateur Packet Radio Node Program)와 이름이 충돌하고 nodejs 바이너리의 이름이 node에서 nodejs로 변경되었습니다. / usr / bin / node를 / usr / bin / nodejs에 심볼릭 링크하거나 아마추어 패킷 라디오 노드 프로그램을 제거하여 충돌을 피할 수 있습니다.

나중에 편집

내가 이것에 대답 한 지 오래되었습니다. 여기에 게시 한 솔루션이 여러 번 효과가 있었지만 사용자는 주석 내에 몇 가지 솔루션을 더보고했습니다.

@ user229115에서

sudo update-alternatives --install /usr/bin/node node /usr/bin/nodejs 10

AskUbuntu (사용자 왼쪽)

sudo apt-get --purge remove node
sudo apt-get --purge remove nodejs
sudo apt-get install nodejs

괜찮아! 비록을 사용 zsh하면 node명령이 작동합니다.
— Jatin

1
또한 Amateur Packet Radio Node 프로그램을 어떻게 제거합니까? 나는 시도 sudo apt-get remove node했지만 그것은 말한다Package node is not installed, so not removed
— Jatin

주석을 제거한 후에는 노드 패키지 문제가 아니라 쉘 문제처럼 보입니다.
— randunel

@randunel의 대답은 효과가 없었기 때문에 저에게 효과 /usr/bin/env node가 없었습니다. @BennyMcBenBen의 솔루션이 작동했습니다
— francoisrv

2
@Tino의 답변 이 옳습니다 nodejs-legacy. 패키지 설명을 참조하십시오 . @BennyMcBenBen로 연결된 답변도 비슷한 지침으로 업데이트되었습니다.
— tricasse

88

나는 이것이 생각합니다 :

sudo 업데이트 대안 --install / usr / bin / node 노드 / usr / bin / nodejs 10

데비안 대안 사용하기.


3
이것은 / usr / bin / 폴더를 수동으로 변경하지 않고 대체 명령에 인프라를 사용하는 허용 된 답변보다 더 나은 옵션 인 것 같습니다
— Dominik Fretz

시도하지는 않았지만 update-alternative문서를 보았습니다 . 그것이 실제로 작동한다면, 그것은 더 나은 해결책입니다 :)
— randunel

3
이 작업에 대해 더 구체적으로 설명 할 수 있습니까?
— bcorso 2016 년

트윗 담아 가기 최종 결과는 데비안 특정 명령과 POSIX 호환 명령을 사용하는 것과 정확히 동일합니다. (당신은 할 수있었습니다 update-alternatives --install /usr/local/bin/fribjazt node /usr/bin/nodejs 10.) 각자 자신에게, 그러나 나는 평야를 선호합니다 ln.
— kojiro

2
나는 source ~/.bashrc이것을 적용해야했다
— iNulty

64

분명히 해결책은 우분투 버전마다 다릅니다. 다음은 우분투 13.10에서 나를 위해 일했습니다.

sudo apt-get install nodejs-legacy

HTH

편집 : 경험 법칙 :

바이너리를 설치 nodejs했지만 누락 된 경우 /usr/bin/nodeinstall도 설치하십시오 nodejs-legacy. 이것은 누락 된 소프트 링크를 만듭니다.

내 테스트에 따르면 Ubuntu 17.10 이상은 이미 설치된 /usr/bin/node후 호환성 소프트 링크가 이미 nodejs설치되어 있으므로 nodejs-legacy더 이상 필요하지 않으므로이 릴리스에서 누락되었습니다.


nodejs-legacy가 더 이상 유지되지 않는 것 같습니다. 최신 빌드가 2013
— francoisrv

8
nodejs-legacy많은 유지 보수가 필요하지 않습니다. 그것은 sudo ln -s nodejs /usr/bin/node적어도 LTS 14.04
— Tino

4
Ubuntu 14.04에서 nodejs와 nodejs-legacy는 동일한 버전의 Node (0.10.25)를 설치합니다. @Tino에 +1
— Mark E. Haase

데비안 제시에서도 작동합니다. 이것이 의미하는 방식이므로 이것이 정답입니다. 아마추어 라디오 패키지를 사용하는 사람 만이 작업을 수행해서는 안됩니다. 왜 그들이 크롬-버스와 같이 라디오 패키지의 이름을 바꾸지 않았는지 궁금합니다.
— Jérôme

이로 인해 시스템에 2 개의 노드 인스턴스가 생겨 더 이상 유지 보수되지 않습니다. 대신 nodejs에 링크하는 것이 좋습니다.
— PodTech.io

30

우분투 14.04에서도 같은 문제가 있습니다.

"nodejs"를 설치했는데 작동하지만 "nodejs"명령을 사용하는 경우에만 작동합니다. "노드"를 사용하려고하면 아무 일도 일어나지 않습니다.

다음 방법으로이 문제를 해결했습니다.

  1. nodejs-legacy 설치

    sudo apt-get 설치 nodejs-legacy

그 후 명령 줄에 "node"를 입력하면 "/ usr / sbin / node : No such file or directory"라는 오류 메시지가 나타납니다.

  1. 둘째, 내가 한 일은 "nodejs"의 심볼릭 링크입니다.

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

4
시스템에 이상한 것이 있습니다. node가정되어에 설치 될 /usr/bin/하지 /usr/sbin/. 마치 nodehamradio 에서 우분투 패키지를 이전에 설치 한 것처럼 보았고 ( packages.ubuntu.com/trusty/all/node/filelist 참조 ) hash -r쉘 수준에서 실행 하는 것을 잊어 버렸습니다 . 쉘이 여전히 잘못된 경로를 기억하고 있습니다. 두 번째도 ln그 문제를 해결했지만 그 껍질을 떠난 후에는 더 이상 필요하지 않습니다.
— 티노

BTW, 심지어 오답 모두 매우 유사한 이름의 모든 문제로 인해 세 가지 패키지 설명 할 좋은 : node( /usr/sbin/node, 완전히 다른 무언가를) nodejs( /usr/bin/nodejs)와 nodejs-legacy( /usr/bin/node패키지에 따라 다릅니다 nodejs).
— 티노

이것은 나에게도 일어났다. 얼마 전에 소스에서 노드를 설치했습니다. node -v => 0.10.2동안 nodejs -v => 5.5.0. 명령 실행은 which node항상이 로컬 설치를 가리 켰습니다. 결국, 나는 unset NODE_PATH그것을 고치기 위해 로컬 설치를 가리 켰습니다. 이 후, node -v => 5.5.0및 npm install 노드 => 5.0에 따라 패키지에 대한 작업을 시작했다.
— CHsurfer

11

이것은 나에게도 일어났다.

node -v => 0.10.2
nodejs -v => 5.5.0

문제는 얼마 전에 소스에서 노드를 설치했다는 것입니다. 달리는

which node

항상이 로컬 설치를 가리 켰습니다. 또한,

echo NODE_PATH

로컬 설치를 가리 켰습니다.

소스 설치로 디렉토리를 삭제해도 도움이되지 않습니다. 방금 node 명령을 중단했습니다. 결국 NODE_PATH 환경 변수를 설정 해제하고 nodejs를 제거했다가 다시 설치하면 문제가 해결되었습니다.

unset NODE_PATH
sudo apt-get --purge remove nodejs
sudo apt-get install nodejs

금후,

node -v => 5.5.0

npm 설치는 Node => 5.0에 따라 패키지에서 작동하기 시작했습니다.


이것은 나를 위해 일했습니다. 너무 나쁘다 나는 그것을 발견하기 전에 한 시간 동안 엉망이었다.
— 더스틴 프레이 커

11

노드 버전 관리자 (nvm)

여러 nodejs 버전을 설치하고 쉽게 전환하려면 Node Version Manger 사용하는 것이 좋습니다 . 또한 명명 문제를 해결합니다 ( nodevs nodejs)

아주 간단합니다 :

nodejs 버전을 설치하십시오.

$ nvm install 4.4

이제 이미 설치된 버전 외에 nodejs 4.4가 있으며 node명령을 사용 하여 새로 설치된 버전에 도달 할 수 있습니다 .

$ node -v    // The new version added by nvm.
v4.4.5
$ nodejs -v  // The OS version is untouched and still available.
v0.10.25

더 많은 nodejs 버전을 설치하고 쉽게 전환 할 수 있습니다.

$ nvm install 6.2
$ nvm use 6.2
Now using node v6.2.1 (npm v3.9.3)
$ node -v
v6.2.1
$ nvm use 4.4
Now using node v4.4.5 (npm v2.15.5)

2
의 제 문제, 덕분에 많이 해결 된 것으로, 나는 몇 가지 유용한 명령 발견 nvm에 어떻게 우분투 14.04 서버에 Node.js를 설치하려면
— 후이 응우 엔

1
이것은 나를 위해 일했습니다. 또한 여기에서 사용 가능한 안내서 : digitalocean.com/community/tutorials/…
— Koen Cornelis

10

나는이 모든 것을 처음 사용하지만 간단한 별칭이 작동했습니다.

alias node='env NODE_NO_READLINE=1 rlwrap nodejs'

적어도 bash에서 직접 실행하고 .js 파일을 실행하는 경우.


없이 일했습니다 rlwrap. 감사!
— Shurik

감사합니다 @ 필, 당신은 굉장합니다!
— Yusril Herlian Syah

9

nodejs 사이트 의 공식 지침을 사용하는 방법은 무엇입니까 ?

v7의 경우 :

curl -sL https://deb.nodesource.com/setup_7.x | sudo -E bash -
sudo apt-get install -y nodejs

v6의 경우 :

curl -sL https://deb.nodesource.com/setup_6.x | sudo -E bash -
sudo apt-get install -y nodejs

v4의 경우 :

curl -sL https://deb.nodesource.com/setup_4.x | sudo -E bash -
sudo apt-get install -y nodejs

Windows bash (Linux-14.04의 하위 시스템을 통해)와 raspbian (ARM Debian 기반)에서 이것을 테스트했습니다. sudo apt-get install -y nodejs설정 스크립트를 먼저 실행 하지 않고 실행하면 노드 0.10이 발생합니다.

빌드가 필요한 기본 npm 모듈을 설치하려는 경우 다음을 실행하십시오.

sudo apt install -y build-essential

참고 : 모든 아키텍처에서 데비안 기반 배포판에 권장되는 경로입니다.


7

@randunel의 정답에 추가 (아직 의견을 말할 수 없습니다) :

또한 / usr / local / bin / node를 / usr / bin / nodejs에 symlink해야했습니다.

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

분명히 이것은 / usr / bin / node 명령을 무시하고있었습니다.

그것이 어떻게 설정되었는지는 모르지만 위의 내용이 왜 효과가 없는지 알아내는 것이 고통 이었기 때문에 다른 사람에게 도움이되기를 바랍니다.


7

늦은 답변이지만 최신 정보는 ...

node github installation readme 의 권장 메소드를 사용하여 node.js를 설치하는 경우 오래된 apt-get repo에서 설치하는 대신 nodesource 블로그 기사 의 지시 사항을 따르는 것이 좋습니다. node.js 는 다음 명령을 사용하여 실행해야합니다 node. nodejs새로운 심볼릭 링크를 만들 필요없이 명령 뿐만 아니라

이 기사의 방법은 다음과 같습니다.

# Note the new setup script name for Node.js v0.12
curl -sL https://deb.nodesource.com/setup_0.12 | sudo bash -

# Then install with:
sudo apt-get install -y nodejs

이것은 v0.12 용이며 먼 미래에는 구식이 될 것입니다.

또한 나와 같은 회사 프록시 뒤에있는 경우 sudo 명령에 -E 옵션을 추가하여 프록시에 필요한 env 변수를 유지하려고합니다.

curl -sL https://deb.nodesource.com/setup_0.12 | sudo -E bash -



4

Ubuntu 인스턴스를 실행하는 AWS EC2 인스턴스 (Ubuntu 16.x에서 테스트)에있는 경우 다음 단계가 도움이 될 수 있습니다.

    sudo apt-get 업데이트
    sudo apt-get --purge remove node -y
    sudo apt-get --purge remove nodejs -y
    sudo apt-get-레거시 노드 제거 제거 -y
    sudo rm / usr / bin / node
    curl -sL https://deb.nodesource.com/setup_6.x | sudo bash-
    sudo apt-get 설치 nodejs -y
    노드 -v

모든 것이 정확하다면 마지막 명령은 다음과 같은 출력을 가져야합니다 : v6.xx

그렇지 않으면 다음을 실행하십시오.

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

잘하면 이것이 도움이 될 것입니다. 그것은 나를 마술처럼 도와주었습니다.


3

sudo ln -s / usr / bin / nodejs / usr / bin / node sudo npm install -g phantomjs-prebuilt 다음과 같은 문제가 있습니다.

부드럽게 갔다


2

nodejs를 설치하는 가장 좋은 방법은 NVM (Node Version Manager)을 사용하는 것입니다.

이전 버전 삭제 :

$ sudo apt-get 퍼지 노드
$ sudo apt 자동 제거

또한 $ sudo rm -rf node_modules이 폴더를 포함하는 디렉토리에서 모든 node_modules를 삭제하십시오 .

Node & Nodejs는 기술적으로 동일합니다. 이름 만 바뀌 었습니다.

먼저 nvm 설치 또는 업데이트

루트로 실행

$ sudo su 

그때

$ curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.31.7/install.sh | 세게 때리다

또는

$ wget -qO- https://raw.githubusercontent.com/creationix/nvm/v0.31.7/install.sh | 세게 때리다

경로를 확인하기 위해 nvm 확인

$ 소스 ~ / .profile
$ nvm ls- 원격

목록과 관련하여 오류가 발생하면 git을 설치하십시오.

$ sudo apt-get 설치 git

재실행 :

$ nvm ls- 원격
또는
$ sudo nvm ls- 원격

$ nvm 설치 버전-필요 

버전 확인

# node --version
nvm 사용 버전 필요

정보 제공 :

https://www.digitalocean.com/community/tutorials/how-to-install-node-js-with-nvm-node-version-manager-on-a-vps


1

심볼릭 링크를 만들었지 만 여전히 작동하지 않습니다.

터미널을 다시 시작하는 것을 잊었습니다 (퍼티 연결). 내가 symlink없이 일한 후에 :)


1

절대 초보자에게 도움이 될 것입니다

대답이 있지만 node매개 변수없이 명령이 REPL read-eval-print-loop 모드에서 원시 Javascript 코드를 실행하기 위해 노드를 시작 한다는 점을 지적하고 싶었습니다 .

node명령 을 사용하는 다른 방법 은 js파일을 매개 변수로 제공하는 것 입니다. 이것이 우리가 주로 사용하는 방법입니다.


0

기존 노드와 nodejs를 제거하는 것은 선택 사항이지만 최신 7.x nodejs를 대신 설치해야합니다.

curl -sL https://deb.nodesource.com/setup_7.x | sudo -E bash -
sudo apt-get install -y nodejs



0

https://nodejs.org/en/download/

Download .pkg file on your mac and install it. it directly works.

➜  ~ which node
/usr/local/bin/node
➜  ~ node --version
v10.11.0
➜  ~ which npm
/usr/local/bin/npm
➜  ~ npm --version
6.4.1
당사 사이트를 사용함과 동시에 당사의 쿠키 정책과 개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.