권한 오류와 함께 실패하면 gem을 설치하거나 RubyGem을 업데이트하는 방법


559

를 사용하여 gem install mygemRubyGems를 사용 하거나 업데이트 하여 gem을 설치하려고 하는데이 gem update --system오류로 실패합니다.

ERROR:  While executing gem ... (Gem::FilePermissionError)
You don't have write permissions for the /Library/Ruby/Gems/2.0.0 directory.

누구든지 이것을 해결하는 방법을 알고 있습니까?


5
여기 내 솔루션입니다 : stackoverflow.com/questions/34071868/...
LanceP

2
메신저 업데이트 cocoapods 올바른 : sudo 보석 업데이트 cocoapods
Abhishek Thapliyal

60
sudo chown -R $USER /Library/Ruby/Gems/
vaskort

2
단순히이 명령을 사용하여 나를 위해 일했다 : sudo gem install mygem
Jayprakash Dubey

1
zsh shell을 사용하고 있었고 ~ / .zshrc의 경로 문제였습니다. 나는 파일의 끝에이 줄을 사용하고 나를 위해 일했다 : export PATH = "$ HOME / .rbenv / shims : $ PATH"
rosnk

답변:


317

/Library/Ruby/Gems/1.8 디렉토리에 대한 쓰기 권한이 없습니다.

바로 거기에 글을 쓸 수있는 권한이 없음을 의미합니다.

Apple에서 자체적으로 설치 한 Ruby 버전입니다. 권한 문제에 대해 잘 모르기 때문에 수행중인 작업을 아는 경우 약간 수정 해도 괜찮습니다. 계속 진행하는 것은 좋지 않습니다.

대신 rbenv 또는 RVM 을 사용하여 홈 디렉토리의 샌드 박스에 설치된 별도의 Ruby를 관리하여 시스템 Ruby를 망칠 염려없이 수정 / 접기 / 스핀들 / 변경을 수행 할 것을 강력히 제안합니다 .

둘 사이에서 rbenv를 사용하지만 과거에는 RVM을 많이 사용했습니다. rbenv는 Ruby 설치를 관리하기 위해보다 "실제적인"접근 방식을 취합니다. RVM은 많은 기능을 가지고 있으며 매우 강력하지만 결과적으로 더 방해가됩니다. 두 경우 모두, 읽어 당신이 선택 중 설치를 시작하기 전에 그들을 위해 몇 시간을 설치 문서를.


176
그래도 별도의 Ruby 라이브러리를 사용할 필요는 없습니다. 마이클이 위에서 제안한 것처럼 '스도'를 앞에 두십시오.
serraosays

37
Apple의 Ruby 설치 소유권 변경은 시스템 설치 / 업그레이드 및 디스크 유틸리티가 디렉토리의 소유권 및 권한을 자동으로 되돌 리거나 복구 할 수 있기 때문에 좋은 생각이 아닙니다. 이는 사용자를 실망시키고 해당 디렉토리의 쓰기 권한 / 소유권을 가질 것으로 예상되는 OS 및 코드를 좌절시킬 수 있습니다. Apple은 Ruby를 사용하는 앱을 설치하고 특정 버전이나 동작을 예상 할 수 있으므로 깨질 수 있습니다. RVM 또는 rbenv를 사용하는 것이 더 쉽고 더 안전하고 걱정하지 않아도되는 이유는 무엇입니까?
Tin Man

203
실제로 루비 개발자를하지 않고 30 분 동안 엉망으로 만들고 싶지 않은 사람들을 위해이 크리스탈 것들이 무엇인지 알아 내려고 노력하십시오. brew install ruby애플 설치를 방해하지 않는 깨끗한 방법으로 종속성 문제를 해결합니다. sudo초기 설치에서 이미 업데이트를했는데 수행 한 작업에 대해 걱정이된다면 다음과 같이 취소 할 수 있습니다.cd /System/Library/Frameworks/Ruby.framework/Versions;sudo rm Current; sudo ln -s 1.8 Current;
Louis

21
" I did the sudo tangle and wound up modifying my pre-installed Ruby. I did your steps to try to fix the problem, but now when I do irb or ruby -v, I get command not found. What's going on and is there a fix"이것은 단지 사람들이 사용하지 말아야하는 이유에 더 무게 추가 sudo또는 chown. 한숨 ....
틴 맨

