오류 : 'brew link'단계가 성공적으로 완료되지 않았습니다


158

Homebrew를 통해 node.js를 설치하려고합니다. 불행히도이 오류가 발생합니다.

  ~  brew install node
==> Downloading http://nodejs.org/dist/v0.8.10/node-v0.8.10.tar.gz
######################################################################## 100.0%
==> ./configure --prefix=/usr/local/Cellar/node/0.8.10
==> make install
==> Caveats
Homebrew installed npm.
We recommend prepending the following path to your PATH environment
variable to have npm-installed binaries picked up:
  /usr/local/share/npm/bin
Warning: Could not link node. Unlinking...
Error: The `brew link` step did not complete successfully
The formula built, but is not symlinked into /usr/local
You can try again using `brew link node'
==> Summary
/usr/local/Cellar/node/0.8.10: 856 files, 13M, built in 103 seconds

그런 다음 노드를 수동으로 연결하려고합니다 ...

  ~  brew link node
Linking /usr/local/Cellar/node/0.8.10... Warning: Could not link node. Unlinking...

Error: Could not symlink file: /usr/local/Cellar/node/0.8.10/lib/node_modules/npm/scripts/relocate.sh
Target /usr/local/lib/node_modules/npm/scripts/relocate.sh already exists. You may need to delete it.
To force the link and delete this file, do:
  brew link -f formula_name

To list all files that would be deleted:
  brew link -n formula_name

운이 없어서 강제로 노드를 연결하려고합니다 ...

  ~  brew link -f node
Linking /usr/local/Cellar/node/0.8.10... Warning: Could not link node. Unlinking...

Error: Permission denied - /usr/local/lib/dtrace/node.d

나는 어떤면에서 dtrace에 익숙하지 않으며 권한을 엉망으로 만드는 것을 두려워하므로 sudo ..

 ~ git:(master) sudo brew link -f node
Password:
Error: Cowardly refusing to `sudo brew link'
You can use brew with sudo, but only if the brew executable is owned by root.
However, this is both not recommended and completely unsupported so do so at
your own risk.

통해 노드를 제거 brew uninstall node하고 운없이 설치를 다시 시도했습니다.


나는 automake를 얻을 수 없습니다. mongodb와 homebrew와 연결할 노드
pixel 67

답변:


136

node.js의 homebrew 패키지에 npm이 다시 포함되므로 독립형 버전을 먼저 제거하는 homebrew 패키지의 메시지를 놓쳤을 때 이런 일이 발생했습니다.

가정, 나처럼, 당신은 이미로 알고 전에 업그레이드를 시도하여 노드 / 고궁 박물원을 깼다 npm uninstall npm -g첫째, 당신이 할 수있는 rm -rf /usr/local/lib/node_modules/npm다음 brew link node. 이를 통해 독립형 자체 호스팅 npm 패키지 (브루어를 설치하려는 것이 아니라)를 제거하고 브루어가 번들로 묶인 패키지를 Cellar에서 심볼릭 링크 할 수 있습니다.


9
npm을 제거한 후 @dain이 언급 한 것처럼 링크가 올바르게 작동하려면 터미널을 닫았다가 다시 열어 경로에서 제거해야합니다.
kflorence

이것은 나를 위해 일했습니다. 필자의 경우 업그레이드 중에 Elixir와 Erlang을 연결할 수 없습니다. 관심있는 디렉토리는 내 사용자 이름이 아닌 "root"가 소유했습니다. 해당 디렉토리를 삭제하고 다시 설치하기로 결정했습니다.
코치 Roebuck

링크 노드를 시도하면 다음 과 같은 결과 가 나타납니다. * 오류 : 해당 술통 없음 : / usr / local / Cellar / node * | 어떤 아이디어?
SuperUberDuper

1
npm을 업그레이드하려고 시도한 후 이것을 알아 내려고 한 시간을 보냈습니다. Brew는 독립형 버전이 먼저 제거 될 때까지 링크를 허용하지 않습니다. nate의 추천이 나를 위해 일했습니다.
Brandon Clapp

npm을 어떻게 다시 설치합니까? 또는 BREW 설치 노드와 함께 설치됩니까?
marciokoko

153

Mac OS X Mavericks를 실행합니다. 노드 0.10.25를 설치하려고 시도했지만 최상위 답변이 작동하지 않았습니다.

