gem 설치 권한 문제


90
qichunren@zhaobak:~> gem install hpricot
ERROR:  While executing gem ... (Gem::FilePermissionError)
    You don't have write permissions into the /opt/ruby-enterprise-1.8.7/lib/ruby/gems/1.8 directory.

현재 로그인 사용자는 qichunren이고 qichunre 사용자는 .gem dir에 대한 쓰기 권한이 있습니다. gem이 먼저 내 집 .gem dir에 파일을 설치하지 않는 이유를 알고 싶습니다. 내 gem common이 먼저 파일을 /opt/ruby-enterprise-1.8.7/lib/ruby/gems/1.8에 설치하려는 이유

답변:


52

시스템 전체 Ruby 설치의 경우 루트가됩니다. 예를 들면 :

$ sudo gem install hpricot

그러나 개발을 포함한 많은 상황에서 현대적인 접근 방식은 Ruby를 일반 사용자로 쉽게 설치하고 사용할 수있는 도구를 사용하는 것입니다. 이렇게하면 루트가되지 않아도됩니다. 그러한 도구가 몇 가지 있으며 내가 사용하는 도구는 RVM 입니다.

# install rvm into your ~
$ \curl -sSL https://get.rvm.io | bash -s stable

# install latest version of ruby into your ~
$ rvm install ruby

# installs a gem into your ~
$ gem install $SOME_GEM_NAME

40
sudo는 루트로 설치하고 일반 사용자를 사용할 때 액세스 할 수 없으므로 사용하지 마십시오. RVM 및 gemset을 사용합니다.
라이언

4
rvm gem install hpricot
AJP

4
이 답변을 삭제할 수 있습니다. 당신은 요점을 유지하고 사람들의 많은 두통을 구할 수 있습니다.
Olhovsky

172

설정 시도 GEM_HOMEGEM_PATH~/.gem,

현재 터미널 세션의 경우 다음을 입력하십시오.

export GEM_HOME=~/.gem
export GEM_PATH=~/.gem

터미널을 열 때마다 이러한 항목을 설정하려면 위 명령을 ~/.bashrc파일에 추가 하십시오.

사용자 지정 루비 환경 설정에 대한보다 포괄적 인 솔루션 은 파일 사용을 설명하는 Site5KB의이 자습서를 참조하십시오 .gemrc.


11
이것은 실제 정답입니다. 필요하지 않은 경우 sudo 설치를 휘두르지 마십시오.
Jesse O'Brien

답변의 링크가 변경된 것 같습니다. 이 가이드의 첫 번째 단계는 저에게도 동일한 결과를 가져 왔습니다
Mike S

@MikeSlutsky 지적 해 주셔서 감사합니다. 나중에 끊어진 링크 (또는 변경되어 더 이상 관련이없는 링크)를 발견하면 적절한 대체 항목이 있다고 생각되면 언제든지 "수정"제안을 제출하십시오.
meagar

@meagar @ Mike-Slutsky가 제공 한 링크를 업데이트했지만 .gemrc구성에 대한 문서임을 알았습니다 . 루비 보석 초보자에게 이것은 내가 추가 한 훨씬 더 간단한 솔루션이라는 것을 이해하면 어렵습니다. 해결책은 저에게 효과적이지만 루비 초보자로서 제 변경 사항이 귀하의 의도와 일치하는지 확인하십시오.
David LeBauer 2015 년

1
GEM_PATH를 전역 PATH에 추가해야합니다. 이것이 내가하는 일입니다 :PATH=$HOME/.gems/bin:$HOME/bin:$PATH GEM_HOME=$HOME/.gems GEM_PATH=$HOME/.gems:/var/lib/gems/2.1.0:/usr/lib/ruby/gems/2.1.0 export PATH GEM_HOME GEM_PATH
Spone

8

1and1 호스팅을 통해 공유 서버에서이 오류가 발생했습니다. 내 솔루션은 --user-install로그인 한 사용자를 위해 설치 하는 옵션 을 추가하는 것이 었습니다 (공유 서버 환경에서 필요한 모든 것입니다). sass 설치

gem install sass --user-install

내가하지만 흥미롭게도,이 오류를 얻고 있다 지정 --user-install.
sschuberth

4

rbenv를 사용 중이고 이런 일이 발생하면 .bash_profile에 다음을 추가해야합니다.

export RBENV_ROOT="$HOME/.rbenv"

if [ -d $RBENV_ROOT ]; then
  export PATH="$RBENV_ROOT/bin:$PATH"
  eval "$(rbenv init -)"
fi

0

루비를 다시 설치하면 문제가 해결됩니다.

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