55
해결 : El Captain brew install ruby에서 터미널을 닫은 후 다시 열면됩니다.
Fmessina 2016 년

421

다음 --user-install을 사용 하는 대신 추가하십시오 sudo.

gem install mygem --user-install

4
왜 귀하의 답변이 이전에 게시되지 않았는지 모르겠습니다. --user-install옵션은 분명히있다 잠시 동안 주변에 있었다. 나는 당신이 이것을 일찍 작성했으면 좋겠다. =)
마이클 - 어디의 클레이 셔키

7
맨 위로 이동해야합니다! sudo 또는 su를 사용하여 설치하면 모듈에 권한 시스템이 적용되므로 전 세계적으로 설치된 패키지가 다른 방법으로 설치된 패키지 또는 다른 프로젝트의 종속성과 충돌 할 수 있습니다. rbenv를 사용하려면 다른 소프트웨어를 설치해야하며 복잡한 계층이 추가됩니다.
허버트 Grzeskowiak

7
이것은 작동하지만 경고 : '경고 : PATH에 /Users/<username>/.gem/ruby/2.0.0/bin이 없으면 gem 실행 파일이 실행되지 않습니다.' 다음 링크는 vi를 사용하지 않고도 경로를 업데이트하는 방법에 대한 유용한 지침을 제공합니다. hathaway.cc/post/69201163472/…
dawid

4
이것은 간단하고 논리적입니다. 당신이 당신의 bashrc에의하지 않은 경우 루비 경로를 추가 if which ruby >/dev/null && which gem >/dev/null; then PATH="$(ruby -rubygems -e 'puts Gem.user_dir')/bin:$PATH" fi 소스로 <br> : guides.rubygems.org/faqs/#user-install
인더 쿠마르 라 토레에게

1
애플 (루비 설치) 시스템으로 망칠 수 있습니까?
Daniel Springer

93

실제로 Ruby 버전 관리자를 사용해야합니다.

하나를 올바르게 사용하면 gem update명령을 실행할 때 권한 문제를 예방하고 해결할 수 있습니다 .

rbenv 권장 합니다 .

그러나 Ruby 버전 관리자를 사용하더라도 동일한 오류 메시지가 계속 표시 될 수 있습니다.

만약 당신이 rbenv를 사용하고 있다면, ~/.rbenv/shims디렉토리가 시스템 Ruby의 경로 앞에 있는지 확인하십시오 .

$ echo $PATH 로드 경로의 순서를 보여줍니다.

shims 디렉토리가 시스템 Ruby bin 디렉토리 다음에 오는 경우 ~/.bashrc파일 을 편집하여 이를 마지막 export PATH 명령으로 두십시오. export PATH=$HOME/.rbenv/shims:$PATH

$ ruby -v 사용중인 Ruby 버전을 보여줍니다

이것은 내가 현재 시스템 버전의 Ruby를 사용하고 있음을 보여줍니다 (보통 좋지 않습니다)

$ ruby -v
ruby 1.8.7 (2012-02-08 patchlevel 358) [universal-darwin12.0]

$ rbenv global 1.9.3-p448 미리 설치된 최신 버전으로 전환합니다 (아래 참조 참조).

이것은 내가 최신 버전의 Ruby를 사용하고 있음을 보여줍니다 (Gem :: FilePermissionError를 일으키지 않을 것입니다)

$ ruby -v
ruby 1.9.3p448 (2013-06-27 revision 41675) [x86_64-darwin12.4.0]

일반적으로 sudo로 gem 명령을 시작하지 않아도됩니다. 그렇게해야한다고 생각되면 무언가 잘못 구성되었을 수 있습니다.

rbenv에 대한 자세한 내용은 다음을 참조하십시오.


7
당신이 사용하는 경우 당신은 패스 자신과 주위를 엉망 필요가 없습니다 rbenv당신이 따르는 경우, 브루 설치 지침을 , 당신이해야 할 모든 추가입니다 eval "$(rbenv init -)"쉘 설정, 그리고 rbenv당신의 설정을 처리해야 PATH당신을 위해입니다.

감사. 나는 'rbenv global'을 잊어 버렸으므로 여전히 시스템 루비를 사용하고 있었고 보석 설치가 실패했습니다.
Graham Perks

75

왜 안 해?

sudo gem update --system

