首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用Rubber gem设置Varnish服务器

使用Rubber gem设置Varnish服务器
EN

Stack Overflow用户
提问于 2013-02-07 06:17:18
回答 2查看 277关注 0票数 0

我正在尝试在缓存服务器上安装varnish。我接下来的be堆栈...

HA代理服务器->缓存(Varnish)服务器-> Nginx + Unicorn服务器

我已经能够正确地设置HAProxy和Varnish的所有配置文件,以便沿管道移动流量。然而,当我尝试引导我的缓存服务器时,我得到了一个错误。

** ERROR: While executing gem ... (Gem::DependencyError) ** Unable to resolve dependencies: rubber requires net-ssh (~> 2.4.0); fog requires net-ssh (>= 2.1.3); capistrano requires net-ssh (>= 2.0.14); net-ssh-gateway requires net-ssh (>= 2.6.4); net-scp requires net-ssh (>= 2.6.4); net-sftp requires net-ssh (>= 2.6.4) ** /tmp/gem_helper:32:in `block in <main>' ** : Unable to install versioned gem rubber:2.1.2 (RuntimeError ** ) ** from /tmp/gem_helper:30:in `each' ** from /tmp/gem_helper:30:in `<main>'

我似乎不明白为什么会发生这样的事情。任何帮助都是最好的。谢谢

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-02-08 02:53:16

我遇到了这个问题,我找到的解决方案有点不令人满意,而且是暂时的,但它是有效的。

此错误发生在rubber:install_gems任务期间。失败后,通过ssh登录到ec2服务器。此时,如果您尝试在远程控制台中手动运行gem install rubber -v=2.1.2,它将失败,并显示与上面显示的完全相同的错误。(版本号对于您来说可能会有所不同,这取决于您执行此操作时所使用的橡胶版本)。

所以现在创建一个具有任意名称的空文件夹,并在其中创建一个几乎为空的Gemfile。

代码语言:javascript
复制
$ mkdir dummy && cd dummy
$ nano Gemfile

然后用以下内容填充Gemfile:

代码语言:javascript
复制
source 'http://rubygems.org'
gem 'rubber', '2.1.2'

同样,橡胶的版本可能会对您有所不同。

创建此文件后,运行bundle install,一切都将正确安装。但是不要问我为什么通过捆绑器安装橡胶和通过普通的老式gem install安装有什么不同。

因此,在完成此操作后,从ec2注销并重新运行cap rubber:bootstrap,它应该可以工作。

不能令人满意的部分是,如果您决定在ec2上创建新实例,它将在同一时刻再次失败,并且您必须重复此步骤并手动重新启动该过程才能完成。因此,如果有人能想出更好的解决方案,比如修改橡胶或其他东西,请让我们知道。

票数 2
EN

Stack Overflow用户

发布于 2013-02-07 09:41:12

让我先说我也有同样的问题,并解决了它,但我没有使用清漆或独角兽。

看起来你缺少capistrano,把它添加到你的gemfile中,它应该会处理大部分的依赖项。然而,在我的例子中,橡胶抱怨需要net-ssh (~> 2.4.0),而capistrano安装了最新的net-ssh gem。因此,要修复此问题,请编辑您的Gemfile.lock以使用net-ssh (2.4.0)而不是最新版本,然后运行bundle install应修复依赖项。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14739947

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档