我正在尝试从WEBrick CGIhandler执行我的CGI程序并且继续使用gemdriver的'loaderror'失败。以前有人看过以下行为吗?我怎样才能获得我的CGI脚本来搜索有效的宝石位置?
[Situaltion]
当我通过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`requirement':无法加载此类文件 - 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”]
实际创业板: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安装到Ubuntu Server 12.4,包含一堆宝石,包括“mysql2”库。当我从本地运行时,脚本可以加载'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'
=>真
答案 0 :(得分:0)
您需要使用包装器而不是bin / ruby:
/home/charles/.rvm/wrappers/ruby-1.9.3-p194/ruby
这将确保您在启动ruby时加载适当的环境。