39
루트로 gem을 설치하는 것은 좋은 생각이 아닙니다. stackoverflow.com/questions/2119064/…
spuder

에 문제가 brew upgrade Error: Permission denied...있었습니다. 이것은 그것을 고쳤다. 감사!
Ostap Andrusiv

12
SUDO를 사용하지 마십시오.이 작업을 수행해야하는 경우 설정에 문제가 있습니다. rbenv 또는 rvm을 사용하십시오.
크리스 허프

14
모든 사람이 권한 문제에 응답하여 항상 명령 앞에 sudo를 던지는 이유는 무엇입니까? 이것이 최선의 방법은 무엇입니까?
Steven

hyh : qzc.xcodeproj ylgwhyh $ gem install cocoapods 오류 : gem 실행 중 ... (Gem :: FilePermissionError) /Library/Ruby/Gems/2.0.0 디렉토리에 대한 쓰기 권한이 없습니다.
ylgwhyh

40

이렇게하면 MacOs MojaveMacOs Catalina 의 문제가 깔끔하게 해결됩니다 .

brew install ruby

그런 다음 GEM_HOME을 사용자 디렉토리로 설정하십시오. 터미널에서 :

Bash:

echo '# Install Ruby Gems to ~/gems' >> ~/.bashrc
echo 'export GEM_HOME=$HOME/gems' >> ~/.bashrc
echo 'export PATH=$HOME/gems/bin:$PATH' >> ~/.bashrc
source ~/.bashrc

또는 켜져있는 경우 Zsh:

echo '# Install Ruby Gems to ~/gems' >> ~/.zshrc
echo 'export GEM_HOME=$HOME/gems' >> ~/.zshrc
echo 'export PATH=$HOME/gems/bin:$PATH' >> ~/.zshrc
source ~/.zshrc

2
이것을 어떻게 알았습니까? 일했다!
kuzdu

2
당신은 남자입니다! 하이 파이브는 정말 매력처럼 작동합니다. 고마워
mrDinkelman

1
내가 달릴 때까지 이것은 효과가 없었습니다 xcode-select --install. 확장을 컴파일하는 데 필요합니다.
Marc Perrin-Pelletier

나는 이것을 실행했고 이것에 의해 수행 된 변경 사항을 재설정 할 수 있기를 원합니다. 복원하는 방법을 알고 있습니까? @Fmessina
KarenAnne

이것은 작동해야합니다 : ~/.bashrc또는 ~/.zshrc파일을 편집 하고 추가 된 3 줄을 제거한 다음 source ~/.bashrc명령을 다시 실행하십시오.
Fmessina

34

나에게 문제는 rbenv적절한 버전을 전체적으로 설정하고 잊어 버렸기 때문 입니다.

그래서 나는 그것을 설정해야했다. rbenv global xxx

내 경우에는 설치를 2.0.0-p247했으므로 다음 명령을 실행해야했습니다.

rbenv global 2.0.0-p247
rbenv rehash

그런 다음 모두 잘 작동했습니다.


3
이미 rbenv를 사용하고 OSX를 최신 버전으로 업그레이드 한 후 gem을 설치할 때 Permission 오류가 발생하기 시작한 경우 : rbenv 버전 rbenv global 2.1.1을 설정하여 시작한 다음을 따라야합니다 rbenv rehash. 이제 gem install명령을 다시 실행하십시오 .
njappboy

1
^이 + 터미널을 다시 시작합니다.
XåpplI'-I0llwlg'I-

1
미래의 탐험가 : rbenv의 재탕는 더 이상 사용되지 github.com/rbenv/rbenv-gem-rehash
TCannadySF

나를 위해 완벽하게 일했습니다! 그것은이었다 rbenv rehash내가 누락되었습니다.
jamesmarkcook

권한이 부족한 시스템 루비이고 전역 루비가 설정되지 않은 경우 rbenv는 시스템 루비를 사용했을 것입니다. 이것은로 확인됩니다 rbenv versions.
데니스

23

경로를 수정해야합니다.

이 수정 프로그램이 작동하는지 확인하려면 다음을 실행하십시오.

which gem

권한이없는 디렉토리를 출력해야합니다.

/usr/bin/gem

