Homebrew 설치 오류


112

rvm 및 ruby ​​1.9.2 설치 시도

이미 homebrew와 git을 설치했지만 계속 권한 오류가 발생하여 완전한 업데이트를 얻을 수 없었습니다. Snow Leopard를 다시 설치하고 권한을 수정했습니다.

이제 이런 일이 ...

$ brew install wget

오류 : / usr / local / Cellar에 쓸 수 없습니다.


stackoverflow.com/questions/4804169/… 는 수락 된 답변으로 표시되어야합니다.이 질문에 대한 답변이없는 것을 보지 못한 방문자는 계속
진행할

답변:


274

sudo chown -R $USER /usr/local

당신은 /usr/local/바로 거기에서 그 라인 을 사용하는 것에 대한 소유권을 부여해야 할 것입니다. Homebrew를 설치하기 위해 공식 문서 상단에있는 루비 one-liner를 사용한 후 직접해야했습니다. 나를 위해 매력처럼 일했습니다. sudoHomebrew 를 사용해야하는 유일한 시간이어야합니다 .

루비 원 라이너가 이런 일을하는지 잘 모르겠습니다. 그렇다면 내 시스템의 다른 것이 그 /usr/local이후로 제어했습니다 .

편집 : 나는 이것을 완전히 놓쳤지 만 @samvermette 는하지 않았습니다 (내 대답에 대한 답변 참조) : 위의 명령을 실행하고 특별한 사용자 권한이 필요한 homebrew를 통해 설치된 것이 있다면 mysql해당 권한을 다시 부여하십시오 ( 위의 명령은 내부의 모든 것에 재귀 소유권을 부여합니다 . /usr/local( $USER) mysql의 경우 ...

sudo chown -RL mysql:mysql /usr/local/mysql/data


16
참고 :이 명령은 mysql사용자 로부터 / usr / local / mysql / data의 소유권을 제거 합니다. 제 경우에는 mysql이 시작되지 않았습니다. 수정이와 함께 :sudo chown -RL mysql:mysql /usr/local/mysql/data
samvermette

24
내가 사용하여 MySQL의 문제를 피할 sudo chown -R $USER /usr/local/Cellar/usr/local/이미 저에 대한 올바른 권한을 가지고 있었다
파커

1
아아, 사용자는 와서 사용자는 간다… 아마도 언젠가 Ibrahim 이 돌아와서 그것을 표시 할 것이다. 아마도. (아마 없습니다.)
벤 Kreeger

4
이 답변이 싫습니다. 단지 한 명의 사용자 만이 시스템을 사용하고 그 사용자는 homebrew에 관한 질문에도 불구하고 / usr / local 모든 것을 소유해야한다고 가정합니다. BREW는 다중 사용자 시스템에서 작동하지 않습니까? 작동하더라도 엉성한 대답입니다. 또한 사용자가 이러한 상황에 어떻게 직면했는지 설명하지 않습니다. 힌트-표준 지침을 사용하여 HomeBrew를 설치 한 다음 TimeMachine 백업에서 다른 컴퓨터로 복원했습니다. 파일 소유권을 변경 한 것이 복원이라고 생각합니다.
Jason R. Coombs 2015 년

1
@ JasonR.Coombs에 동의합니다. 사람들은 실용적 및 보안 적 영향을 이해하지 않고이 조잡한 솔루션을 사용해서는 안됩니다. / usr / local에있는 모든 소프트웨어는 이제 사용자 아래에서 실행중인 모든 소프트웨어에 의해 덮어 쓰여져 보안 허점을 열 수 있습니다. 첫 번째 chown 명령을 맹목적으로 실행하여 MySQL 외에도 다른 것을 망칠 가능성이 있습니다. 그 후에는 방금 망 쳤을 수있는 모든 것을 식별하고 수정하기에는 너무 늦을 것입니다.
rob

41

Mavericks로 업그레이드 한 후이 문제가 발생했으며 오류 메시지를 검색 할 때이 페이지가 상위 검색 결과였습니다. 나는 검색을 계속했고이 답변을 stack overflow.com에서 찾았습니다 . 간결하게 말하면 다음과 같습니다.

sudo chmod a+w /usr/local/Cellar

이것은 나를 위해 문제를 해결했으며 오류 메시지에 참조 된 특정 경로에 대한 권한 만 변경하므로 다른 설치에 부정적인 부작용이 없을 것 같았습니다.

저처럼이 페이지를 먼저 찾을 수있는 다른 사람을 위해이 답변을 여기에 넣습니다. 그러나 크레딧은 jdi 로 이동해야합니다 .


2
모든 사람이 이제 / usr / local / Cellar에 쓸 수 있으므로 이것이 안전하지 않은 것으로 간주됩니까?
David Welch

이 대답은 다른 폴더 (예 :)에 액세스해야하는 패키지에 대해 실패합니다 /usr/local/bin.
Jason R. Coombs 2015 년

11

에 쓰기를 관리자 사용자 만 허용 할 수 있습니다 /usr/local/.

chgrp -R admin /usr/local
chmod -R g+w /usr/local
chgrp -R admin /Library/Caches/Homebrew
chmod -R g+w /Library/Caches/Homebrew

관리자 그룹에 속한 각 사용자는 새 종속성을 설치할 수 있습니다.


다중 관리자 컴퓨터에 대한 더 나은 솔루션처럼 보입니다 (내 / usr / local / lib 디렉토리에도 aspell이 작동하려면 g + x가 필요함).
James Snook

1
'The "brew link"step did not complete successfully'오류가 발생하지 않도록하려면 이 스레드에있는 내용 , 즉 sudo chgrp -R admin /usr/local/DDDD+ sudo chmod -R g+w /usr/local/DDDD여기서 DDDD가 bin , share , Library / LinkedKegs , opt
superk

1
Thnx는 anwer, 나는이 명령은하지 작업을 수행하는 경우 그래서, sudo를 함께 접두사하려고, "sudo를"을 사용했다
MQoder



1

현재 사용자가 / usr / local을 소유 한 그룹의 구성원인지 확인하는 것이 좋습니다. 기본적으로 그 그룹은 wheel. 자신을 해당 그룹의 구성원으로 만들려면 :

$ sudo dscl . append /Groups/wheel GroupMembership $USER

우아하지 않은 망치 같지만 의도 된 효과가 있습니다. /usr/local즉, 승격 된 구성원 만 사용 (읽기 / 쓰기)하는 항목에 액세스 할 수 있습니다 . 이 접근 방식은 그룹 멤버십을 활용하여 시스템의 여러 (인증 된) 사용자가 홈브류를 사용할 수 있도록하기 때문에 위의 다른 접근 방식의 이점이 있습니다.


0

Homebrew를 어떻게 설치 했습니까? 그들의 공식 설치 지침은 루비 스크립트를 실행 등이 있습니다. 권한 문제를 처리해야합니다.

스크립트를 실행하지 않으려면 해당 페이지의 "개발자를위한 / usr / local에 설치"라는 섹션이 있으며 / usr / local 디렉토리에 필요한 권한 변경을 설명합니다.


스크립트를 사용했고 설치했지만 여전히 업데이트하는 데 문제가있었습니다. 사용자 데이터를 새 노트북으로 마이그레이션했습니다. github b / c에서 몇 가지 해결 방법을 수행해야 처음에는 스크립트가 작동하지 않았습니다.
Ibrahim

-3

편집 : 주석에서 언급했듯이 sudo를 homebrew와 함께 사용하는 것은 좋지 않으므로 다음 답변을 사용하지 마십시오!


sudo로 명령을 실행하는 경우에도이 오류를 방지 할 수 있습니다.

$ sudo brew install wget

하지만 sudo실수를 많이 할 수 있으니 사용에주의 하세요.


이 접근 방식은 루트 (sudo를 통해) 호출을 허용하지 않는 최신 버전의 homebrew에서는 실패합니다.
Jason R. Coombs 2015 년
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.