从Jenkins运行时,Ruby无法正确理解安装的gem是什么?

时间:2011-09-27 18:08:27

标签: ruby rubygems continuous-integration jenkins

我有一个应该运行的Jenkins工作。 职位描述如下:
SVN更新工作区存储库
运行以下Windows批处理命令“ruby -d tester.rb

当我从主机(我前面的物理机)上的命令行运行此命令时,脚本运行没有问题

当我运行一个名为“ruby -v”的单独作业时,它会看到正确版本的ruby。
当我运行一个名为“gem list”的单独作业时,它会看到正确版本的ruby。

但是,当我运行顶部描述的作业时,我得到的错误是没有安装“gem list”所列出的任何宝石,并且我的脚本没有运行。

有人可以提出建议吗?

这里有更多信息来自运行中的代码,其中包含一些数据组合:


[workspace] $ cmd /c call C:\Windows\TEMP\hudson3791189246243258127.bat

C:\Program Files (x86)\Jenkins\jobs\job1\workspace>ruby -r rubygems -e "p Gem.path" 
["C:/Windows/system32/config/systemprofile/.gem/ruby/1.8", "C:/Ruby187/lib/ruby/gems/1.8"]

C:\Program Files (x86)\Jenkins\jobs\job1\workspace>cd .qa_automation\trunk 

C:\Program Files (x86)\Jenkins\jobs\job1\workspace\.qa_automation\trunk>set GEM_HOME=c:\Ruby187\lib\ruby\gems\1.8 

C:\Program Files (x86)\Jenkins\jobs\job1\workspace\.qa_automation\trunk>ruby -d _Tester.rb config\portalconfigPROD.txt compare_IWT_Main_TSS 
Exception `LoadError' at C:/Ruby187/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:36 - no such file to load -- random_data
Exception `NoMethodError' at C:/Ruby187/lib/ruby/1.8/rational.rb:78 - undefined method `gcd' for Rational(1, 2):Rational
Exception `LoadError' at C:/Ruby187/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:36 - no such file to load -- uuidtools
Exception `NameError' at C:/Ruby187/lib/ruby/gems/1.8/gems/uuidtools-2.1.2/lib/uuidtools/version.rb:25 - uninitialized constant UUID
Exception `LoadError' at C:/Ruby187/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:36 - no such file to load -- builder
./lib/Portal/Session.rb:379: warning: statement not reached
./lib/Portal/Session.rb:434: warning: statement not reached
Exception `LoadError' at C:/Ruby187/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:36 - no such file to load -- selenium-webdriver
Exception `LoadError' at C:/Ruby187/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:36 - no such file to load -- yajl/json_gem
Exception `LoadError' at C:/Ruby187/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:60 - no such file to load -- yajl/json_gem
Exception `LoadError' at C:/Ruby187/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:36 - no such file to load -- json/ext/parser
Exception `LoadError' at C:/Ruby187/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:60 - no such file to load -- json/ext/parser
Exception `LoadError' at C:/Ruby187/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:60 - no such file to load -- json/ext/parser
Using Pure library for JSON.
_Tester.rb:78: warning: already initialized constant ARGV
C:/Ruby187/lib/ruby/gems/1.8/gems/selenium-webdriver-2.7.0/lib/selenium/webdriver/remote/capabilities.rb:171: warning: method redefined; discarding old proxy=
C:/Ruby187/lib/ruby/gems/1.8/gems/ffi-1.0.9-x86-mingw32/lib/ffi/struct.rb:225: warning: discarding old align
Exception `LoadError' at C:/Ruby187/lib/ruby/gems/1.8/gems/ffi-1.0.9-x86-mingw32/lib/ffi/library.rb:133 - LoadError
Exception `LoadError' at C:/Ruby187/lib/ruby/gems/1.8/gems/ffi-1.0.9-x86-mingw32/lib/ffi/library.rb:133 - LoadError

1 个答案:

答案 0 :(得分:0)

要快速入侵,请尝试运行命令"ruby -d tester.rb",其中包含安装gem的文件路径。

例如"/users/llaskin/lib/bin/ruby -d tester.rb"

此外,如果您使用RVM安装ruby和gem,并安装了多个版本,那么rvm会搞砸。