이 문제를 해결하려면 다음 단계를 수행하십시오.

  1. 프로파일에 복사해야 할 경로를 결정하십시오.

    rbenv init -

    출력의 첫 번째 라인은 프로파일에 복사해야하는 라인입니다.

    export PATH="/Users/justin/.rbenv/shims:${PATH}" #path that needs to be copied
    source "/usr/local/Cellar/rbenv/0.4.0/libexec/../completions/rbenv.zsh"
    rbenv rehash 2>/dev/null
    rbenv() {
      typeset command
      command="$1"
      if [ "$#" -gt 0 ]; then
        shift
      fi
    
      case "$command" in
      rehash|shell)
        eval `rbenv "sh-$command" "$@"`;;
      *)
        command rbenv "$command" "$@";;
      esac
    }
  2. 프로파일 경로를 복사하여 저장하십시오.

  3. 프로필을 다시로드하십시오 ( source ~/.zshenv나를 위해).

  4. 를 실행하십시오 rbenv rehash.

이제 실행할 때 which gem권한이있는 로컬 경로를 가져와야합니다.

/Users/justin/.rbenv/shims/gem

그것은 내 상황에서 문제였습니다. 당신은 포함 할 수 있어야합니다 eval "$(rbenv init -)"귀하의 ~/.bash_profile수 있도록 모든 필요한 변경.
nyi

가장 좋은 답변입니다. 내 프로필 이름은 .bash_profile이며 다음과 같이 파일을 열 수 있습니다. touch ~ / .bash_profile; ~ / .bash_profile을 열고 1 번 지점에서 언급 한 줄을 추가하십시오.
CarmenA


17

이것은 나를 위해 일했습니다. 또한, 이전에 gem을 root로 설치 한 경우 소유권을 다시 사용자에게 변경하여 (보안 측면에서) 문제를 해결합니다.

sudo chown -R `whoami` /Library/Ruby/Gems

1
큰 NO! /Library폴더 에 대한 권한을 변경하지 마십시오 . 시스템은 향후 업데이트에서 중단 될 수 있습니다. (늦은 답변 죄송합니다)
랩터

@Raptor "/ Library"가 아닌 하위 폴더에 대한 권한을 수정하고 있습니다. 내 경우에는 실수로 보석을 루트로 설치 했으므로 실행 취소하고 싶었습니다. 이론적으로 생각할 수없고 내가 관찰 한 결과는 없습니다. 궁금합니다. 왜 이것이 나쁜 생각이라고 생각하십니까?
thebiggestlebowski

경로는 시스템입니다. macOS의 추가 업데이트가 중단 될 수 있습니다.
랩터

gem은 기본적으로이 위치에 설치됩니다. 일반 사용자 대신 루트 (sudo)로 실수로 설치 되었기 때문에 사용할 수 없었습니다. 내가 한 일의 결과는 처음에 $ USER로 설치 한 것과 같습니다. 나는 해를 보지 못한다. 여기에있는 다른 답변의 대부분은 동일한 결과 / 솔루션을 제안하지만 다른 방법으로 달성 할 수 있습니다. 여전히 문제가 보이지 않습니다. / Library 아래에 gem을 설치해서는 안된다는 말입니까?
thebiggestlebowski

15

두 가지 경로가 있습니다. rbenv 또는 RVM을 사용하십시오. 아래에는 두 가지 요리법이 있습니다. 시작하기 전에 gem에 대한 로컬 문서 설치를 해제하고 싶을 것입니다.

echo "gem: --no-ri --no-rdoc" >> ~/.gemrc

그때:

install rbenv

install ruby-build

운영:

rbenv install 2.1.2 (or whatever version you prefer)
rbenv global 2.1.2
gem update --system

이것은 로컬 디렉토리에 최신 버전의 gem 시스템을 설치합니다. 즉, 시스템 구성을 방해하지 않습니다. 이 질문을한다면 시스템 보안을 망칠 필요가 없으며 처음 시작한 문제를 피할 수있는 쉬운 방법을 찾는 것보다 어떤 문제가 발생했는지 이해하는 데 더 많은 시간을 할애하게됩니다. 운영 체제 및 프로그래밍에 대한 자세한 정보는 나중에 InfoSec을 학습하십시오.

대안으로 'RVM'을 대신 사용하십시오. rvm설치하려면 다음을 실행하십시오.

rvm install 2.1.2
rvm use 2.1.2
gem update --system