natevw는에 말한다 rm -rf /usr/local/lib/node_modules/npm에 대한 사용 권한 만있는 경우 /usr/local/lib/node_modules다음과 같이 :

drwxr-xr-x   3 root      admin   102 Feb  2 20:45 node_modules

brew는 해당 디렉토리에 npm 심볼릭 링크를 만들 수 없습니다. 내 해결책은 다음과 같습니다.

1 단계 : Homebrew 업데이트

$ brew update

2 단계 : 시스템 어디에서나 node / npm 제거

과거에 node / npm을 설치 한 방법에 따라 이러한 명령 중 일부는 필요하지 않습니다.

$ brew uninstall npm
$ brew uninstall node
$ npm uninstall npm -g
$ sudo rm -rf /usr/local/lib/node_modules

참고 : 나는 실행하여 찾은 길 잃은 노드 파일을 가지고 있었다 brew -v link node. 다음이 필요할 수 있습니다.

$ sudo rm -rf /usr/local/include/node
$ sudo rm -rf /usr/local/lib/node

3 단계 : 새 터미널을 열고 노드 설치

$ brew install node

1
감사! 이것은 많은 도움이되었고 내 문제를 해결했습니다. +1
Ricky Mutschlechner

5
나를 위해 일했습니다 ... node_modules ( 's'로 끝나는) 디렉토리를 제거해야했지만 ...
songololo

1
이 답변이 받아 들여 져야합니다. 요세미티와도 관련이 있습니다.
Rog

1
이것은 나에게도 효과가 있었지만 마침내 chown 명령을 실행하여 링크를 허용해야했습니다. sudo chown -R whoami/ usr / local Sauce
straubcreative

1
: 당신의 맥 I에 사방이 문서 노드를 따라 제거하려면 stackabuse.com/how-to-uninstall-node-js-from-mac-osx
ankitkpd

40
sudo chown -R $(whoami) /usr/local 

추출 사이트 문제 해결에서 언급 한대로 잘 작동합니다.

https://github.com/Homebrew/homebrew/wiki/troubleshooting


3
나는 그들이 이것을 추천하는 것에 놀랐습니다. 더 나은하지 않을까요 것은해야 할 일 : sudo chmod -R g+w /usr/local(비록 솔직히, 모두 겁 나)
getWeberForStackExchange

@getWeberForStackExchange 나는 당신이 말한 것을 시도했지만 그것은 나에게 차이를주지 않았습니다. 왜 그런 아이디어가 있습니까?
f1lt3r

@AlistairMacDonald 아마 지금까지이 문제를 해결했을 수도 있지만 왜 문제가 있었는지 알아 내려면 더 많은 정보가 필요할 것입니다. / usr / local에서 모든 소유권을 변경하면 현재 사용자가 / usr / local 구조에서 노드 링크를 만들 수 있습니다. 소유권 대신 모든 파일의 그룹 권한을 변경하도록 제안했습니다. 내 명령은 사용자가 모든 / usr / local을 소유 한 그룹의 일부라고 가정했습니다. / usr / local에 chgrp명령 이 필요한 다른 그룹이있을 수도 있습니다 .
getWeberForStackExchange

특히 자정 사령관과 wget을 얻기 위해 OS X 10.11에 홈 브루를 설치했습니다. npm이 설치되어 있지 않습니다. mc 설치 중 질문에 설명 된대로 "brew 링크"단계가 실패했습니다. 이 답변은 저에게 효과적이었습니다. 변경 한 후 "brew link midnight-commander"를 사용하여 링크를 다시 실행하면 정상적으로 실행됩니다. 그 후, 명령 행에 "mc"를 입력하면 예상대로 자정 사령관이 나타납니다. 그 후 "brew install wget"은 fanfare없이 작동했습니다. 좋은 대답입니다.
fyngyrz

이 명령은 권장 brew doctor하지만 sudo su명령을 실행 한 다음 터미널을 닫습니다.
jchnxu

37

다른 방법을 사용하여 이전 버전의 node.js를 이미 설치했을 수 있으므로 추출중인 파일을 수동으로 제거해야합니다.

brew link -n node수동으로 그 충돌 파일과 디렉토리를 삭제 한 후 시도 brew link node다시.


4
시간이 걸렸지 만 내가해야 할 일이있었습니다. 감사합니다 :)
Christoffer

