繁体   English   中英

WEBrick CGI处理程序指向错误的宝石位置

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM