RVM Ruby 1.9.1 install can't locate zlib but its runtime and dev library are there

RubyRubygemsZlibRvm

Ruby Problem Overview


Trying to get Ruby 1.9.1 up and running with RVM on a fresh install (fedora).

After doing rvm install 1.9.1, the rubygems error logs show that zlib can't be located

> no such file to load -- zlib (LoadError)

However both the zlib runtime and development libraries are installed and up-to-date.

I'm kinda stumped on this one at the moment.

Ruby Solutions


Solution 1 - Ruby

Use rvm to install zlib

https://rvm.io/packages/zlib/

rvm package install zlib
rvm remove 1.9.1
rvm install 1.9.1 -C --with-zlib-dir=$rvm_path/usr

Edit: The rvm package command was renamed to rvm pkg in v1.6.25.

Solution 2 - Ruby

You need to install zlib before compiling/installing Ruby. If you didn't do this, make sure to remove everything related to Ruby 1.9.1 from your ~/.rvm folder (so that it will be build from scratch).

Install zlib using your favorite package manager:

sudo apt-get install zlib1g-dev

You might also want to install the following packages as they are required by tools like OpenSSL,
Nokogiri, IRB or SQLite:

 libssl-dev libreadline6-dev libxml2-dev libsqlite3-dev

Then install Ruby 1.9.1 again (nowadays I would suggest to use a newer version):

rvm install 1.9.1

Watch for "compiling ...". This should take a while. If it doesn't, then Ruby 1.9.1 might still be cached
in your ~/.rvm folder.

Solution 3 - Ruby

I encountered this problem when trying to:

> gem install gruff

What actually worked for me (Ubunut 10.10, ruby MRI 1.8.7) is:

  • reading the rvm notes and installing the dependencies for my ruby version

> sudo apt-get install build-essential bison openssl libreadline6 libreadline6-dev curl git-core zlib1g zlib1g-dev libssl-dev libyaml-dev libsqlite3-0 libsqlite3-dev sqlite3 libxml2-dev autoconf

> 1. rvm package install zlib > 2. rvm remove 1.8.7 > 3. rvm install 1.8.7

So basically: just follow the rvm manual

Solution 4 - Ruby

In modern version of rvm package argument have been replaced pkg argument.

Now, in order to install zlib package for rvm need:

rvm pkg install zlib

Solution 5 - Ruby

Since you are using Fedora try running:

yum install zlib-devel.i686

And then try installing ruby 1.9.1 using RVM

rvm install 1.9.1

Solution 6 - Ruby

Also, you do know that 1.9.1 is horribly broken which is why no one uses it seriously, right? The importance this has to the question asked is that many people do not realize this and attempt to use it with such APIs as Ruby On Rails. However, as rubyonrails.org/download states, Ruby 1.9.1 is not supported for use with Rails as it is broken.

Solution 7 - Ruby

On the latest Ubuntu (11.10) there is also an issue with readline.

> Readline was unable to be required, if you need completion or history > install readline then reinstall ruby.

So my entire rvm and latest ruby install process for ubunutu 11.10 was:

# install rvm
sudo apt-get install curl
curl -L get.rvm.io | bash -s stable

# install dependencies
rvm pkg install zlib
rvm pkg install readline

# install additional dependencies -- follow instructions for your distribution/version
rvm requirements

# install ruby
rvm install [ruby-version]

I'm posting this for my future reference and in case anyone else bumps into this issue as well.

Solution 8 - Ruby

For me, the solution was very simple: I had forgotten to close/reopen the shell, as rvm setup had instructed me to do. After I did that, the zlib error was gone and I was able to: gem install bundler

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
QuestionCasperView Question on Stackoverflow
Solution 1 - RubyJasonOngView Answer on Stackoverflow
Solution 2 - RubyrubiiiView Answer on Stackoverflow
Solution 3 - Rubyuser634573View Answer on Stackoverflow
Solution 4 - RubyPaul BritView Answer on Stackoverflow
Solution 5 - RubylmmendesView Answer on Stackoverflow
Solution 6 - RubydddView Answer on Stackoverflow
Solution 7 - RubyTyler BrockView Answer on Stackoverflow
Solution 8 - RubyLouView Answer on Stackoverflow