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!