我最近在红宝石上遇到了很多麻烦。
现在每当我尝试在项目上运行bundle install
时,我都会收到以下错误:
bundle install
/usr/local/rvm/gems/ruby-2.0.0-p247@global/gems/bundler- 1.3.5/lib/bundler/rubygems_integration.rb:172:in `security_policies': uninitialized constant Gem::Security::Policies (NameError)
from /usr/local/rvm/gems/ruby-2.0.0-p247@global/gems/bundler-1.3.5/lib/bundler/cli.rb:175:in `<class:CLI>'
from /usr/local/rvm/gems/ruby-2.0.0-p247@global/gems/bundler-1.3.5/lib/bundler/cli.rb:6:in `<module:Bundler>'
from /usr/local/rvm/gems/ruby-2.0.0-p247@global/gems/bundler-1.3.5/lib/bundler/cli.rb:5:in `<top (required)>'
from /usr/local/rvm/rubies/ruby-2.0.0-p247/lib/ruby/site_ruby/2.0.0/rubygems/core_ext/kernel_require.rb:55:in `require'
from /usr/local/rvm/rubies/ruby-2.0.0-p247/lib/ruby/site_ruby/2.0.0/rubygems/core_ext/kernel_require.rb:55:in `require'
from /usr/local/rvm/gems/ruby-2.0.0-p247@global/gems/bundler-1.3.5/bin/bundle:18:in `<top (required)>'
from /usr/local/rvm/gems/ruby-2.0.0-p247@global/bin/bundle:23:in `load'
from /usr/local/rvm/gems/ruby-2.0.0-p247@global/bin/bundle:23:in `<main>'
from /usr/local/rvm/gems/ruby-2.0.0-p247/bin/ruby_executable_hooks:15:in `eval'
from /usr/local/rvm/gems/ruby-2.0.0-p247/bin/ruby_executable_hooks:15:in `<main>'
我尝试过重新安装红宝石,我尝试过rvm get head
和gem update --system
我还尝试通过rvm package
和brew install
卸载并重新安装OpenSSL。
我已经尝试完全破坏RVM并重新开始,但这似乎都不起作用。这似乎发生在我转移到小牛队之后。
有没有人知道可能会发生什么?我已经在这3天了......
我对所有这些红宝石都有同样的问题:
答案 0 :(得分:2)
假设你正在使用brew ...
运行brew doctor
以检查当前状态并执行其建议的任何步骤。
运行rvm list
并记下安装了哪些版本的ruby。使用rvm remove 2.0.x
删除有问题的ruby版本,其中'x'是您正在使用的次要修订版,或运行rvm remove 2.0
将其全部删除。
现在升级到最新的rvm rvm get stable
。
让rvm通过运行rvm autolibs enable
自动安装依赖项。这将允许rvm在ruby安装期间安装它需要的任何东西,包括openssl。它将使用brew,正如我在这里假设的那样,但是如果安装它们也会使用fink或macports。在过去,我遇到了brew和macports都安装的问题。
通过rvm rvm install 2.0
安装最新的ruby。
Bundler现在应该可以工作了。
答案 1 :(得分:1)
在OSX Mavericks上运行Ruby 2.0和Rails 4.0的新rvm gemset上运行bundle install时,我收到了同样的错误:
gems/bundler-1.3.5/lib/bundler/rubygems_integration.rb:172:in `security_policies': uninitialized constant Gem::Security::Policies (NameError)
运行'brew install openssl',然后'rvm reinstall 2.0'为我工作。
答案 2 :(得分:0)
您是否尝试过使用bundle install的--trust-policy = []选项? 要应用名为policy的Rubygems安全策略,其中policy是HighSecurity,MediumSecurity,LowSecurity或NoSecurity之一。 更多 - http://bundler.io/v1.3/man/bundle-install.1.html