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 アプリをできるだけクリーンに保ち、ローカルの開発ツール ファイル (Vagrantfile) で汚染しない方が理にかなっています。

ただし、質問はまだ有効です。これが github の問題レポートの資格があるかどうかはわかりません...

于 2013-01-04T10:37:29.483 に答える