Homebrew : 심볼릭 링크를 사용할 수 없습니다. / usr / local / bin은 쓰기 가능하지 않습니다.
설치하는 동안 tig
, HomeBrew
종속성을 설치하는 동안 다음과 같은 문제를 표시 :
Error: The `brew link` step did not complete successfully
The formula built, but is not symlinked into /usr/local
Could not symlink bin/a2x
/usr/local/bin is not writable.
You can try again using:
brew link asciidoc
다음은 알렉스의 대답은 내가이 문제를 해결 할 수있었습니다을; 이것은 설치되는 패키지에 국한되지 않지만 homebrew
폴더 권한에 관한 문제인 것 같습니다 .
sudo chown -R `whoami`:admin /usr/local/bin
일부 패키지의 경우 /usr/local/share
또는 /usr/local/opt
다음 작업을 수행해야 할 수도 있습니다 .
sudo chown -R `whoami`:admin /usr/local/share
sudo chown -R `whoami`:admin /usr/local/opt
특정 명령을 실행하는 대신 brew doctor
모든 경고를 실행 하고 신중하게 수행하는 것이 좋습니다 . 이 질문에 포함되지 않은 다른 문제가있을 수 있습니다.
또한, 추출이 시간이 지남에 따라 업데이트 될 때 특정 명령이 유효하거나 유효하지 않을 수 있습니다. brew doctor
그러나 최신 문제 해결을 보장합니다.
다른 답변은 가능한 한 정확하지만 이 문제가 발생하는 이유 와 그 근본 원인을 해결하는 방법에 대해서는 답변하지 않습니다 .
원인
이 문제에는 두 가지 가능한 원인이 있습니다.
- homebrew 설치는 현재 사용중인 사용자 이외의 사용자로 수행되었습니다. Homebrew는 원래 설치 한 사용자 만 사용하기를 원합니다.
- brew를 사용하지 않고 / usr / local에 쓰는 일부 소프트웨어를 설치했습니다. 이것이
brew doctor
당신이 그것을 실행하는 경우 제안 하는 원인 입니다.
해결책
멀티 유저 홈브류
여러 사용자 계정이 있고 그 중 하나 이상이 brew를 사용할 수있게하려면 몇 가지 단계를 수행해야합니다. 그렇지 않으면 사용자를 전환 할 때마다 Homebrew 파일 구조의 소유권을 지속적으로 변경해야합니다. 좋은 생각이 아닙니다.
자세한 지침은 온라인 에서 찾을 수 있지만 빠른 답변은 다음과 같습니다.
brew라는 그룹을 만듭니다 .
- 개방형 시스템 환경 설정
- 계정 클릭
- "+"를 클릭하십시오 (필요한 경우 먼저 잠금 해제)
- 에서 새로운 계정 을 선택 그룹
- 입력 양조
- 그룹 만들기를 클릭 하십시오
- 추출 그룹을 선택하고 추출 을 사용하려는 사용자 계정을 추가하십시오.
- / usr / local 폴더 그룹 소유권을 변경하십시오.
sudo chgrp -R brew /usr/local
- 그룹으로 / usr / local에 쓰기 권한을 추가하려면 권한을 변경하십시오.
sudo chmod -R g+w /usr/local
- homebrew 캐시 디렉토리 그룹을 변경하십시오.
sudo chgrp -R brew /Library/Caches/Homebrew
- homebrew 캐시 디렉토리 권한을 변경하십시오.
sudo chmod -R g+w /Library/Caches/Homebrew
단일 사용자 사제
Homebrew에서 둘 이상의 사용자를 사용하지 않으려는 경우 제안에 따라 다른 답변에서 제공하는 솔루션 brew doctor
이면 충분합니다.
sudo chown -R $(whoami) /usr/local
sudo chown -R $(whoami) /Library/Caches/Homebrew
확인
이 단계 후에 새 그룹 멤버십을 적용하기 위해 로그 아웃했다가 다시 로그인했다고 가정하면 브루 그룹의 brew doctor
모든 사용자가 성공한 것으로보고해야 합니다 (다중 사용자 경로로 이동 한 경우). 단일 사용자 홈 브루에 대해 방금 수정 한 경우 그룹 멤버십이 변경되지 않았으므로 로그 아웃했다가 다시 로그인 할 필요가 없습니다.
찾고있는 사람들에게는 /usr/local/sbin
쓰기 가능한 오류가 아닙니다.
업데이트 :/usr/local/someOtherFolderName
예를 들어 수 있습니다 /usr/local/include
. 다음을 사용하여 해당 폴더를 만들어야합니다.
sudo mkdir someOtherFolderName
먼저 sbin
폴더를 작성하십시오. 여기 에는 sudo
특권 이 필요합니다.
cd /usr/local
sudo mkdir sbin
sudo chown -R $(whoami) $(brew --prefix)/*
brew link yourPackageName
내 특정 설정에서 다음 명령이 작동한다는 것을 알았습니다.
brew doctor
그리고 그것은 내 오류가 어디에 있는지, 그리고 위의 주석과 약간 다른 명령을 보여줍니다.
sudo chown -R $(whoami) /usr/local/opt
Mac OS High Sierra를 실행하는 동안 (이 게시물이 작성된 후 4 년 동안 부여 된)이 문제가 발생한 사용자의 경우 여기에 설명 된 단계로 문제가 해결되었습니다. 기본적으로 brew 제거 및 재설치에 대해 간략하게 설명합니다.
그 단계를 실행 한 후에 brew link
는 매력처럼 일했습니다!
나를 위해 솔루션을 실행했다 brew update
.
따라서 먼저이 작업을 수행하십시오.
이것은 홈브류에 익숙한 사람들에게는 일반적인 관행 일 수 있지만 저는 그 사람들 중 하나가 아닙니다.
편집 : 나는 brew doctor
이 같은 질문에 대한 @kinnth의 대답에서 제안한대로 실행하여 업데이트해야한다는 것을 알았습니다 .
일반적인 문제 해결 워크 플로는 다음과 같습니다. 1. 실행 brew update
2. 실행 해도 도움 brew doctor
이되지 않는 경우 지침을 따르십시오. 3. 스택 오버플로 확인에 도움이되지 않는 경우
나는 같은 문제를 발견했으며 세 단계로 해결할 수 있습니다.
1 단계
sudo chown -R $(whoami) $(brew --prefix)/*
2 단계
brew doctor
3 단계
brew prune
그래도 여전히 연결 문제를 얻는 경우에, 말할 수 있습니다 mysql
, 단지 쓰기
brew link mysql
작동합니다.
브루 링크 링크를 수행하는 동안 또한 다음과 같은 문제가 있습니다.
오류 : include / node / usr / local / include를 symlink 할 수 없습니다. 쓰기 가능하지 않습니다.
/usr/local/Cellar/node/9.3.0 연결 중 ... 오류 : 권한이 @ dir_s_mkdir-/ usr / local / lib에서 거부되었습니다.
위의 문제를 해결하려면 / usr / local /로 이동하여 'include'및 'lib'폴더의 사용 가능 여부를 확인하십시오. 해당 폴더를 사용할 수없는 경우 수동으로 작성하십시오.
brew install node를 다시 실행 하십시오.
현재 사용자가 해당 경로 에 쓸 수 없기 때문 입니다. 따라서 r / w (읽기 / 쓰기) 권한을 변경하려면 1. 터미널 또는 2. 그래픽 "정보 입수"창을 사용할 수 있습니다.
1. 터미널 사용
Google 은 터미널에서 chmod / chown (변경 모드 / 변경 소유자) 명령을 사용하는 방법
2. 그래픽 '정보 입수'사용
권한을 변경하려는 폴더 / 파일을 마우스 오른쪽 버튼으로 클릭 한 다음 정보 입수 를 열면 하단에 아래와 같이 r / w 권한을 쉽게 변경할 수있는 창이 표시됩니다.
가능하면 임시 작업 후에 권한을 "읽기 전용"으로 다시 변경하십시오.
Sophos Anti-Virus 사용자와 관련하여 다음을 발견했습니다.
https://stackoverflow.com/a/32981184
https://community.sophos.com/products/free-antivirus-tools-for-desktops/f/17/t/10029
요컨대, Sophos는 특정 / usr / local 디렉토리의 권한을 변경하고 있습니다. Sophos가이를 패치했으며 수정 사항은 버전 9.4.1에 포함되어 있습니다.
내 문제는
Error: Could not symlink share/man/man7/ABORT.7
/usr/local/share/man/man7 is not writable.
chown
도움이되지 않았지만 brew doctor
조언을 따르고이 경고가 도움이되었습니다.
Warning: Broken symlinks were found. Remove them with `brew prune`:
/usr/local/share/man/man3/*
결국 brew prune
잘 작동했습니다!
파인더의 폴더로 이동 한 후 마우스 오른쪽 버튼을 클릭하고 "정보 입수"를 선택하면 폴더의 "공유 및 권한"섹션으로 이동하여 "읽기 및 쓰기"를 "모두"에게 허용 할 수 있습니다.
이것이 symlinks 가이 오류로 전달되도록하는 것입니다. 또한 brew는 아무것도 변경하지 않은 것처럼 폴더에 대한 권한을 재설정하는 것처럼 보입니다.
익숙하지 않은 사람들을 위해 :
sudo chown -R YOUR_COMPUTER_USER_NAME PATH_OF_FILE
/usr/local
설치중인 패키지 의 디렉토리가 이미 있으면 이 디렉토리를 삭제 해보십시오.
In my case I had previously installed the package I was trying to install without using brew, and had then uninstalled it. There was a directory /usr/local/<my_package>/
left over from that previous install. I deleted this folder (sudo rm -rf /usr/local/<my_package>/
) and after that the brew link step was successful.
'Programming' 카테고리의 다른 글
IIS 7.5의 ASP.NET MVC (0) | 2020.03.03 |
---|---|
메모장 + +는 모든 줄에 추가 (0) | 2020.03.03 |
파이썬 프로그래밍에서 탭과 공백 (0) | 2020.03.03 |
좋아하는 Visual Studio 키보드 단축키 (0) | 2020.03.03 |
Git diff -w는 줄의 시작과 끝에서만 공백을 무시합니다. (0) | 2020.03.03 |