Mac에서 Discourse(개발용)를 설치할 때 다음과 같은 오류가 발생합니다:
ERROR: While executing gem ... (Gem::FilePermissionError)
You don't have write permissions for the /Library/Ruby/Gems/2.6.0 directory.
이 문제를 어떻게 해결할 수 있을까요?
감사합니다.
Mac에서 Discourse(개발용)를 설치할 때 다음과 같은 오류가 발생합니다:
ERROR: While executing gem ... (Gem::FilePermissionError)
You don't have write permissions for the /Library/Ruby/Gems/2.6.0 directory.
이 문제를 어떻게 해결할 수 있을까요?
감사합니다.
여기에서 Discourse 스크립트 설치를 실행해 보셨나요?
macOS Catalina를 사용 중이신가요? 그렇다면 Discourse가 시스템의 ruby 버전을 사용하려는 문제로 인해 이런 현상이 발생하는 것으로 보입니다. 이 문제를 피하려면 rbenv와 같은 도구를 사용해 ruby 버전을 설정하는 것이 좋습니다.
저는 MacOS Catalina를 사용하고 있습니다. 해당 스크립트를 실행해 보았지만, 이미 설치되어 있었기 때문에 중간에 실패했습니다.
which rbenv의 출력을 붙여넣어 주시겠어요?
그리고 사용자 정의 .bashrc 또는 .zshrc가 있나요?
/usr/local/bin/rbenv
확실하지 않습니다. 없다고 생각하지만, 있을 수도 있겠네요.
discourse 디렉터리로 cd한 후 which ruby 명령의 출력을 공유해 주시겠어요?
아, 못 봤네요. 해봤더니 /usr/bin/ruby가 나왔어요
네, Discourse에 시스템 Ruby를 사용하고 있어서 해당 문제가 발생하는 것입니다.
echo $PATH를 입력하여 PATH 변수를 확인해 보세요. /Users/<사용자 이름>/.rbenv/bin과 /Users/<사용자 이름>/.rbenv/shims가 목록에 표시되어야 합니다.
표시되지 않는 경우, 셸 설정 파일인 .bashrc 또는 .zshrc에 추가하세요. ZSH의 경우 다음과 같이 추가할 수 있습니다: export PATH=/path/number/1:/path/number/2:$PATH
이미 표시되는 경우, 순서를 확인해 보세요. 체인에서 뒤에 위치한다면 시스템 Ruby보다 먼저 로드되지 않아 Discourse에 시스템 Ruby가 사용되고 있을 가능성이 높습니다. 위의 방법과 동일한 방식으로 해당 경로를 체인에서 더 앞쪽으로 이동시킬 수 있습니다.
david님이 개발 환경 설정에 Ruby 버전 체크를 추가한 거 아닌가요? ![]()
그것은 테마 CLI를 위한 것이었다고 생각합니다.
여기에 동등성 검사를 추가할 방법이 있을까요?
Discourse에서 Ruby 버전 호환성을 이미 확인하고 있다고 생각합니다. 여기서는 macOS에 번들링된 시스템 레벨 Ruby 버전에 대해 Discourse 번들이 젠을 작성할 수 없다는 점이 문제입니다. 구체적인 세부 사항은 제가 틀렸을 수 있지만, macOS Catalina에서 Apple이 도입한 변경 사항과 관련이 있다고 생각합니다. 저도 같은 문제에 부딪혀서 원인을 파악하는 데 상당한 디버깅이 필요했습니다.
OP와 동일한 오류를 경험했습니다.
다음 내용을 읽어 보았습니다:
실제로는 파일 권한 오류가 아니라, 설치 프로그램이 잘못된 위치를 보고 있다고 생각했습니다.
터미널을 다시 시작하면 .zshrc 파일이 다시 로드된다는 것을 알았기 때문에 터미널을 닫고 다시 열었습니다.
설치 스크립트를 다시 실행했으며, 더 이상 해당 오류가 발생하지 않았습니다.
설치 과정에서 터미널을 적절하게 새로 고침하면 이 문제가 해결될 수 있을까요? ![]()