使用Ruby Enterprise Edition,gem没有安装在我期望的地方
我刚刚安装了Ruby Enterprise Edition,并为它安装了一些gem。 库存Ruby 1.8.6也安装在服务器上。
我已将/opt/ruby-enterprise-1.8.6-20090201/bin
添加到我的PATH
这是/usr/bin
的头部,其中ruby
和gem
存在。
which gem
证实了这一点:
/opt/ruby-enterprise-1.8.6-20090201/bin/gem
但是,当我安装这样的gem时:
gem install some_gem
它们最终在/usr/lib/ruby/gems/1.8/gems/
而不是/opt/ruby-enterprise-1.8.6-20090201/lib/ruby/gems/1.8/gems/
。
但是如果我使用/opt/ruby-enterprise-1.8.6-20090201/bin/gem install some_gem
它会进入REE的gem目录。
我不明白。 是否有一些配置选项我必须改变? 我在这里使用sudo。 也许这与它有关?
对这里发生的事情有一个很好的解释:
sudo改变路径 – 为什么?
这假设您正在使用Ubuntu。 sudo确实改变了ubuntu下的路径。
你在/ usr / bin /中的gem可能是/usr/bin/gem1.8的符号链接。 我做的是symlink ruby-enterprise的gem到/ usr / bin / ree-gem,如下所示:
sudo ln -s /opt/ruby-enterprise-1.8.6-20090201/bin/gem / usr / bin / ree-gem
那我就用:
sudo ree-gem install some_gem
专门为ree安装gem。 如果你没有使用ruby 1.8.6 rubygem,你可以将REE的gem符号链接到/ usr / bin / gem:
sudo ln -s /opt/ruby-enterprise-1.8.6-20090201/bin/gem / usr / bin / gem
我习惯于类似问题的解决方案是为您的REE gem命令设置别名。
即
alias reegem='/opt/ruby-enterprise-1.8.6-20090201/bin/gem'
我在这里发布了我在Ubuntu上使用的解决方案: http : //groups.google.com/group/emm-ruby/browse_thread/thread/d0c685bbd096823a#msg_effa7d6ad42c541c
除了Ruby Enterprise Edition文档中描述的内容外,还有一些额外的步骤可以使其工作。
以下是REE为什么设置这样的解释: http : //www.rubyenterpriseedition.com/documentation.html#_how_ree_installs_itself_into_the_system
除了上面杰克朱的有用符号链接,我可以建议:
sudo ln -s / opt / ruby-enterprise / bin / rake / usr / bin / ree-rake
所以你可以sudo ree-rake gems:install