我正在尝试在缓存服务器上安装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>'
我似乎不明白为什么会发生这样的事情。任何帮助都是最好的。谢谢
发布于 2013-02-08 02:53:16
我遇到了这个问题,我找到的解决方案有点不令人满意,而且是暂时的,但它是有效的。
此错误发生在rubber:install_gems任务期间。失败后,通过ssh登录到ec2服务器。此时,如果您尝试在远程控制台中手动运行gem install rubber -v=2.1.2,它将失败,并显示与上面显示的完全相同的错误。(版本号对于您来说可能会有所不同,这取决于您执行此操作时所使用的橡胶版本)。
所以现在创建一个具有任意名称的空文件夹,并在其中创建一个几乎为空的Gemfile。
$ mkdir dummy && cd dummy
$ nano Gemfile然后用以下内容填充Gemfile:
source 'http://rubygems.org'
gem 'rubber', '2.1.2'同样,橡胶的版本可能会对您有所不同。
创建此文件后,运行bundle install,一切都将正确安装。但是不要问我为什么通过捆绑器安装橡胶和通过普通的老式gem install安装有什么不同。
因此,在完成此操作后,从ec2注销并重新运行cap rubber:bootstrap,它应该可以工作。
不能令人满意的部分是,如果您决定在ec2上创建新实例,它将在同一时刻再次失败,并且您必须重复此步骤并手动重新启动该过程才能完成。因此,如果有人能想出更好的解决方案,比如修改橡胶或其他东西,请让我们知道。
发布于 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应修复依赖项。
https://stackoverflow.com/questions/14739947
复制相似问题