gem安装权限问题
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.
当前login的用户是qichunren,而qichunre用户有.gem dir的写入权限。我想知道为什么gem没有将文件安装到我的.gem目录中。 为什么我的gem通用首先要将文件安装到/opt/ruby-enterprise-1.8.7/lib/ruby/gems/1.8
对于全系统的Ruby安装,成为root用户。 例如:
$ 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
尝试将GEM_HOME
和GEM_PATH
设置为~/.gem
,
对于当前的terminal会话,只需键入:
export GEM_HOME=~/.gem export GEM_PATH=~/.gem
如果您希望在打开terminal时设置这些命令,请将上述命令添加到~/.bashrc
文件中。
有关设置自定义ruby环境的更全面的解决scheme,请参阅Site5KB中的本教程 , 该教程使用.gemrc
文件进行描述。
如果您正在使用rbenv,而且正在发生这种情况,则需要将以下内容添加到.bash_profile中:
export RBENV_ROOT="$HOME/.rbenv" if [ -d $RBENV_ROOT ]; then export PATH="$RBENV_ROOT/bin:$PATH" eval "$(rbenv init -)" fi
我通过1and1托pipe在我的共享服务器上发生了这个错误。 我的解决scheme是添加--user-install
选项,它只是安装它为您的login用户(这是共享服务器环境中的所有需要)的例子; 安装sass
gem install sass --user-install