Ruby在引用Net::SSH时返回语法错误
我已安装了以下组件:Ruby在引用Net::SSH时返回语法错误,ruby,net-ssh,Ruby,Net Ssh,我已安装了以下组件: 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 ')' (
- 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 sshgem不再支持1.8.7。发布的行使用(它相当于
:privkey\u file=>file
)。根据它的最新版本,支持1.8的是。您可以使用gem install net ssh-v 2.5.1安装此旧版本,但请确保删除已安装的较新版本。谢谢。如何确定哪个版本的NetSSH与1.8.7兼容?我已经给出了答案。但要注意,旧版本可能包含更新版本中修复的bug。如果可能的话,至少升级到Ruby 1.9.3。