와 같은 문제가 aspell있습니다. 충돌하는 파일과 디렉토리를 어떻게 찾습니까?
LWZ

33

나는 조금 늦었다. 나를 위해 일한 것은 이것이었다 :

* npm uninstall npm -g

* brew uninstall node

* brew install node

* sudo rm -rf /usr/local/lib/dtrace/node.d

* brew link node (caused error with permissions)

* sudo chmod 777 /usr/local/lib/dtrace/node.d

* brew link node

이 순서 후에 모든 것이 성공했습니다


이것은 마침내 나를 위해 일했습니다. 이미 npm을 설치 한 후 brew를 통해 노드를 설치하려고 시도한 후 문제가 발생했습니다. 그것은 본질적으로 나를 위해 npm을 끊었습니다. npm 폴더를 rm -rf로 복사 한 다음 brew를 통해 설치해야합니다 (npm 제거는 더 이상 작동하지 않습니다). 그 후 나머지 단계는 완벽하게 작동했습니다.
rdrobinson3

5
sudo chmod 777권한 문제가있는 경우 이것이 올바른 해결책은 아닙니다. 왜 문제가 발생했는지 조사하고 작업을 수행하는 데 필요한 최소 권한 수준을 설정하십시오. 이 명령을 사용하면 시스템의 모든 사람이 파일을 수정할 수 있습니다.
bobmagoo

훌륭한. 감사합니다. brew link node처음으로 실행되는 파마 문제는 없었지만 .
Bede Constantinides

그 디렉토리를 chmod 대신에 나는 그것을 소유했다. chown myuser -R -v / usr / local / lib / dtrace / 또한 dtrace가 디렉토리로 존재하지 않는다는 문제가있었습니다. 오류는 동일하지만 디렉토리가 없습니다.
Jason Short

15

이 시도. 다른 참조에서 얻었고 나를 위해 일했습니다.

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

brew postinstall node티켓이었다
프로토 타입

이것은 티켓이었다! 어떤 이유로, 나는 brew upgrade 2X를 실행해야했고 두 번째로 XCode에 대한 업데이트를 설치하도록 요청했습니다. brew link --overwrite node그리고 마지막 명령 사이에서 모두 작동하는 것 같습니다. 'sudo'(으)로 인해 제안한 최종 명령이 작동하지 않습니다. 대신brew postinstall node
Dani Amsalem

10

모든 이전 응용 프로그램을 이전 Mac에서 새 응용 프로그램으로 전송 한 후에도 같은 문제가 발생했습니다.

나는 다음을 실행하여 해결책을 찾았다 brew doctor.

경고 : 깨진 심볼릭 링크가 발견되었습니다. 그들을 제거brew prune

실행 후 brew prune, Homebrew는 마침내 궤도에 올랐습니다 :)


4

내 문제에는 약간 다른 해결책이있었습니다. brew가 symlink를 작성하려는 디렉토리는 현재 사용자가 소유하지 않았습니다.

ls -la /usr/local/bin/lib/node | grep node 산출 :

drwxr-xr-x    3 24561  wheel   102 May  4  2012 node
drwxr-xr-x    7 24561  wheel   238 Sep 18 16:37 node_modules

나를 위해 다음과 같이 수정했습니다.

sudo chown $(users) /usr/local/bin/lib/node_modules
sudo chown $(users) /usr/local/bin/lib/node

추신. $(users)귀하의 사용자 이름으로 확장되고, 게으른 사본을 돕는 사람들을 돕기 위해 조금 벗어났습니다.)


2
나는 같은 문제가 있었다. 다른 응용 프로그램에 대해 "make install"을 수동으로 실행하면이 문제가 발생할 수 있습니다. 나는 최근에 그 일을 해왔고 해결책은 당신처럼 씹는 것이었다.
Richard Tuttle 2012

4

thx @suweller.

문제를 해결했습니다.

  bin git:(master)  brew link node
Linking /usr/local/Cellar/node/0.10.25... Warning: Could not link node. Unlinking...

Error: Permission denied - /usr/local/lib/node_modules/npm

나는 suweller와 같은 문제가 있었다 :

  bin git:(master)  ls -la /usr/local/lib/ | grep node
drwxr-xr-x   3 24561  wheel   102 11 Okt  2012 node
drwxr-xr-x   3 24561  wheel   102 27 Jan 11:32 node_modules

