运行Passenger服务器时“捆绑包当前已锁定sqlite3”

时间:2013-07-21 00:31:52

标签: ruby-on-rails deployment sqlite bundler passenger

我刚刚将sqlite gem添加到我们的gemfile中,仅用于Travis CI测试,但现在我在ubuntu VMBox上的构建已经破坏。

我们使用的是Passenger 4.0.10,Ubuntu 12.04,Rails 4.0和Ruby 1.9.3。我正在使用cron脚本从git和touch restart.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)

(据我所知,这来自我的Coveralls宝石)。

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

构建在我的Windows 8机器上工作得非常好,并且似乎在Travis上运行正常,问题似乎只出现在Ubuntu上。

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

1 个答案:

答案 0 :(得分: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. Add gem'mysql2'to your Gemfile.这是一个奇怪的错误,因为我的gem文件中有mysql2。

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

毕竟,乘客终于有效了。