4

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

我安装了 Vagrant 并使用 Ubuntu virtual 进行设置。我从虚拟机中创建了一个新项目 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,而不仅仅是运行虚拟机?

以前有人经历过这样的事情吗?

4

2 回答 2

1

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

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

于 2015-10-01T08:51:11.560 回答
0

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

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

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

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

于 2013-01-04T10:37:29.483 回答