우분투 12.04의 nodejs와 node


363

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

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

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

작문 npm --version1.3.5
작문 nodejs --versionv0.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.0npm 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.