2010-04-12 6 views
60
[email protected]:~> 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 디렉토리 첫 내 집에 파일을 설치하지 이유를 알고 싶습니다 .gem dir.I와 쓰기 권한을 가지고 있습니까? 내 보석 공통의 첫번째 희망은 /opt/ruby-enterprise-1.8.7/lib/ruby/gems/1.8보석 설치 권한 문제

답변

33

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

$ sudo gem install hpricot 

그러나 많은 상황에서 현대적인 접근 방식, 개발을 포함하여, 쉽게 설치하고 일반 사용자로 루비를 사용 할 수있는 도구를 사용하는 것입니다. 이렇게하면 루트가되는 것을 피할 수 있습니다. 그런 도구가 몇 가지 있는데, 제가 사용하는 도구는 RVM입니다.

export RBENV_ROOT="$HOME/.rbenv" 

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

sudo는 루트 권한으로 설치하고 일반 사용자를 사용할 때 액세스 할 수 없으므로 사용하지 마십시오. RVM과 gemsets을 사용하십시오. – rxgx

+4

예 : 'rvm gem install hpricot' – AJP

+1

$ \ curl -L https://get.rvm.io –

124

에 파일을 설치하는 이유는 ~/.gemGEM_HOMEGEM_PATH, 현재 터미널 세션에 대한

을 설정해보십시오, 단지 입력 :

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

당신은, 터미널을 열려면 ~/.bashrc 파일에 위의 명령을 추가 할 때마다이 설정되어야합니다.

사용자 정의 루비 환경 설정에 대한보다 포괄적 인 솔루션은 this tutorial from Site5KB을 참조하십시오. .gemrc 파일 사용에 대해 설명합니다.

+1

훨씬 안전합니다! 감사! – Munhitsu

+6

이것은 실제의 정답입니다. 해야 할 일이 없다면 sudo를 설치하지 마십시오. –

+0

대답의 링크가 변경된 것으로 보입니다. 이 가이드의 첫 번째 단계는 나에게도 동일한 작업을 수행했습니다. http://kb.site5.com/ruby-on-rails/how-to-setup-a-custom-rubygems-environment –

2

, 당신은 당신의 .bash_profile에 다음을 추가해야합니다. 내 솔루션에 --user-install 옵션이 추가되었습니다.이 옵션은 로그인 한 사용자 만 설치할 수 있습니다 (공유 서버 환경에서 모두 필요함). 예; 새시 설치

gem install sass --user-install 
1

내가 따라 1and1 호스팅을 통해 내 공유 서버에 오류가 발생했습니다 : 당신이 rbenv을 사용하고 있고 이런 일이되면

# 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