这事真让我抓狂。
我已经在 CentOS 服务器上安装了 RVM;我完全遵循了混合模式的说明。https://rvm.io/rvm/install/
但是,当我尝试从用户帐户执行“gem install”时,出现以下信息:
您没有 /usr/local/rvm/gems/ruby-1.9.3-p194 目录的写入权限。
据我所知,如果正确设置了 RVM 混合模式,用户可以安装自己的 gem。在这里,让所有 ruby 用户都能够全局安装 gem 是不可行的。
这是我登录后所做的事情:
# gem install rails
-bash: gem: command not found
# rvm use 1.9.3
Using /usr/local/rvm/gems/ruby-1.9.3-p194
Running /usr/local/rvm/hooks/after_use
# gem install rails
ERROR: While executing gem ... (Gem::FilePermissionError)
You don't have write permissions into the /usr/local/rvm/gems/ruby-1.9.3-p194 directory.
好的,我有一个线索(这里出现了一个相关问题)。
我的宝石路径是:
# echo $GEM_PATH
/usr/local/rvm/gems/ruby-1.9.3-p194:/usr/local/rvm/gems/ruby-1.9.3-p194@global
看起来不对。
答案1
和往常一样,经过几个小时的斗争后,我提出问题后立即就找到了答案。
由于 RVM 以多种模式工作,因此很容易出现安装失败并不得不重新安装的情况。在执行此操作时,我清除了系统中所有 RVM 的痕迹,包括用户的 .rvmrc 文件。
无论出于什么原因,重新安装时此文件都没有出现。用默认文件替换它修复了 GEM_PATH,现在我可以安装 gems 了。
这是默认的 .rvmrc:
export rvm_environments_path="${HOME}/.rvm/environments"
export rvm_gems_path="${HOME}/.rvm/gems"
export rvm_gems_cache_path="${HOME}/.rvm/gems_cache"
export rvm_wrappers_path="${HOME}/.rvm/wrappers"