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.