그래서이 문제를 해결했습니다.

  bin git:(master)  sudo chown $(users) /usr/local/lib/node_modules
  bin git:(master)  sudo chown $(users) /usr/local/lib/node

이 문제를 해결 한 후 다른 문제가 발생했습니다.

  bin git:(master)  brew link node
Linking /usr/local/Cellar/node/0.10.25... Warning: Could not link node. Unlinking...

Error: Could not symlink file: /usr/local/Cellar/node/0.10.25/lib/dtrace/node.d
Target /usr/local/lib/dtrace/node.d already exists. You may need to delete it.
To force the link and overwrite all other conflicting files, do:
  brew link --overwrite formula_name

To list all files that would be deleted:
  brew link --overwrite --dry-run formula_name

그래서 node.d를 다음과 같이 제거했습니다.

  bin git:(master)  sudo rm /usr/local/lib/dtrace/node.d

다른 권한 오류가 발생했습니다.

  bin git:(master)  brew link node
Linking /usr/local/Cellar/node/0.10.25... Warning: Could not link node. Unlinking...

Error: Could not symlink file: /usr/local/Cellar/node/0.10.25/lib/dtrace/node.d
/usr/local/lib/dtrace is not writable. You should change its permissions.

그리고 그것을 고쳤다 :

  bin git:(master)  sudo chown $(users) /usr/local/Cellar/node/0.10.25/lib/dtrace/node.d

그리고 마침내 모든 것이 작동했습니다.

  bin git:(master)  brew link node
Linking /usr/local/Cellar/node/0.10.25... 1225 symlinks created

3

노드와 관련된 대부분의 브루 설치 문제는 권한 오류 또는 노드가 이미 설치되어 있고 브루를 통해 설치하려고해서 발생합니다. 나를 위해 일한 해결책은 마침내 다음과 같습니다.

경고 : nodejs (여러 버전) 사용을주의해서 제거합니다.

  1. 추출을 통해 노드를 제거하십시오.

    추출 제거 노드

  2. 또한 힘을 통해했다 :

    brew uninstall node --force

  3. 스크립트 소스를 사용하려면 노드 제거 :

    curl -O https://raw.githubusercontent.com/DomT4/scripts/master/OSX_Node_Removal/terminatenode.sh

그때:

chmod +x /path/to/terminatenode.sh

그때:

./terminatenode.sh .
  1. 그런 다음 다음 명령을 수행하십시오.

    chown $ USER / usr / local

  2. 그런 다음 양조 업데이트를 수행하십시오 (모든 것이 업데이트 될 때까지 계속하십시오).

    양조 업데이트

  3. 추출을 정리하고 다시 업데이트를 실행하고 (중복 일 수 있음) 의사가 문제가 없는지 확인하십시오.

    양조 정리; 양조 업데이트; 양조 의사

  4. 마지막으로 brew (verbose)를 통해 노드를 설치하십시오.

    brew install -v 노드


숫자의 형식이 잘못되었지만 단계가 있습니다. 내일 포맷 문제를 해결합니다.
AhsenB

2

궁극적 인 답변 : 당신이 누구인지 그 디렉토리의 소유자를 변경

sudo chown -R `whoami` /usr/local/include

양조 의사를 운영하는 경우 양조자가 권장합니다.


2

설치 중에 노드를 연결할 수없고 / usr / local / include에 쓸 수없는 오류가 발생했습니다.

아래 솔루션이 나를 위해 일했습니다 :- 먼저 include 폴더를 작성하십시오. sudo 권한이 필요합니다.

cd /usr/local

sudo mkdir include

