Обработчик WEBrick CGI указывает на неправильное расположение драгоценного камня

Я пытаюсь выполнить свою программу CGI из WEBrick CGIhandler и постоянно терплю неудачу с ошибкой загрузки библиотек драгоценных камней. Кто-то видел следующее поведение раньше? Как я могу заставить свои сценарии CGI искать действительное местоположение драгоценного камня?

[Ситуация]

Когда я запускал сценарии CGI, для которых требуется библиотека mysql2, через сервер Webrick, я получил следующую ошибку:

ОШИБКА 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/версия (LoadError)

Прокомментируйте это конкретное «требование» из cgitest.rb, чтобы этот скрипт работал, поэтому, похоже, просто не удалось загрузить эту библиотеку. Добавлено «помещает Gem.path» в сценарий, указывающее, что CGIHandler просматривает следующие каталоги, чтобы найти драгоценный камень;

["/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 на Ubuntu Server 12.4 с кучей драгоценных камней, включая библиотеку «mysql2». И скрипт может загружать «mysql2», когда я запускаю локально.

$какой рубин

/домашний/чарльз/.rvm/рубины/руби-1.9.3-p194/бин/рубин

$ирб

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»

=> правда


person charles    schedule 03.06.2012    source источник


Ответы (1)


Вам нужно использовать обертку вместо bin/ruby:

/home/charles/.rvm/wrappers/ruby-1.9.3-p194/ruby

Это гарантирует, что вы загрузите правильную среду при запуске ruby.

person mpapis    schedule 03.06.2012
comment
Спасибо, мпапис, ты классный! Теперь все драгоценные камни могут быть загружены по назначению. - person charles; 05.06.2012
comment
@charles, вы должны принять ответ, если он решает вашу проблему;) - person mpapis; 05.06.2012