Ruby on rails 詹金斯的问题

Ruby on rails 詹金斯的问题,ruby-on-rails,ruby,hudson,amazon-ec2,jenkins,Ruby On Rails,Ruby,Hudson,Amazon Ec2,Jenkins,前几天晚上,我尝试让Hudson在EC2实例上运行。直到今天早上,我根据我创建的内容创建了一个AMI,一切都很顺利。这样做还创建了我的驱动器的快照 之后我意识到我的Jenkins服务器没有运行。果然,看看我的ssh实例,我已经断开了连接。因此,我重新登录并尝试通过运行Jenkins server启动程序,这就是我遇到的错误: /home/ubuntu/.rvm/rubies/ruby-1.9.2-p180/lib/ruby/site_ruby/1.9.1/rubygems.rb:1064:in

前几天晚上,我尝试让Hudson在EC2实例上运行。直到今天早上,我根据我创建的内容创建了一个AMI,一切都很顺利。这样做还创建了我的驱动器的快照

之后我意识到我的Jenkins服务器没有运行。果然,看看我的ssh实例,我已经断开了连接。因此,我重新登录并尝试通过运行
Jenkins server
启动程序,这就是我遇到的错误:

/home/ubuntu/.rvm/rubies/ruby-1.9.2-p180/lib/ruby/site_ruby/1.9.1/rubygems.rb:1064:in `escape': can't convert Pathname to String (TypeError)
    from /home/ubuntu/.rvm/rubies/ruby-1.9.2-p180/lib/ruby/site_ruby/1.9.1/rubygems.rb:1064:in `block in loaded_path?'
    from /home/ubuntu/.rvm/rubies/ruby-1.9.2-p180/lib/ruby/site_ruby/1.9.1/rubygems.rb:1063:in `each'
    from /home/ubuntu/.rvm/rubies/ruby-1.9.2-p180/lib/ruby/site_ruby/1.9.1/rubygems.rb:1063:in `find'
    from /home/ubuntu/.rvm/rubies/ruby-1.9.2-p180/lib/ruby/site_ruby/1.9.1/rubygems.rb:1063:in `loaded_path?'
    from /home/ubuntu/.rvm/rubies/ruby-1.9.2-p180/lib/ruby/site_ruby/1.9.1/rubygems/custom_require.rb:35:in `require'
    from /home/ubuntu/.rvm/gems/ruby-1.9.2-p180/gems/httparty-0.6.1/lib/httparty.rb:10:in `<top (required)>'
    from /home/ubuntu/.rvm/rubies/ruby-1.9.2-p180/lib/ruby/site_ruby/1.9.1/rubygems/custom_require.rb:54:in `require'
    from /home/ubuntu/.rvm/rubies/ruby-1.9.2-p180/lib/ruby/site_ruby/1.9.1/rubygems/custom_require.rb:54:in `require'
    from /home/ubuntu/.rvm/gems/ruby-1.9.2-p180/gems/jenkins-0.6.2/lib/jenkins/api.rb:1:in `<top (required)>'
    from /home/ubuntu/.rvm/rubies/ruby-1.9.2-p180/lib/ruby/site_ruby/1.9.1/rubygems/custom_require.rb:54:in `require'
    from /home/ubuntu/.rvm/rubies/ruby-1.9.2-p180/lib/ruby/site_ruby/1.9.1/rubygems/custom_require.rb:54:in `require'
    from /home/ubuntu/.rvm/gems/ruby-1.9.2-p180/gems/jenkins-0.6.2/lib/jenkins.rb:3:in `<module:Jenkins>'
    from /home/ubuntu/.rvm/gems/ruby-1.9.2-p180/gems/jenkins-0.6.2/lib/jenkins.rb:1:in `<top (required)>'
    from /home/ubuntu/.rvm/rubies/ruby-1.9.2-p180/lib/ruby/site_ruby/1.9.1/rubygems/custom_require.rb:54:in `require'
    from /home/ubuntu/.rvm/rubies/ruby-1.9.2-p180/lib/ruby/site_ruby/1.9.1/rubygems/custom_require.rb:54:in `require'
    from /home/ubuntu/.rvm/gems/ruby-1.9.2-p180/gems/jenkins-0.6.2/bin/jenkins:4:in `<top (required)>'
    from /home/ubuntu/.rvm/gems/ruby-1.9.2-p180/bin/jenkins:19:in `load'
    from /home/ubuntu/.rvm/gems/ruby-1.9.2-p180/bin/jenkins:19:in `<main>'
/home/ubuntu/.rvm/rubies/ruby-1.9.2-p180/lib/ruby/site\u ruby/1.9.1/rubygems.rb:1064:在“escape”中:无法将路径名转换为字符串(TypeError)
from/home/ubuntu/.rvm/rubies/ruby-1.9.2-p180/lib/ruby/site\u ruby/1.9.1/rubygems.rb:1064:in‘block in load_path?’
from/home/ubuntu/.rvm/rubies/ruby-1.9.2-p180/lib/ruby/site\u ruby/1.9.1/rubygems.rb:1063:in'each'
from/home/ubuntu/.rvm/rubies/ruby-1.9.2-p180/lib/ruby/site\u ruby/1.9.1/rubygems.rb:1063:in'find'
from/home/ubuntu/.rvm/rubies/ruby-1.9.2-p180/lib/ruby/site\u ruby/1.9.1/rubygems.rb:1063:在“加载路径”中
from/home/ubuntu/.rvm/rubies/ruby-1.9.2-p180/lib/ruby/site\u ruby/1.9.1/rubygems/custom\u require.rb:35:in'require'
from/home/ubuntu/.rvm/gems/ruby-1.9.2-p180/gems/httparty-0.6.1/lib/httparty.rb:10:in`'
from/home/ubuntu/.rvm/rubies/ruby-1.9.2-p180/lib/ruby/site\u ruby/1.9.1/rubygems/custom\u require.rb:54:in'require'
from/home/ubuntu/.rvm/rubies/ruby-1.9.2-p180/lib/ruby/site\u ruby/1.9.1/rubygems/custom\u require.rb:54:in'require'
from/home/ubuntu/.rvm/gems/ruby-1.9.2-p180/gems/jenkins-0.6.2/lib/jenkins/api.rb:1:in`'
from/home/ubuntu/.rvm/rubies/ruby-1.9.2-p180/lib/ruby/site\u ruby/1.9.1/rubygems/custom\u require.rb:54:in'require'
from/home/ubuntu/.rvm/rubies/ruby-1.9.2-p180/lib/ruby/site\u ruby/1.9.1/rubygems/custom\u require.rb:54:in'require'
from/home/ubuntu/.rvm/gems/ruby-1.9.2-p180/gems/jenkins-0.6.2/lib/jenkins.rb:3:in`'
from/home/ubuntu/.rvm/gems/ruby-1.9.2-p180/gems/jenkins-0.6.2/lib/jenkins.rb:1:in`'
from/home/ubuntu/.rvm/rubies/ruby-1.9.2-p180/lib/ruby/site\u ruby/1.9.1/rubygems/custom\u require.rb:54:in'require'
from/home/ubuntu/.rvm/rubies/ruby-1.9.2-p180/lib/ruby/site\u ruby/1.9.1/rubygems/custom\u require.rb:54:in'require'
from/home/ubuntu/.rvm/gems/ruby-1.9.2-p180/gems/jenkins-0.6.2/bin/jenkins:4:in`'
from/home/ubuntu/.rvm/gems/ruby-1.9.2-p180/bin/jenkins:19:in'load'
from/home/ubuntu/.rvm/gems/ruby-1.9.2-p180/bin/jenkins:19:in`'
我确实使用了一个来获取这个设置,并引用了它来查看是否遗漏了什么,但它非常简单。我已经在谷歌上搜索了
无法将路径名转换为字符串的问题,而且运气也不好。我真的不知道从哪里开始调查这件事。这是一个Ruby问题吗?轨道?詹金斯

如果我发现任何其他有用的信息,我会更新这个

编辑 我还应该补充一点,我确实进入了Jenkins创建的项目的工作区,并且能够很好地启动它。因此,我不认为这是一个Ruby问题

编辑2
好的,所以我决定把EC2从等式中去掉,用Ubuntu10.10创建我自己的服务器。同样的设置,一切都很好,然后我重新启动,现在又出现了这个错误。现在我相信这是一个简单的愚蠢的错误,因为我是一个相对Ubuntu的新手,但我相信其他人以前也遇到过这个问题

要想快速解决问题,请尝试将rubygems降级到1.6以下。 看起来rubygems开发人员引入了一些代码来避免多次加载文件

如果您感兴趣,以下是有问题的代码(来自修订版dcfba4e1de4c7388425eb5de5066cb5aa9bea6e6):

如果您无法降级,一个不太理想的解决方案是编辑rubygems.rb以便

Regexp.escape path
变成

Regexp.escape path.to_s

长话短说,解决方案是将Jenkins安装为apt-get,而不是使用Gem。这似乎归结为一个问题,Jenkins使用了错误的Ruby版本

这个URL最终让我开始着手解决这个问题:


我还应该补充一点,尽管开尔文给出的答案可能让我绕过了这个错误,但这两个答案都不是解决问题的理想方案。

p.S.令人可笑的是,这么快的搜索引擎就能找到新的帖子,而谷歌却能找到它们。在发布这篇文章之后,我继续我的搜索,并找到了一个链接,看起来像是更多的信息。。。这是一个擦肩而过,但在另一个网站上。
Regexp.escape path.to_s