【问题标题】:Rails deployment - Fails on rake: Could not find xxxxx in any of the sourcesRails 部署 - rake 失败:在任何源中都找不到 xxxxx
【发布时间】:2012-02-12 01:17:36
【问题描述】:

我正在尝试通过 cap 部署一个简单的演示应用程序。当我运行cap deploy:migrations rake 时似乎失败了:

** [out :: -----.com] Could not find highline-1.6.9 in any of the sources
** [out :: -----.com] Try running 'bundle install'.

我的生产机器(Dreamhost)有highline (1.6.9, 1.6.2) 和我的开发机器highline (1.6.9)。我一直在努力并在我的开发机器等上降级每一个,只是让它每次都向我抛出一个新的。

我必须在这里遗漏一些明显的东西。

【问题讨论】:

  • 您是否尝试运行“捆绑安装”?
  • mybe highline 在您的 Gemfile 的开发组中。将它放在 Gemfile 中的任何组之外,然后运行 ​​bundle(或 cap deploy)
  • 希望这会有所帮助:) stackoverflow.com/questions/4672889/…
  • 索斯伯恩:是的。安德里亚:我不明白你想暗示什么。 Prair:今晚我回到我的开发机器的家时会给出这个提示。

标签: ruby-on-rails gem capistrano dreamhost


【解决方案1】:

即使gem在机器上可用,如果没有在你的Gemfile中指定,它也不会在你的应用程序中可用。此外,在生产环境中,bundle install 查看 Gemfile.lock 以从您的开发设置中重新创建 gem。因此,请确保:

  1. 您已在 Gemfile 中指定了高线
  2. 您已在开发机器上运行 bundle install(更新 Gemfile.lock)
  3. 您已将这些最新更改推送到您的 git(hub) 存储库中

您可以尝试运行 cap deploy(没有迁移),然后运行 ​​cap deploy:migrate(只是迁移)以确保您的包安装正确。

如果此建议不能解决您的问题,您能否发布cap deploy:check 的结果以及部署时返回的任何其他错误或警告。 (特别是与捆绑器有关)?

【讨论】:

  • 上限部署工作。添加 :migrate 失败。我最大的挫败感是我的生产系统 (Dreamhost) 上有新版本的 gem。新的在我的路上等等。但是当开始运行时,它似乎只能看到 DH 的库存(过时)。
  • 我不得不将旧的 DH 版本添加到我的 Gemfile 以强制 rails 使用旧版本,因为它似乎无法找到新版本。宝石列表正确显示它们。
【解决方案2】:

这是我决定的:

Rails 3 -- Bundler/Capistrano Errors

在我添加的 config/deploy.rb 文件中:

set :bundle_cmd, "/home/#{user}/.gems/bin/bundle"

我猜 Capistrano 没有加载默认路径。

【讨论】:

    猜你喜欢
    • 2020-10-16
    • 2014-03-02
    • 2012-03-30
    • 2015-03-08
    • 1970-01-01
    • 1970-01-01
    • 2015-02-21
    • 2023-03-12
    • 2013-12-25
    相关资源
    最近更新 更多