【问题标题】:Vagrant and guest's Gemfile conflictVagrant 和 guest 的 Gemfile 冲突
【发布时间】:2012-07-24 20:15:11
【问题描述】:

在我的系统 (OS X) 上,我有一个在 Rails 3.1.0、ruby 1.8.7 上运行的应用程序。

我安装了 Vagrant 并使用 Ubuntu 虚拟机进行设置。我在虚拟机中创建了一个新项目 ABC,并在虚拟机上安装了 ruby​​ 1.9.3 和 Rails 3.2.6。

现在,当我退出 Vagrant 虚拟机并想再次从 ABC 项目目录 ssh 进入它时,它遇到了 ABC 项目的 Gemfile 中的冲突:

~/.rvm/gems/ruby-1.8.7-p358@global/gems/bundler-1.1.4/lib/bundler/spec_set.rb:90:in 'materialize': Could not find actionmailer-3.2.6 in any of the sources (Bundler::GemNotFound)

当我从 ABC 项目的目录中删除 Gemfile 时,我可以毫无问题地使用 Vagrant。

为什么 Vagrant 会检查项目的 Gemfile,而不是只运行虚拟机?

有没有人经历过这样的事情?

【问题讨论】:

  • 因此,显然,从来宾系统上的项目文件夹中运行 bundle install 可以解决此问题。然而,意识到 vagrant 本身就是一个 gem 仍然不能回答我的问题,因为我在一个项目上独立安装了 gem。有什么提示吗?

标签: ruby-on-rails virtual-machine conflict vagrant gemfile


【解决方案1】:

我当前的设置使用从 rails 目录分离的 Vagrantfile。

在我开始使用 Puppet 配置脚本、各种 bash 脚本、rails 之外的项目文档文件夹等之后,我最终得到了这个设置。

保持 Rails 应用程序尽可能干净而不用本地开发工具文件 (Vagrantfile) 污染它更有意义。

这个问题仍然有效。我不确定这是否符合 github 上的问题报告...

【讨论】:

    【解决方案2】:

    Vagrant 使用 Gemfile 作为插件。 请参阅插件文档https://docs.vagrantup.com/v2/plugins/packaging.html

    所以 vagrant 认为你的 rails gem 是 vagrant 的插件并且失败了。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-05-11
      • 1970-01-01
      • 2015-11-14
      • 2015-02-01
      • 2014-07-29
      • 1970-01-01
      相关资源
      最近更新 更多