결과는 동일하며 시스템 버전을 방해하지 않는 로컬 Ruby 및 Gem 시스템으로 끝납니다. Homebrew 또는 오버 라이딩 시스템 라이브러리 등이 필요하지 않습니다.


13

보석 sudo적은 이 방법을 찾았습니다 .

  1. brew install rbenv ruby-build
  2. sudo gem update --system
  3. 다음에 내보내기를 추가하십시오 .bashrc.

    export RBENV_ROOT="$(brew --prefix rbenv)"
    export GEM_HOME="$(brew --prefix)/opt/gems"
    export GEM_PATH="$(brew --prefix)/opt/gems"
  4. 그리고 마지막으로 이것을 당신의 ~/.gemrc:

    gem: -n/usr/local/bin
  5. gem update --system


내가 사용 brew install rebenv ruby-build후가, system내 디렉토리 후? 이 문제를 일으킨 원인과 그 제거 방법은 system무엇입니까?
7537247

13

아래의 원래 답변을 사용하기 전에 nathanwhy의 답변을 시도하십시오 . 그의 추천은 루비 버전을 결정하거나 결정할 --user-install필요없이 동일한 목적을 달성해야합니다 .bash_profile.


특정 루비 버전에 대해 걱정이 없다면, 강력한 루비 환경 관리자 옵션을 건너 뛰고 다음 행을 ~/.bash_profile다음에 추가하십시오 .

export GEM_HOME="$HOME/.gem/ruby/2.0.0"
export GEM_PATH="$HOME/.gem/ruby/2.0.0"

경로는 원래 출력에서 ​​도난되었습니다 gem env.

RubyGems Environment:
  - RUBYGEMS VERSION: 2.0.14
  - RUBY VERSION: 2.0.0
  - INSTALLATION DIRECTORY: /Library/Ruby/Gems/2.0.0
  - RUBY EXECUTABLE: /System/Library/.../2.0/usr/bin/ruby
  - EXECUTABLE DIRECTORY: /usr/bin
  - RUBYGEMS PLATFORMS:
    - ruby
    - universal-darwin-14
  - GEM PATHS:
     - /Library/Ruby/Gems/2.0.0
     - /Users/mylogin/.gem/ruby/2.0.0 # <-- This guy, right here.
     - /System/Library/.../usr/lib/ruby/gems/2.0.0
  ...

sudoing이 필요 하지 않으며 Apple이 제공 한 이미 설치된 루비를 사용할 수 있습니다.


3
+1 : 이것은 저에게 효과적이었습니다. 모든 사람이 사용중인 시스템의 시스템 관리자 인 것은 아니므로 모든 사람이 'sudo', 'chown'또는 이와 유사한 도구에 액세스 할 수있는 것은 아닙니다. 비슷한 맥락에서 사람들은 모든 사용자가 공유하는 디렉토리가 아닌 사용자의 홈 디렉토리에있는 디렉토리에 gem을 설치하는 "gem install --user-install"을 알고 있어야합니다.
Some Guy

12

나는를 할 필요 rbenv rehash가 내 로컬 보석 라이브러리를 가리키는 것입니다 때문에.

gem 관리자가 시스템 라이브러리를 가리키고있는 것 같습니다. 따라서 권한을 엉망으로 만드는 대신 관리자가 "리해시"와 동일한 작업을 수행하여 로컬로 가리 키도록합니다.


3
미래의 탐험가 : rbenv의 재탕는 더 이상 사용되지 github.com/rbenv/rbenv-gem-rehash
TCannadySF

12

더 오래되고 현명한

내가 여기서 말하는 것을하지 말고, 당신이 사용할 때마다 조심하십시오 sudo. 당신은 아마 rbenv당신이하고있는 일을 분리 하기 위해 무언가를 사용하고 싶을 것입니다 .


방법

에 대한 학습 chown

커맨드 라인이 마음에 드는지는 모르겠지만 시스템에 패키지를 설치하는 도구를 사용하여 모든 프로젝트에서 작업 할 수 있습니다.

chown 내가 알 수있는 한, 변경 소유권을 의미합니다.

내가이 대답을 찾은 이유는 gem install오늘이 오류를 던 졌기 때문 입니다.

ERROR:  While executing gem ... (Gem::FilePermissionError)
    You don't have write permissions into the /var/lib/gems/1.9.1 directory.

