【问题标题】:Ruby returns syntax errors when referencing Net::SSHRuby 在引用 Net::SSH 时返回语法错误
【发布时间】:2015-06-27 01:55:02
【问题描述】:

我已经安装了以下内容:

  • Ruby 版本 1.8.7
  • Net::SSH 2.10.0

运行脚本时出现以下错误:

/usr/lib/ruby/site_ruby/1.8/net/ssh/authentication/session.rb:4:in `require': /usr/lib/ruby/site_ruby/1.8/net/ssh/authentication/key_manager.rb:199: syntax error, unexpected ':', expecting ')' (SyntaxError)
              identity.merge(privkey_file: file)
                                          ^
/usr/lib/ruby/site_ruby/1.8/net/ssh/authentication/key_manager.rb:266: syntax error, unexpected $end, expecting kEND
        from /usr/lib/ruby/site_ruby/1.8/net/ssh/authentication/session.rb:4
        from /usr/lib/ruby/site_ruby/1.8/net/ssh.rb:11:in `require'
        from /usr/lib/ruby/site_ruby/1.8/net/ssh.rb:11
        from test.rb:1:in `require'
        from test.rb:1

你知道为什么会抛出这个错误吗?

【问题讨论】:

  • 谢谢。如何确定哪个版本的 net-ssh 与 1.8.7 兼容?
  • 我已经发布了答案。但请注意,旧版本可能包含在较新版本中修复的错误。如果可能的话,至少升级到 Ruby 1.9.3。

标签: ruby net-ssh


【解决方案1】:

net-ssh gem 不再支持 1.8.7。发布的行使用hash syntax that was added in 1.9(相当于:privkey_file => file)。根据其README,支持 1.8 的最后一个版本是2.5.1。您可以使用 gem install net-ssh -v 2.5.1 安装此旧版本,但请务必删除您已安装的较新版本。

【讨论】:

    猜你喜欢
    • 2012-03-24
    • 1970-01-01
    • 2013-02-14
    • 2014-11-15
    • 1970-01-01
    • 2013-08-27
    • 2021-01-04
    • 1970-01-01
    • 2013-06-13
    相关资源
    最近更新 更多