【问题标题】:Capistrano v3 is trying to load ssh-kit twice and throwing a warningCapistrano v3 尝试加载 ssh-kit 两次并发出警告
【发布时间】:2013-09-19 18:15:06
【问题描述】:

我正在尝试定义一个项目,当我运行 bundle exec cap staging -T 我收到警告

/usr/local/Cellar/rbenv/0.4.0/versions/2.0.0-p247/lib/ruby/gems/2.0.0/gems/sshkit-0.0.34/lib/sshkit.rb:3: warning: already initialized constant SSHKit::StandardError

/usr/local/opt/rbenv/versions/2.0.0-p247/lib/ruby/gems/2.0.0/gems/sshkit-0.0.34/lib/sshkit.rb:3: warning: previous definition of StandardError was here

然后是命令的输出,包括任务列表

cap deploy # Deploy a new release

cap deploy:check # Check required files and directories exist

...

我已经尝试从 bundler 中删除与此冲突的所有其他 gem,但似乎 bundler 本身将这个文件锁定在 2.6.6 版本。我什至不知道是不是捆绑器导致了这个问题。

【问题讨论】:

  • 您可以发布您的 Gemfile 吗?另外,尝试bundle install --path .bundle 将项目的 gem 与系统的其余部分隔离开来。
  • bundle exec 确实将 Gemfile 中指定的 gem 与系统中的 gem 隔离开来。没必要这样做。
  • 这是在 capistrano 处于测试阶段的时候回来的,所以我认为可能是这样,但我仍然在 3.0 版中得到它,我不知道为什么。

标签: ruby ssh gem capistrano bundler


【解决方案1】:

sshkit 的当前版本是 1.3.0。尝试运行

$ bundle update

如果您仍然有问题,请写信。有时命令:

$ gem outdated

可用于检测旧版本的 gem。

【讨论】:

    【解决方案2】:

    这可能是与 rvm/rbenv/... 中的符号链接相关的问题...可以通过避免在 sshkit gem 中使用 require_relative 来解决,但同时我认为唯一的选择是坚持错误并等待 this issue 出现解决了。​​

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-05-18
      • 2014-06-23
      • 1970-01-01
      • 1970-01-01
      • 2016-08-15
      • 2015-01-18
      • 1970-01-01
      相关资源
      最近更新 更多