이것은 사용하기에 완벽한 기회 chown입니다. 루비가 액세스해야하는 디렉토리를 우리에게 주었고, 자주 사용하는 디렉토리 인 것 같습니다.

이 경우 문제를 해결하기 위해 알아야 할 사항이 세 가지 뿐이지 만 chown훨씬 강력하며 지금 설명 할 것보다 훨씬 많은 유연성을 부여합니다. 자세한 내용은 하단의 소스를 참조하십시오.

두 가지

  1. 사용자 이름
  2. 예배 규칙서

쉘에서 사용자 이름을 찾는 것은 쉽습니다. 프롬프트를보십시오. 광산은 다음과 같습니다

breadly@breadly-desktop:~\Desktop

현재 사용자는 앞에있는 이름 @입니다. 오류 메시지에서 디렉토리를 알고 있지만 두 가지 중에서 선택할 수 있습니다. 를 사용하여 현재 버전으로 권한을 제한 ../gems/1.9.1하거나을 사용하여 모든 버전의 gem에 대한 쓰기 권한을 부여 할 수 있습니다 ../gems.

실제로 소유권을 변경하는 명령은 다음과 같습니다.

chown -R $(whoami) /absolute/path/to/directory

-R플래그로 알려지고있다 -R플래그는 일반적으로 재귀 적으로 뭔가를 할 수있는 명령을 알려줍니다 정도까지에 즉 디렉토리에 포함되어있는 모든 일에서 명령을 수행하고, 디렉토리에 포함 된 모든 것들을 포함하고, 다른 것은 없습니다.


또한 사용자가 속한 그룹을 찾으려면 이것을 참조하십시오. stackoverflow.com/questions/350141/…
Breedly

3
그러나 / usr / local / bin 디렉토리에 설치해야하는 경우 소유권 변경에주의해야합니다.
Breedly

16
/ usr, / Library 또는 / var 경로에서 소유권을 변경하는 것은 나쁜 생각입니다. 파일 및 드라이버에 더 이상 액세스 할 수 없어 시스템이 중지 될 수 있으며 설치 프로그램에서 루트 : 휠이 더 이상 경로를 소유하지 않는다고 감지하면 향후 업데이트가 중단 될 수 있습니다. 손상을 수정하는 것은 실제로 어려울 수 있으며 일반적으로 OS를 다시 설치하는 것이 가장 좋습니다. 경험이 많거나 경험이 부족한 사용자는 파일 / 디렉토리가 안전 할 수있는 것을 이해하기 위해 OS에 대해 충분히 알지 못하므로 집에서 시도하지 않도록주의해야합니다.
틴 맨

Lol 이것은 당황스러운 답변입니다. :) 더 오래되고 현명한 것 같아요.
Breedly

11

Mac을 포맷했는데 많은 제안 된 솔루션이 작동하지 않았습니다. 나를 위해 일한 것은 올바른 순서의 명령입니다.

  1. Homebrew를 설치하십시오.

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

    brew install ruby
  3. 나침반 설치 :

    sudo gem install compass

sudogem으로 무언가를 설치 하기 위해 사용할 필요는 없습니다 . 사용 sudo하면 시스템이 소유 한 Ruby가 아닌 시스템이 소유 한 Ruby에 설치됩니다. 샌드 박스 루비를 사용하면 프로그래밍 할 때 관리 및 사용이 훨씬 쉬워집니다. 여러 개의 서로 다른 인스턴스를 만들고 다른 작업을 시도한 다음 완료되면 파기 할 수 있기 때문입니다.
Tin Man


6

나를 위해 일하십시오 :

sudo gem uninstall cocoapods

sudo gem install cocoapods

놀라운 나를 위해 일했다! 감사. rbenv 또는 RVM 설치 노력 절약
NaXir

5
다른 의견에서 언급했듯이 보석을 루트로 설치하는 것은 위험한 관행이기 때문에 다운 보팅. 설치 프로그램은 문자 그대로 시스템에 무엇이든 할 수 있습니다.
Some Guy

@SomeGuy : "설치 프로그램은 문자 그대로 무엇이든 할 수 있습니다." 설치 프로그램이 시스템을 망 쳤던 시간은 생각할 수 없지만 내가 한 시간을 분명히 기억할 수 있습니다. sudo그것은 잘못 된 일을 그렇게 쉽게 할 수 있기 때문에 초보자가 좋아하는 명령이며, 그것을 사용할 때 적절하게 편집증을 배우는 데 몇 년이 걸립니다.
Tin Man

