Brew를 사용하여 최신 버전의 Node를 설치하는 방법


154

현재 NodeJ의 최신 버전은 0.4.1입니다.

brew install node지금 명령 은 0.2.6을 설치합니다. 이상적이지 않습니다. 0.4.1을 부탁합니다

brew 명령 목록을 살펴보고 시도했습니다.brew install --HEAD node

그러나 이것은 0.5-pre 노드를 설치합니다.

왜 올바른 버전을 설치하지 않고 올바른 버전을 얻도록 강제 할 수 있습니까?

이 단계에서는 실제로 src를 다운로드하여 수동으로 설치하는 것이 더 쉬운 것처럼 보입니다. 그러나 나는 Brew와 함께 무슨 일이 일어나고 있는지 알고 싶습니다.


궁금합니다. Homebrew를 통한 설치와 nodejs.org 에서 다운로드 한 패키지에서 설치의 차이점은 무엇입니까 ?
yihangho

답변:


126

먼저 달려 봤어 brew update? 그렇게하지 않으면 Homebrew는 공식을 업데이트 할 수 없으며 공식을 업데이트하지 않으면 최신 버전의 소프트웨어를 설치하는 방법을 모릅니다.


2
좋아, 'brew update node'를 시도했지만 지금 당신이 옳다는 것을 알았습니다. doco가 'brew update'가 brew 소프트웨어를 업데이트한다고 말했기 때문에 나에게 발생하지 않았습니다. 그러나 'formulea'는 기본적으로 '소프트웨어 버전 라이브러리'에 대한 (솔직히) 어리석은 단어입니다. 'brew info node'를 수행하여 설치할 버전을 확인할 수 있습니다. 어쨌든 src에서 설치를 끝내기 위해 0.4.0으로 설정되었지만 이것이 맞습니다. 감사합니다.
PandaWood

"Brew 소프트웨어 업데이트"라고 말하면 BREW가 설치 한 소프트웨어 업데이트를 의미하지는 않습니다. BREW 자체 및 Formulae 라이브러리를 의미합니다.
릴리 발라드

301

아래 순서대로 명령을 실행하십시오.

brew update
brew doctor
brew upgrade node

이제 업데이트 된 버전의 노드를 설치했으며 연결되지 않았을 수 있습니다. 그렇지 않은 경우 다음을 입력하십시오. brew link node또는brew link --overwrite node


1
계속 받기/usr/local/share/doc/node is not writable.
Saba Ahang

@SabaAhang, 참조 : Homebrew의 / usr / local에 대한 권한 수정; ; gist.github.com/rpavlik/768518
AnneTheAgile

3
오류 : 그런 술통 없음 : / usr / local / Cellar / node
Hos Mercury

노드 통이 연결되지 않았기 때문에 NPM 실패 ( "Buffer.alloc은 함수가 아닙니다")가 수정되었습니다. 이전 파일을 강제로 링크 / 덮어 쓰는 데 필요했습니다.
dave

2
brew link --overwrite node정말 중요합니다! 감사합니다
hanzichi 2016 년

136

brew를 통해 노드를 설치 / 업그레이드 한 후이 문제가 발생했습니다. 노드 명령은 작동했지만 npm 명령은 작동하지 않았습니다.

이 명령을 사용하여 문제를 해결했습니다.

brew uninstall node
brew update
brew upgrade
brew cleanup
brew install node
sudo chown -R $(whoami) /usr/local
brew link --overwrite node
brew postinstall node

시행 착오 후에이 솔루션을 함께 사용했습니다 ...


감사합니다! 똑같은 문제가 있었으며 해결되었습니다.
elsurudo

7
sudo brew postinstall nodebrew가 root가 소유하지 않으면 오류가 발생합니다 (권장되지 않음). 당신이 이미했다면 필요하다고 생각하지 않습니다 sudo chown -R $(whoami) /usr/local. 당신은 그냥 실행할 수 있어야합니다 brew postinstall node.
Sam Fen

2
@SamFen이 맞습니다. sudo필요하지 않습니다. 이 명령 목록을 사용하기 전에 먼저 허용 된 답변을 실행했습니다. 나중에 나는 달렸다. node -v그리고 모든 것은 지금 좋아 보인다.
6754534367

1
sudo chown -R $ (whoami) $ (brew --prefix) / * 대신 sudo chown -R $ (whoami) / usr / local을 사용하십시오.
Troy DC Thompson

1
이것은 나를 위해 일했습니다. 나는 sudo chown -R $(whoami) $(brew --prefix)/*점점 @TroyDCThompson이 추천 한 것을했다 Operation not permitted.
thurzo101


13

또한 새 노드 버전을 설치 한 후 현재 노드 버전을 비활성화하십시오. 도움이됩니다.

nvm deactivate

$ PATH에서 /Users/user_name/.nvm/*/bin이 제거되었습니다.

그리고 그 노드가 업데이트 된 후

node --version
v10.9.0

9

내가해야 할 일을했을 brew link --overwrite nodebrew install node0.4에서 0.8.18로 업데이트


오류 : 그런 술통 없음 : / usr / local / Cellar / node
Hos Mercury

7

"n"노드 매우 간단한 패키지 관리자를 사용하십시오.

> npm install -g n

"n"을 설치하면 다음을 수행하여 최신 노드를 가져올 수 있습니다.

> n latest

우분투 16.0x 및 MacOS 10.12 (Sierra)에서 성공적으로 사용했습니다.

참조 : https://github.com/tj/n


7

를 통해 현재 노드를 설치 한 경우 Homebrew다음 명령을 사용하십시오.

brew update
brew upgrade node

다음으로 노드 버전 확인

node -v


3

이 솔루션을 Homebrew 0.9.5와 함께 사용하면 최신 안정 버전의 노드로 업그레이드하는 빠른 솔루션처럼 보입니다.

brew update

최신 버전이 설치됩니다

brew install node

이것을 찾으려면 현재 버전의 노드 사용 node -v를 연결 해제하십시오.

brew unlink node012

최신 버전의 노드로 변경됩니다.

brew link node

참고 :이 솔루션은이 오류가 발생하여 작동했습니다.

오류 : 해당 술통 없음 : / usr / local / Cellar / node


2

Mac OSX Sierra에서이 작업을 수행했습니다. Node 6.1을 설치했지만 Puppetter에 Node 6.4가 필요했습니다. 이것이 내가 한 일입니다.

brew upgrade node
brew unlink node
brew link --overwrite node@8
echo 'export PATH="/usr/local/opt/node@8/bin:$PATH"' >> ~/.bash_profile

그런 다음 새 터미널 창을 열고 다음을 실행하십시오.

node -v
v8.11.2

node6과 node8간에 충돌하는 파일을 재정의하려면 --overwrite가 필요합니다.


2
  1. node -v 현재 버전을 보여줍니다.
  2. npm -v 현재 버전을 보여줍니다.
  3. brew link --overwrite --dry-run node 링크를 강제 실행하고 충돌하는 모든 파일을 덮어 씁니다.
  4. brew install node 새로 설치하십시오.
  5. brew update
  6. brew upgrade node
  7. brew link --overwrite node

    또는

    brew link node

노드 업그레이드 절차는 다음과 같습니다



0

brew의존성 을 제거하려는 경우 nvm을 권장합니다. 다른 버전 관리 솔루션을 사용하지 않아도 다른 버전 관리 솔루션보다 권장 할 수 없습니다. 작업중인 프로젝트에 따라 버전 간을 즉시 전환 할 수있는 기능이 매우 중요합니다.


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