带有 RVM 的 Vagrant 和 Ubuntu 12.10 的错误

Nob*_*ita 4 rvm 12.10 vagrant

通过 安装 Vagrant sudo apt-get install vagrant,每次我尝试运行一些 vagrant 命令时,例如vagrant init precise32 http://files.vagrantup.com/precise32.box我收到以下错误:

/home/novito/.rvm/rubies/ruby-2.0.0-p195/lib/ruby/site_ruby/2.0.0/rubygems/core_ext/kernel_require.rb:45:in `require': cannot load such file -- log4r (LoadError)
    from /home/novito/.rvm/rubies/ruby-2.0.0-p195/lib/ruby/site_ruby/2.0.0/rubygems/core_ext/kernel_require.rb:45:in `require'
    from /usr/bin/vagrant:2:in `<main>'
Run Code Online (Sandbox Code Playgroud)

不知道为什么 rvm 会涉及到这里,但是哦,我希望你们能指导我如何解决这个问题。

Dav*_*rds 7

当您使用 Vagrant 安装 Vagrant 时,apt-get它会为标准的 Ubuntu 打包版本的 Ruby 安装所有必需的依赖项。但是您的错误消息表明,当您运行vagrant它时,它试图使用由 RVM 管理的 Ruby(及其 Gems)版本而不是系统版本,并且您的 Ruby 版本至少缺少一个依赖项log4r.

我想你有几个选择:

  1. 通过运行类似rvm use system --default默认情况下重置 RVM 的操作,恢复使用系统(标准 Ubuntu)版本的 Ruby ,并且仅在需要时更改 Ruby 版本。
  2. 运行 Vagrant 时才切换回系统版本,所以rvm use system在运行vagrant同一个 shell之前先运行。
  3. 确定 Vagrant 依赖的所有 Ruby Gems,并在 RVM 管理的 Ruby 安装中手动安装它们。不过,这将是一种巧妙的方法。过去可以将 Vagrant 本身安装为 Ruby Gem,因此您可以将它安装在 RVM 管理的 Ruby 安装中,但不再受支持。

有关控制您使用的 Ruby 版本的更多详细信息,请参阅RVM 命令选项文档。