1
가장 좋은 답변 !!!! 이 2 명령을 실행 한 후 터미널을 다시 시작하십시오. 고마워 !!!
nosequeweaponer 2014

4

루비 버전이 올바른지 확인하십시오. 그렇지 않은 경우 변경하십시오.

이것은 나를 위해 작동합니다 :

$ rbenv global 1.9.3-p547
$ gem update --system

이것이 더 나은 해결책입니다 : update> chown. 감사! . 나도 달렸다brew install ruby
Jose Llausas

4

rbenv를 설치하십시오 brew install rbenv;

그런 다음 eval "$(rbenv init -)"~ / .bash_profile (또는 MacOS의 ~ / .zshrc) 끝에 두십시오 .

새 터미널을 열고 실행 gem install ***하면 작동합니다!


나를 위해 작동하지 않았다 ❯ brew install rbenv -q Warning: rbenv 1.1.1 is already installed and up-to-date To reinstall 1.1.1, run `brew reinstall rbenv` ~/.gem/ruby/2.3.0/gems/colorls-1.1.1 ❯ eval "$(rbenv init -)" ~/.gem/ruby/2.3.0/gems/colorls-1.1.1 ❯ gem update Updating installed gems Updating CFPropertyList ERROR: While executing gem ... (Gem::FilePermissionError) You don't have write permissions for the /Library/Ruby/Gems/2.3.0 directory.
최대 Coplan

2

bobbdelsol이 지적한 것처럼 rehash는 나를 위해 일했습니다.

==> which ruby
/usr/bin/ruby

==> rbenv install 1.9.3-p551
Downloading ruby-1.9.3-p551.tar.bz2...
-> https://cache.ruby-lang.org/pub/ruby/1.9/ruby-1.9.3-p551.tar.bz2
Installing ruby-1.9.3-p551...
Installed ruby-1.9.3-p551 to /Users/username/.rbenv/versions/1.9.3-p551


==> which ruby
/Users/username/.rbenv/shims/ruby

==> which gem
/Users/username/.rbenv/shims/gem

==> gem install compass
ERROR:  While executing gem ... (Gem::FilePermissionError)
    You don't have write permissions for the /Library/Ruby/Gems/2.0.0 directory.


==> ruby -v
ruby 2.0.0p648 (2015-12-16 revision 53162) [universal.x86_64-darwin15]


==> rbenv global 1.9.3-p551


==> ruby -v
ruby 2.0.0p648 (2015-12-16 revision 53162) [universal.x86_64-darwin15]


==> rbenv global 1.9.3-p551


==> rbenv rehash


==> ruby -v
ruby 1.9.3p551 (2014-11-13 revision 48407) [x86_64-darwin15.4.0]


==> gem install compass
Fetching: sass-3.4.22.gem (100%)
Fetching: multi_json-1.11.3.gem (100%)
Fetching: compass-core-1.0.3.gem (100%)
Fetching: compass-import-once-1.0.5.gem (100%)
Fetching: chunky_png-1.3.5.gem (100%)
Fetching: rb-fsevent-0.9.7.gem (100%)
Fetching: ffi-1.9.10.gem (100%)
Building native extensions.  This could take a while...
Fetching: rb-inotify-0.9.7.gem (100%)
Fetching: compass-1.0.3.gem (100%)
    Compass is charityware. If you love it, please donate on our behalf at http://umdf.org/compass Thanks!
Successfully installed sass-3.4.22
Successfully installed multi_json-1.11.3
Successfully installed compass-core-1.0.3
Successfully installed compass-import-once-1.0.5
Successfully installed chunky_png-1.3.5
Successfully installed rb-fsevent-0.9.7
Successfully installed ffi-1.9.10
Successfully installed rb-inotify-0.9.7
Successfully installed compass-1.0.3
9 gems installed
Installing ri documentation for sass-3.4.22...
Installing ri documentation for multi_json-1.11.3...
Installing ri documentation for compass-core-1.0.3...
Installing ri documentation for compass-import-once-1.0.5...
Installing ri documentation for chunky_png-1.3.5...
Installing ri documentation for rb-fsevent-0.9.7...
Installing ri documentation for ffi-1.9.10...
Installing ri documentation for rb-inotify-0.9.7...
Installing ri documentation for compass-1.0.3...
Installing RDoc documentation for sass-3.4.22...
Installing RDoc documentation for multi_json-1.11.3...
Installing RDoc documentation for compass-core-1.0.3...
Installing RDoc documentation for compass-import-once-1.0.5...
Installing RDoc documentation for chunky_png-1.3.5...
Installing RDoc documentation for rb-fsevent-0.9.7...
Installing RDoc documentation for ffi-1.9.10...
Installing RDoc documentation for rb-inotify-0.9.7...
Installing RDoc documentation for compass-1.0.3...