sudo chown -R $(whoami) $(brew --prefix)/*

brew link node

1

또한 NPM을 엉망으로 만들고이 Homebrew 버전 사이에 패키지를 설치했으며 연결을 끊거나 연결 및 제거 / 설치 한 노드 수에 관계없이 여전히 작동하지 않습니다.

경로에서 NPM을 제거해야합니다. 그렇지 않으면 Homebrew가 설치하지 않습니다 : https://github.com/mxcl/homebrew/blob/master/Library/Formula/node.rb#L117

이것이 동일한 문제를 가진 사람을 도울 것이고 그 시간을 절약하기를 바랍니다. 그래서 나는 문제를 찾는 데 소비해야했습니다 ...


감사합니다. 제대로 작동하려면 최고 투표 응답과 함께이 작업을 수행해야했습니다.
kflorence

1

Finder에서이 파일을 삭제하십시오.

/usr/local/lib/dtrace/node.d

터미널에서 :

$ brew link --overwrite --dry-run node

그때:

$ brew link node

1
내가 실행 brew link --overwrite --dry-run node하면 오류가 표시 No such keg: /usr/local/Cellar/node됩니다. 내가 무엇을 놓치고 있습니까?
PKHunter

1

나는 모든 방법을 시도했지만 그중 아무것도 작동하지 않습니다. 가장 쉬운 방법은 https://nodejs.org/en/download/ 에서 노드를 다시 설치하는 것입니다.

간단히 다운로드하여 pkg설치하십시오. 지금은 작업이 npmnode다시합니다.


0

좋은 아이디어인지 아닌지 모르겠다. 다른 솔루션을 모두 시도하지 않고 시도한 후 / usr / local / lib / dtrace, 링크 된 노드의 이름을 바꾸고 디렉토리를 다시 이름을 바꿨다. 그 후 노드는 예상대로 작동했습니다.


0

나는 이것을 잠시 동안 고투하고 있었다. (나를 위해 "npm uninstall npm -g"는 아무것도하지 않았다)

나는 많은 것들을 시도했다.

npm uninstall npm -g
brew uninstall node
brew install node

노드 파일을 연결하려고 할 때 여전히 문제가 발생하여 오류가 발생했습니다.

마침내 나는 이것을 시도했다.

brew link --overwrite node

그것은 그것을 고치는 것처럼 보였다. (충돌 파일을 덮어 쓰고 노드와 npm도 링크 함)

도움이 되었기를 바랍니다


0

brew를 완전히 제거하고 다시 시작하여 동일한 문제를 다시 발견했습니다.

Brew는 필요한 바이너리를 다른 설치 방법이 일반적으로 파일을 복사하는 시스템으로 심볼릭 링크하여 작동하는 것으로 보입니다.

기존 노드 라이브러리 세트를 여기에서 찾았습니다.

/usr/local/include/node

약간의 머리 긁기 후에 나는이 오래된 버전에 대해 날짜에 노드를 설치하는 것을 기억했으며 양조를 거치지 않았습니다.

이 전체 폴더를 수동으로 삭제하고 npm을 성공적으로 연결했습니다.

이것은 brew uninstall 또는 uninstall brew 자체를 사용해도 효과가없는 이유를 설명합니다.

가장 높은 순위의 답변은 이것을 매우 간단하게 제시하지만 필요한 이유에 대한 관찰을 추가 할 것이라고 생각했습니다.

다른 brew 패키지와 관련된 많은 문제가 오래된 비 brew 패키지 인스턴스가 발생했기 때문에 발생할 수 있다고 생각합니다.


0

교착 상태 노드에서 내 머리를 부수고 있었다. 그리고 아무것도 작동하지 않는 것 같았다. 그러나 마지막으로 효과가 있었던 것은 올바른 권한을 설정하는 것이다. 이 'sudo chown -R $ (whoami) / usr / local'이 나를 위해 일했습니다.


0

다음 명령을 사용하여 El Capitan 에서이 문제를 해결했습니다. 솔직히, 그것이 무엇인지 모르지만 그것이 문제를 해결 한 이후로 나눌 것이라고 생각했습니다.

brew link --overwrite node

-5

npm 패키지를 수동으로 제거해야합니다.

첫 번째 연결 해제 노드 : brew link -n node

npm 폴더를 제거하십시오. rm -R /usr/local/Cellar/node/0.8.10/lib/node_modules/npm

다시 연결 : brew link node

npm의 새로운 위치에 대한 소프트 링크가 있습니다


5
BREW가 설치하려고하는 새로운 npm을 제거하지 않습니까? 이 작업을 수행하면 작동하는 npm이 설치되지 않은 채 내 대답과 같이 OLD npm 폴더를 삭제했습니다.
natevw

새 패키지도 제거하려고하는 것처럼 보입니다. 반드시 제거 해야하는 오래된 패키지입니까? 나는 실제로 / usr / local / bin / npm에 대한 심볼릭 링크가 남아 있음을 발견했다
Caroline
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.