0

我只是为了 Travis CI 测试而将 sqlite gem 添加到我们的 gemfile 中,但现在我在我的 ubuntu VMBox 上的构建被破坏了。

我们正在使用Passenger 4.0.10、Ubuntu 12.04、Rails 4.0 和Ruby 1.9.3。我正在使用 cron 脚本从 git 和文件中提取touchrestart.txt重新启动服务器,但最新版本在浏览器中显示以下内容:

You have requested:
  sqlite3 >= 0

The bundle currently has sqlite3 locked at 1.3.7.
Try running `bundle update sqlite3` (Bundler::GemNotFound)

当我执行时,bundle update sqlite3我会收到消息:

Cannot checkout session. An error occured while starting up the preloader.
Error page:
Could not find colorize-0.5.8 in any of the sources (Bundler::GemNotFound)

(据我所知,这是来自我的工作服宝石)。

然后我尝试通过删除 gem、删除Gemfile.lock文件并重新安装 gem 来解决问题。这解决了这个 gem 的问题,但同样的问题在我下一次构建另一个 gem 时再次出现。在我对每个 gem 执行相同的任务后,最终我The bundle currently has sqlite3 locked at 1.3.7再次遇到了错误。

该构建在我的 Windows 8 机器上运行良好,似乎在 Travis 上运行良好,问题似乎只在 Ubuntu 上。

编辑
问题似乎只在使用Passenger运行服务器时发生,执行rails server工作正常。但是,我需要乘客(除非有其他解决方案)来保持自动部署工作。

4

1 回答 1

0

最终通过首先执行来解决问题sudo bundle update sqlite3。然后我会收到消息:Could not find colorize-0.5.8 in any of the sources

为了解决这个问题,我执行了:bundle --deployment

在此之后,我得到了错误消息:Specified 'mysql2' for database adapter, but the gem is not loaded. Addgem 'mysql2' to your Gemfile.,这是一个奇怪的错误,因为我的 gem 文件中确实有 mysql2。

为了解决这个问题,我删除了Gemfile.lock文件,执行bundle --no-deployment然后执行bundle --deployment

毕竟,乘客终于工作了。

于 2013-07-21T03:46:07.273 回答