가까이서 yet "오류 : gem을 실행하는 중 ... (Gem :: FilePermissionError) /Library/Ruby/Gems/2.0.0 디렉토리에 대한 쓰기 권한이 없습니다."
JGallardo

1

성공으로 MacOS Mojave에서 테스트 :

  1. 이전 루비 버전을 모두 제거하십시오 (2.00 및 2.3.0이 있다고 가정하십시오).

    $ rvm uninstall 2.0.0

    $ rvm uninstall 2.3.0

  2. 새로운 루비 버전 설치 :

    $ brew install ruby

  3. 기본 별명을 버전으로 설정하십시오.

    $ rvm alias create default ruby

  4. 컴퓨터가 최근에 설치된 새 루비 버전을로드하는 가장 안전한 방법이므로 시스템을 재부팅하십시오.

위 절차를 수행 한 후 모든 gem명령을 성공적으로 실행할 수 있습니다 .


-2

cd /Library/Ruby/Gems/2.0.0

열다 .

마우스 오른쪽 버튼으로 정보 입수

클릭 잠금

장소 비밀번호

모든 것을 읽고 쓰십시오.


1
가독성을 위해 시간을내어 답변을 작성하십시오. 당신이 연구하고 설명하는 노력은 돈을 지불합니다.
Tin Man

-2

사용자에게 $ whoami에게 그 폴더에 뭔가를 만들 수 있도록하십시오.

sudo chown -R user /Library/Ruby/Gems/2.0.0

아니요. 해당 폴더는 적절한 이유로 시스템에서 소유하고 있으며 시스템은 자체 목적으로 사용합니다. 이를 가리키는 스크립트를 실행하는 것이 좋지만, 샌드 박스 Ruby를 작성하고 사용하려면 엉망입니다.
Tin Man

-3

gem install cocoapods --pre --user를 사용할 수 있습니다.


-4

gem 설치 또는 RubyGems 업데이트가 권한 오류로 실패한 후이 명령을 입력하십시오

sudo gem install cocoapods

1
이것은 다른 답변에서 다루어졌습니다. 새로운 답변을 제공하기 위해 하나를 만들기 전에 다른 답변을 읽으십시오.
Tin Man


-18

오류의 원인은 터미널에서 루트 사용자로 로그인하지 않았기 때문입니다.

터미널 유형으로 Mac에서 루트 사용을 이미 활성화 한 경우

$ su

루트 사용자가없는 경우 다음 단계를 사용하여 활성화해야합니다.

  1. Apple 메뉴에서 시스템 환경 설정…을 선택하십시오.
  2. 보기 메뉴에서 사용자 및 그룹을 선택하십시오.
  3. 잠금을 클릭하고 관리자 계정으로 인증하십시오.
  4. 로그인 옵션…을 클릭하십시오.
  5. 오른쪽 하단의“편집…”또는“가입…”버튼을 클릭하십시오.
  6. “Open Directory Utility…”버튼을 클릭하십시오.
  7. 디렉토리 유틸리티 창에서 잠금을 클릭하십시오.
  8. 관리자 계정 이름과 비밀번호를 입력 한 다음 확인을 클릭하십시오.
  9. 편집 메뉴에서 루트 사용자 사용을 선택하십시오.
  10. 비밀번호 및 확인 필드 모두에 사용할 루트 비밀번호를 입력 한 후 확인을 클릭하십시오.

http://support.apple.com/kb/ht1528 에서 동일

Atleast 그것은 몇 시간 동안 붙어서 나를 위해 작동합니다.


왜 다운 투표? 당신은 그렇게 이유를 적어 줄 수 있습니까?
Mohammad Arif

8
루트로 gem을 설치하는 것은 좋지 않습니다. stackoverflow.com/questions/2119064/…
spuder
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.