Похоже, у других людей проблемы запуск Mongrel на Ruby 1.9.
Комментарий Ami Mahloof кажется возможным исправлением:
Вот что вам нужно сделать, чтобы исправить это
вот обновленные инструкции:
1) cd /usr/local/lib/ruby/gems/1.9.1/gems/mongrel-1.1.5/ext/http11
2) sudo vi / mate на http11.c и:
заменить строку 77 на
for (ch = RSTRING_PTR (f), end = ch + RSTRING_LEN (f); ch
заменить строку 172 на
двоеточие = strchr (RSTRING_PTR (temp), ' : ');
заменить строку 174 на
rb_hash_aset (req, global_server_name, rb_str_substr (temp, 0, RSTRING_LEN (temp)));
заменить строки 298 299
dptr = RSTRING_PTR (data);
dlen = RSTRING_LEN (data);
3) сохранить файл, закрыть vi / textmate
4) sudo ruby extconf.rb && sudo make && sudo make install
5) cd ../../lib/mongrel (или полный путь «/usr/local/lib/ruby/gems/1.9.1/gems/mongrel-1.1.5/lib/mongrel"
] mate / sudo vi handlers.rb
7) исправьте операторы case в
В строках 208-212 замените экземпляры «: false» на «then false»
8) sudo gem install gem_plugin (иначе mongrel может зависнуть)
done!
Это проблема компиляции, поэтому сделать это проще:
git clone git://github.com/mongrel/mongrel.git
cd mongrel/ext/http/
Теперь отредактируйте http11.c
:
#ifndef RSTRING_PTR
#define RSTRING_PTR(s) (RSTRING(s))
#endif
#ifndef RSTRING_LEN
#define RSTRING_LEN(s) (RSTRING(s))
#endif
Сохраните его и теперь из того же каталога выполните следующие действия:
sudo ruby extconf.rb && sudo make && sudo make install
Готово!
Вы можете установить mongrel 1.2 prerelease с помощью sudo gem install mongrel --pre
:
$ sudo gem1.9 install mongrel --pre > Building native extensions. This could take a while... > Successfully installed mongrel-1.2.0.pre2 > 1 gem installed