[英]WEBrick CGI handler pointing to wrong gem location
我正在尝试从WEBrick CGIhandler执行我的CGI程序,并不断出现gem库“ loaderror”失败。 有人看到过以下行为吗? 如何获得CGI脚本来搜索有效的宝石位置?
[情况]
当我通过Webrick服务器运行需要'mysql2'库的CGI脚本时,出现以下错误:
错误CGIHandler:/home/charles/code/svr/lib/cgitest.rb:/home/charles/.rvm/rubies/ruby-1.9.3-p194/lib/ruby/site_ruby/1.9.1/rubygems/custom_require。 rb:36:in'require':无法加载此类文件-mysql2 / version(LoadError)
从cgitest.rb中注释掉这个特殊的“ require”使得此脚本可以正常工作,因此看起来加载该库失败。 在脚本中添加了“ puts Gem.path”,表明CGIHandler正在寻找以下目录来查找gem;
[“ /home/charles/.rvm/rubies/ruby-1.9.3-p194/lib/ruby/gems/1.9.1","/.gem/ruby/1.9.1”]
而实际的GEM:HOME和GEM:PATH在后面;
[“ /home/charles/.rvm/gems/ruby-1.9.3-p194”,“ /home/charles/.rvm/gems/ruby-1.9.3-p194@global”]
我认为我缺少一些非常简单的东西,但无法弄清楚它们。 如果有人将我引向正确的方向,我将不胜感激。 任何意见都将受到欢迎。
[环境]
使用RVM将Ruby 1.9.3安装到带有“ mysql2”库的许多宝石上的Ubuntu Server 12.4。 当我从本地运行时,脚本可以加载“ mysql2”。
$哪个红宝石
/home/charles/.rvm/rubies/ruby-1.9.3-p194/bin/ruby
$ irb
1.9.3-p194:001> Gem.path
=> [“ /home/charles/.rvm/gems/ruby-1.9.3-p194”,“ /home/charles/.rvm/gems/ruby-1.9.3- p194 @ global”]
1.9.3-p194:002>需要'mysql2'
=>是的
您需要使用包装器而不是bin / ruby:
/home/charles/.rvm/wrappers/ruby-1.9.3-p194/ruby
这将确保您在启动红宝石时加载适当的环境。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.