尝试运行捆绑安装时出现“安全策略”错误

时间:2013-11-13 04:39:35

标签: ruby-on-rails ruby rvm bundler homebrew

我最近在红宝石上遇到了很多麻烦。

现在每当我尝试在项目上运行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 headgem update --system

我还尝试通过rvm packagebrew install卸载并重新安装OpenSSL。

我已经尝试完全破坏RVM并重新开始,但这似乎都不起作用。这似乎发生在我转移到小牛队之后。

有没有人知道可能会发生什么?我已经在这3天了......

编辑:

我对所有这些红宝石都有同样的问题:

  • 1.9.3
  • 2.0.0-P195
  • 2.0.0-P247
  • 2.1.0-preview1

3 个答案:

答案 0 :(得分:2)

假设你正在使用brew ...

  1. 运行brew doctor以检查当前状态并执行其建议的任何步骤。

  2. 运行rvm list并记下安装了哪些版本的ruby。使用rvm remove 2.0.x删除有问题的ruby版本,其中'x'是您正在使用的次要修订版,或运行rvm remove 2.0将其全部删除。

  3. 现在升级到最新的rvm rvm get stable

  4. 让rvm通过运行rvm autolibs enable自动安装依赖项。这将允许rvm在ruby安装期间安装它需要的任何东西,包括openssl。它将使用brew,正如我在这里假设的那样,但是如果安装它们也会使用fink或macports。在过去,我遇到了brew和macports都安装的问题。

  5. 通过rvm rvm install 2.0安装最新的ruby。

  6. 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

相关问题