Ruby on Rails and Fedora Core 5

22 Mar 2006

I just upgraded my Rails 1.0, Ruby 1.8.2 workstation to Fedora Core 5 and had to do a little work to get Rails running again. I knew there was a problem when I restarted Apache and got the Rails app failed to start properly message in my browser. And so it began...

A quick check of the Apache error log revealed that the FastCGI processes weren't starting up - they were failing with a Uninitialized constant: PStore error. It seems that the FC5 upgrade had installed Ruby 1.8.4, so I uninstalled that using rpm --nodeps -e ruby ruby-libs.

After that I figured it'd be good to recompile Ruby 1.8.2 in case any underlying libraries had changed. And lo and behold, various OpenSSL-dependent things failed to compile - md5, rmd160, etc. Apparently some of the FC5 OpenSSL header files don't include stddef.h, so I added #include at the top of:

  • ext/digest/md5/md5ossl.h
  • ext/digest/rm160/rmd160ossl.h
  • ext/digest/sha1/sha1ossl.h

Ruby still wouldn't compile since line 541 of ext/openssl/ossl_x509store.c references a flags attribute on the X509_STORE_CTX struct, so I just, er, commented out line 541. After that Ruby built fine. I'm not doing any X509 stuff, so, your mileage may vary if you are.

I had installed fcgi and mod_fastcgi from source, so I did a make ; make install on both of those. I also uninstalled and reinstalled the fcgi gem.

When all was said and done, FC5 + Ruby 1.8.2 + Rails 1.0 + PostgreSQL 8.1.3 + Apache 1.3.33 + mod_fastcgi 2.4.2 + fastcgi 2.4.0 are all working together - and all the tests pass. Whew!