Brew 의사의 말 :“경고 : / usr / local / include는 쓸 수 없습니다.”


352

양조 의사의 말 :

경고 : / usr / local / include는 쓸 수 없습니다. Homebrew에서 관리하지 않는 소프트웨어를 "sudo make install"소프트웨어로 사용하는 경우 발생할 수 있습니다.

추출이 헤더 파일을이 디렉토리에 쓰려고하면 링크 단계 중에 설치가 실패합니다.

아마도 chown/ usr / local / include

이 문제를 해결하기 위해 다른 명령을 시도했지만 여전히 여기에 붙어 있습니다.

10.8.2에 homebrew를 실행 중입니다.


1
Homebrew 0.9.4의 "/ usr / local / lib"와 비슷한 오류가 발생하여 아래 솔루션으로도 해결되었습니다.
JeremiahLee

답변:


680

그것과 그것의 모든 것을 소유하십시오.

Mac OS High Sierra 이상 : (아래 의견에서 Kirk와 다름)

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

이전 버전의 macos :

$ sudo chown -R $USER:admin /usr/local/include

그런 다음 다른 작업을 수행하십시오.

$ brew doctor

12
작동이 허용되지 않습니다?
topwik

68
대신에 어떤 장점이 $ sudo chown -R `whoami` /usr/local/있습니까?
Labu

2
@WillmLabu 하나 적은 프로세스 포크? whoami는 효과적인 사용자 ID이며 매뉴얼 페이지에서 사용되지 않습니다 :) bash는 OSX의 기본 쉘이며 USER가 설정되는 곳입니다.
jrwren

7
/ usr / local의 소유권을 깨끗한 솔루션으로 사용자에게 변경하는지 궁금합니다. 'wheel'그룹에 $ USER를 추가하는 것이 좋지 않습니까? 아니면 / usr / local 그룹을 관리자 그룹으로 변경 하시겠습니까?
Michael Lehn

