Ruby on rails 如何解决供应商/缓存目录中缺少的一些gem。找不到“;“不管怎样”;在任何来源?

Ruby on rails 如何解决供应商/缓存目录中缺少的一些gem。找不到“;“不管怎样”;在任何来源?,ruby-on-rails,ruby,capistrano,bundler,Ruby On Rails,Ruby,Capistrano,Bundler,这让我快发疯了。我在gem文件中添加了一个gem(hirb),现在无法部署 是的,我使用了bundle安装--path vendor/cache 是的,我使用了捆绑包 是,我提交了Gemfile和Gemfile.lock 我删除了生产机器中的vendor/cache文件夹,这样它将再次生成它,而不是更新它。这是错的吗? 每当我运行cap:deploy时,我都会得到以下结果 executing "cd /var/www/releases/20120606002321 && bund

这让我快发疯了。我在gem文件中添加了一个gem(hirb),现在无法部署

是的,我使用了
bundle安装--path vendor/cache

是的,我使用了
捆绑包

是,我提交了Gemfile和Gemfile.lock

我删除了生产机器中的vendor/cache文件夹,这样它将再次生成它,而不是更新它。这是错的吗?

每当我运行
cap:deploy
时,我都会得到以下结果

executing "cd /var/www/releases/20120606002321 && bundle install --gemfile /var/www/releases/20120606002321/Gemfile --path /var/www/shared/bundle --deployment --quiet --without development test"
    servers: ["11.111.11.11"]
    [11.111.11.11] executing command
    [11.111.11.11] env PATH=/var/lib/gems/1.9.1/bin:$PATH sh -c 'cd /var/www/releases/20120606002321 && bundle install --gemfile /var/www/releases/20120606002321/Gemfile --path /var/www/shared/bundle --deployment --quiet --without development test'
 ** [out :: 11.111.11.11] Some gems seem to be missing from your vendor/cache directory.
 ** [out :: 11.111.11.11] Could not find multi_json-1.3.6 in any of the sources
    command finished in 48571ms
*** [deploy:update_code] rolling back
  * executing "rm -rf /var/www/releases/20120606002321; true"
    servers: ["11.111.11.11"]
    [11.111.11.11] executing command
    [11.111.11.11] env PATH=/var/lib/gems/1.9.1/bin:$PATH sh -c 'rm -rf /var/www/releases/20120606002321; true'
    command finished in 6417ms
failed: "env PATH=/var/lib/gems/1.9.1/bin:$PATH sh -c 'cd /var/www/releases/20120606002321 && bundle install --gemfile /var/www/releases/20120606002321/Gemfile --path /var/www/shared/bundle --deployment --quiet --without development test'" on 11.111.11.11

@莱昂内尔,有几件事你可以查一下:

  • 看看你是否有正确的来源来获取宝石(来源)http://rubygems.org))
  • 尝试执行gem安装multi_json
  • 查看web服务器的日志文件。在这种情况下,当你使用普通武器而无法击中目标时,它们会起到很大的作用
  • 稍后,您应该检查是否有旧版本,然后尝试使用gem更新到所需(或最新)的multi_json版本

    希望有帮助,
    R

    您可能希望尝试删除
    --deployment
    标志。这似乎允许Bundler从
    供应商/cache
    源代码和Rubygems安装

    Capfile:

    set :bundle_flags, "--quiet --no-cache"
    
    一个相关的错误:

    试试看

    bundle install --no-deployment
    

    这将删除阻止您尝试更新的
    --deployment
    “捆绑包冻结”。您可以通过在

    中查找
    BUNDLE\u freezed
    来验证是否强制冻结。这很奇怪,此服务器没有internet连接吗?如果找不到,bundler应该从rubygems.org下载gems。使用capistrano 3.3.5,我必须将其添加到我的
    config/deploy.rb
    文件中,而不是我的
    Capfile