我刚刚将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
工作正常。但是,我需要乘客(除非有其他解决方案)才能保持自动部署的正常运行。
答案 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
。
毕竟,乘客终于有效了。