13
Mac OS의 Homebrew 에 따르면 High Sierra chown /usr/local은 더 이상 작동하지 않습니다. 대신 사용sudo chown -R $(whoami) $(brew --prefix)/*
Kirk Hammett

115

나를 위해 일한 것도 너무

sudo chmod g+w /usr/local
sudo chgrp staff /usr/local

20
이것은 다중 사용자 OS에서 / usr / local의 소유권을 가지기 위해 제정신이 아닌 유일한 제정신입니다
Alexander Torstling

3
이 녀석에게 투표를 해줘! ;) 이것은 훌륭하게 작동했습니다.
jrista

1
이것이 더 나은 솔루션입니다 IMHO
jacurtis

5
글쎄요, 하이 시에라에는 없습니다. "없습니다 온 파일 모드를 변경하려면 / usr / 지방 : 작동하지 허용"
user980018

1
같은 일에 @ user980018 나는 단지 달렸다 - 여기있어 내가 사용하는 해결 방법은
케이시 데이비슨


37

엘 캐피 탄에서 나를 위해 일한 유일한 사람은 다음과 같습니다.

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

5
chown : / usr / local : 허용되지 않는 작업
AlxVallejo

1
@AlxVallejo가 / usr / local / bin에서 작업을 수행했습니다.
marcotama

23

당신은에있는 경우 높은 시에라 와이 문제가 발생한 다음 단계에 따라 ( 주 : / usr / 지방 높은 시에라에서 chown'd 수 없습니다 )

sudo mkdir /usr/local/include
sudo chown -R $(whoami) $(brew --prefix)/*

그런 다음 추출 링크로 연결해보십시오. 비슷한 문제가 발생했으며 위의 솔루션 중 어느 것도 High Sierra에서 작동하지 않았습니다. 이것이 누군가를 돕기를 바랍니다.


20

High Sierra의 경우 :

/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

그런 다음 추출 명령을 시도하십시오.

문제 # 3285


2
이전에 Brew를 설치하고 High Sierra로 업그레이드 한 경우이 다운 보트가 왜 다운 보트되었는지 확실하지 않은 경우 Homebrew를 다시 설치하면 문제가 해결됩니다. 이것은 가장 쉬운 방법입니다
sam9046

아이러니하게도 스크립트가 다른 답변에서 제안하는 것과 정확히 일치하기 때문입니다.
궤도에서 가벼움 레이스

이것은 나를 위해 일했지만 처음으로 ruby ​​-e "$ (curl -fsSL raw.githubusercontent.com/Homebrew/install/master/uninstall )"을 사용하여 이전을 제거했습니다.
abbas

12

명령의 별명을 지정하여이 문제점을 해결하고 발생할 .bash_profile때마다 실행할 수 있습니다.

파일 끝에 다음을 ~/.bash_profile추가하십시오.

alias fix_brew='sudo chown -R $USER /usr/local/'

이제 터미널 내부에서 다음을 실행할 수 있습니다.

$ fix_brew

12

이것은 macOS 10.12 에서 나를 위해 일했습니다.

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

다음 오류로 homebrew를 업데이트하는 데 문제가 있습니다.

/usr/local is not writable. You should change the ownership
and permissions of /usr/local back to your user account:
  sudo chown -R $(whoami) /usr/local

8

일부는 다음과 같습니다.

sudo chown -R JonJames:admin /usr/local/lib

여기서 "lib"는 "bin"또는 "include"또는 "whatever"와 달리 사용됩니다.

Homebrew 경고 " 필수 "는 구체적으로 쓰기 불가능한 것을 설명하고 따라야 할 명령 구문을 제공해야하지만 경고에서 언급 한 것과 정확히 일치하지 않는 ":"를 사용해야합니다.


경고의 구문은 다소 혼란 스럽습니다. 저는 Homebrew의 주요 기고자에게 전자 메일에 대해 변경 사항이 있는지 물어보고 답장을 기다리고 있는지 전자 메일로 보냈습니다. 아마도 경고의 언어가 향후 맥주 업데이트에서 변경 될 것입니다 ..
Jonathan James

감사! 이것은 상당한 양의 검색 후 작동했습니다.
thiswayup


5

MacOS 10.13에서 동일한 오류

/usr/local/include그리고 /usr/local/ /usr/lib만들어지지 않았습니다. 나는 수동으로 만들고 brew link마침내 일했습니다.


3

/ usr / local / include 및 / usr / local / lib가없는 경우 작성해야합니다.

$ sudo mkdir -p /usr/local/include
$ sudo chown -R $USER:admin /usr/local/include

3

내 컴퓨터에 이상의 사용자 가있는 동안 나를 위해 일한 것.

터미널 사용 :

  • 달리는 brew doctor
    • /usr/local/...쓰기 가능한 오류가 아닌 것을 보는 것은
  • Mac의 시스템 무결성 보호 비활성화 : https://apple.stackexchange.com/a/208481/55628
  • 다음을 실행하십시오
  • sudo chown -R $(whoami) /usr/local/*
  • brew doctor && brew upgrade && brew doctor

Macbook Pro OSX High Sierra (버전 10.13.3) 실행

편집 1 :

참고로-MAC에서 MySQL을 실행하는 데 문제가 있습니다.

로컬 서버를 시작하려면 다음을 실행해야합니다.

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

이것을 실행하면 로컬 MySQL 서버를 시작할 수 있습니다.


1
우수한! 감사합니다!
shmuli

3
sudo mkdir -p /usr/local/include /usr/local/lib /usr/local/sbin

sudo chown -R $(whoami) /usr/local/include /usr/local/lib /usr/local/sbin

필요한 모든 디렉토리가 작성되고 올바른 소유권이 부여됩니다.

이 명령을 실행 한 후 다음을 확인하십시오. brew doctor

이것은 모하비에서 작동합니다.


2

아래 /usr/local에서 재귀를 수행하려면 전체 를 제어 해야합니다.chown/usr/local

sudo chown -R YOUR_USERNAME:admin /usr/local/


2

필자 는 내 경우에는 효과적이고 훨씬 쉬운 대안으로 sam9046 의 겸손한 의견을 제시하고 싶습니다 . 처음부터 homebrew를 제거 하고 다시 설치 하십시오. sudo 명령이 필요하지 않습니다.

이전에 설치된 패키지에 영향을 미치지 않도록하려면 위 링크에서 제거 스크립트를 찾아 보거나 수정할 수도 있습니다. 내 경우에는 이것이 내 집의 기계이므로 방금 다시 시작했습니다.



2

먼저 디렉토리를 작성해야합니다.

sudo mkdir /usr/local/include

둘째:

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

1

모든 사용자가 활성 디렉토리에 바인딩 된 후 조직 에서이 문제가 발생했습니다 (유효하게 UID를 50x에서 ######으로 변경).

이제 x가 y로 소유 한 모든 파일의 소유권을 변경하는 경우입니다.

여기서 501은 여전히 ​​모든 homebrew 파일과 연결된 내 이전 숫자 사용자 ID입니다.

이전 사용자 ID는 다음을 사용하여 찾을 수 있습니다. ll /usr/local/Cellar

이제 소유권을 업데이트하십시오 sudo find /usr/local -user 501 -exec chown -h $USER {} \;

이런 식으로 homebrew에 의해 제어되지 않거나 다른 시스템 사용자에 속하는 파일에 대한 소유권을 변경하지 않습니다.


1

/ bin 디렉토리로 이동하여 다음을 입력하십시오.

chown -R $ (whoami) : 관리자 / usr / local / bin

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