Thursday, April 02, 2009

Installing ruby 1.9 from source on debian/ubuntu, the rubygem/zlib/ssl problem

Since I noticed some people experienced the same problem, and the solution to this is scattered into multiple posts/comments, I'll just integrate it here.

Basically if you install ruby 1.9 (or probably other versions) from source in Debian based distribution (like Ubuntu), the zlib part of Ruby won't be installed. This problem will reveal itself when you want to install Rubygems, for example Rails for Ruby on Rails.

The solution is:
1. Clean up all that failed compiled files in the directory where you run "make". Just to be on the safe side.
2. Install zlib headers (zlib1g-dev in Debian Lenny) using your distro package manager.
2a. While you're at it, also install ssl headers (libssl-dev in Debian Lenny) using your distro package manager.
3. Run "./configure", "make", "make install".
4. Run "./configure", "make", "make install" again.

It should work then.

In my understanding, the problem is caused by Ruby's zlib compilation process that requires.. ruby, which is not created yet. So basically you try to install ruby as best as you can, then use that ruby to install the complete version of ruby.

No comments: