Openshift 和 net-ssh 不兼容? (2.9.3-beta1 对比 2.9.2)

Openshift and net-ssh incompatibility? (2.9.3-beta1 vs 2.9.2)

通过在 Openshift 上搜索访问我的 Postgres 数据库,我目前在使用 net-ssh 时遇到问题。

为了能够从我的本地数据库 IDE 访问数据库,我需要执行: rhc port-forward myappname

但是执行returns这个错误:Checking available ports ... Could not parse PKey: no start line

如您在此 (an other ones e.g. this one) 中所见,解决方法是恢复到 net-ssh 的稳定版本。 2.9.2。 我已经成功完成了。

但是现在,运行 rhc port-forward myappname 给我以下错误:.../2.2.0/rubygems/core_ext/kernel_require.rb:54:in 'require': cannot load such file

修复方法是将 net-ssh 升级到 2.9.3-Beta1 版本(参见 post)。

这真的很奇怪!似乎 "the snake is biting its own tail" (不知道那个法语表达是否有英文翻译)。

请注意,我已尝试使用新的 ssh 密钥生成器(自动和手动)进行干净的设置。 我的系统运行的是 Win 7 64 位。

我用 Ruby 的最后一个版本制作了 uninstall/install。 重新安装rhc。 rhc-1.36.4 上的最新版本 运行。问题继续。

你能帮忙吗? 我应该安装旧版本的 ssh-net and/or Ruby(由于新版本的 rhc,我不能使用 ssh-net 2.5.2)吗?

(抱歉我的英语不好)

您需要使用旧版本 Ruby,尝试 1.9.3 或 2.0,甚至 2.1。

rhc/Gemfile & rhc/rhc.gem需要规格 gem "net-ssh", "<= 2.9.2" net-ssh 版本 2.9.2 至少在 pageant.rb

上使用 require dl/import

dl/import 已从 ruby 中删除,请参阅 https://github.com/ruby/ruby/blob/v2_2_0/NEWS#L148-L149 相反,建议 fiddle

net-ssh 3.* 似乎解决了这个问题(使用 fiddle/{import,{ for ruby >= 2.1)
net-ssh 版本 3.
对于 rhc

的兼容性似乎有所下降(仍在我的工作中)

所以一个简单的 hack 是修改 rhc/Gemfile & rhc/rhc.gemspec 并安装 gem
已经有人做到了。

一个解决方案(未测试)

gem 'rhc', :git => 'git://github.com/thrasher-redhat/rhc.git'

来自

替代解决方案(甚至在 windows 7 32 位上测试过:p)

git clone https://github.com/openshift/rhc
cd rhc

修改 rhc/Gemfile 和 rhc/rhc。gem规范 https://github.com/openshift/rhc/pull/748/files 然后

gem build rhc.gemspec

它应该输出像

blah! blah! blah! warnings and msgs......
Successfully built RubyGem
Name: rhc
Version: 1.38.4
File: rhc-1.38.4.gem

然后运行

gem install rhc-1.38.4.gem