因为我使用 Mac Ports(在 Leopard 上)更新了 ruby,所以我遇到了几个问题,我还不得不重新安装 gems。现在,当我运行 Mongrel 时,我不断收到错误“缺少这些必需的 gem”,然后是我在 environment.rb 中需要的 gem 列表,但是当我看到运行时,gems 似乎已正确安装gem list
。我认为 rails 正在寻找以前的安装,但我不知道如何配置它以使用新的 ruby/gem 路径。
谢谢!
因为我使用 Mac Ports(在 Leopard 上)更新了 ruby,所以我遇到了几个问题,我还不得不重新安装 gems。现在,当我运行 Mongrel 时,我不断收到错误“缺少这些必需的 gem”,然后是我在 environment.rb 中需要的 gem 列表,但是当我看到运行时,gems 似乎已正确安装gem list
。我认为 rails 正在寻找以前的安装,但我不知道如何配置它以使用新的 ruby/gem 路径。
谢谢!
你应该使用:
config.gem 'rspec', :lib => 'spec'
config.gem 'rspec-rails', :lib => 'spec/rails'
因为 rspec 库没有按应有的方式命名...
在终端试试这个,看看路径是否相似:
which ruby
which gem
就在前一周,我遇到了类似的问题,不得不重命名原始的 gem 二进制文件,这样它才能找到 MacPorts 安装的那个。
这个 railswiki-entry 提供了很多关于处理多个 gem 存储库的见解。也许你在那里找到了解决你问题的线索。希望能帮助到你
http://wiki.rubyonrails.org/rails/pages/HowToUseMultipleGemRepositories
更新:以上链接已损坏,但文本已保存在这里:http: //tek-zappeln.blogspot.com/2009/02/howtousemultiplegemrepositories-rescued.html
您确定 gem 命令实际上是 MacPorts 安装的命令,而不是 OSX 中包含的默认命令吗?
您可以强制它使用特定版本的 ruby:
/path/to/ruby -S <command>
您可以强制您的 rails 应用程序开始使用您想要的任何版本的 ruby,您也可以使用它来运行您的 gem list 命令并确保在运行 rails 之前您拥有正确的 gem。