【问题标题】:"The bundle currently has sqlite3 locked" when running Passenger server运行乘客服务器时“捆绑当前已锁定 sqlite3”
【发布时间】:2013-07-20 00:47:59
【问题描述】:

我刚刚将 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)

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

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

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

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

【问题讨论】:

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


    【解决方案1】:

    最终通过首先执行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

    在这一切之后,乘客终于工作了。

    【讨论】:

      猜你喜欢
      • 2023-03-28
      • 2012-12-10
      • 2023-03-05
      • 1970-01-01
      • 2014-07-15
      • 2013-01-22
      • 1970-01-01
      • 1970-01-01
      • 2014-10-31
      相关资源
      最近更新 更多