0

我开始尝试使用 Rails 4 在服务器上使用 MySQL2 3.1.0 gem 的工作。

在本地使用 Ruby 2.0,我安装了 MySQL2 3.1.0 Gem,那里一切正常(匹配工作服务器上的 gem 版本基本上只是为了匹配生产服务器环境)。

当我创建一个新的应用程序(ruby new r4_test -d mysql)时,我遇到了一个问题。Bundler 在新的应用程序创建过程中崩溃,抱怨缺少 MySQL2 3.1.3 文件。看起来 3.1.3(如果我没看错的话是 3 个月前发布的)是 MySQL2 Gem 的最高版本号。我对此感到困惑,因为安装在 Ruby 文件夹中的 MySQL2 的唯一版本是 3.1.0 版本。为什么 Bundler 会忽略已安装的 gem 并期望未在本地安装的更高版本?我跳过了 Rails3,所以我是 Bundler 的新手。它似乎不应该期待一个不是本地的版本。有时存在错误或其他问题,您也需要在旧版本的 gem 上停留一段时间。?

谢谢!

4

1 回答 1

0

如果您的项目目录中还没有Gemfile.lock.Bundler,则 Bundler 会尝试安装符合Gemfile. 因此,对于一个新的 Rails 项目,它会尝试安装默认生成的最新依赖项Gemfile。除非您已经拥有一个Gemfile.lock.

如果您不想在创建新项目时运行 Rails,可以使用--skip-bundle(或)。这使您有机会自定义第一个。如果你想确保它使用你已经安装的版本,你可以添加一个版本约束。-Bbundle installGemfile

于 2013-10-03T09:25:23.713 回答