Bundler - how to re-install all gems after os update?

I had a working Rails setup using RVM on Ubuntu 11.10 with /home on a separate partition. I installed Ubuntu 12.04 (Alpha) on the root partition, leaving the home partition unchanged. I now find that some things don't work, I think due to the fact that the system has been updated and versions of libraries have changed. For example I get:

$ rails c /home/colinl/.rvm/gems/ruby-1.8.7-p302/gems/mysql2-0.3.10/lib/mysql2/mysql2.so: libmysqlclient_r.so.16: cannot open shared object file: No such file or directory - /home/colinl/.rvm/gems/ruby-1.8.7-p302/gems/mysql2-0.3.10/lib/mysql2/mysql2.so (LoadError)

I uninstalled gem mysql2 then did bundle install, which re-installed mysql2 (the same version) with its native extensions and this fixed the problem. I think (but may be corrected) that I need to re-install any gems that have native extensions in each of my projects. As I don't know which have native extensions what I would like to do is just to remove them all and then run bundle install to reinstall them. I can't find a method of uninstalling them however. Any suggestions?

Colin

Hi Colin,

If I understand your request correctly, you are asking for

rvm gemset empty <gemset name> ? Or did I misunderstand?

Below I show a log of bundle install, rvm gemset empty and bundle install

HTH,

Peter

I had a working Rails setup using RVM on Ubuntu 11.10 with /home on a separate partition. I installed Ubuntu 12.04 (Alpha) on the root partition, leaving the home partition unchanged. I now find that some things don't work, I think due to the fact that the system has been updated and versions of libraries have changed. For example I get:

$ rails c

/home/colinl/.rvm/gems/ruby-1.8.7-p302/gems/mysql2-0.3.10/lib/mysql2/mysql2.so: libmysqlclient_r.so.16: cannot open shared object file: No such file or directory - /home/colinl/.rvm/gems/ruby-1.8.7-p302/gems/mysql2-0.3.10/lib/mysql2/mysql2.so (LoadError)

I uninstalled gem mysql2 then did bundle install, which re-installed mysql2 (the same version) with its native extensions and this fixed the problem. I think (but may be corrected) that I need to re-install any gems that have native extensions in each of my projects. As I don't know which have native extensions what I would like to do is just to remove them all and then run bundle install to reinstall them. I can't find a method of uninstalling them however. Any suggestions?

Hi Colin,

If I understand your request correctly, you are asking for `rvm gemset empty <gemset name>` ? Or did I misunderstand?

That's the one, thanks. I was looking for it as part of bundle but you are right, emptying the gemset is what I want to do.

Below I show a log of `bundle install`, `rvm gemset empty` and `bundle install`

After the empty I had to "gem install bundler" before "bundle install" as it took that out too. Otherwise exactly as you show. Many thanks

Colin

Below I show a log of bundle install, rvm gemset empty and `bundle

install`

After the empty I had to “gem install bundler” before “bundle install”

as it took that out too. Otherwise exactly as you show.

That’s because I installed the “bundler” gem in my “global” gemset (IIRC).

So, when I create a new gemset, the new gemset automatically has

2 gems it reuses from that global gemset. It’s a neat trick :slight_smile:

peterv@ASUS:~$ rvm gemset use global

Using /home/peterv/.rvm/gems/ruby-1.9.3-p0 with gemset global

peterv@ASUS:~$ gem list

*** LOCAL GEMS ***

bundler (1.0.21)

rake (0.9.2.2)

peterv@ASUS:~$ rvm gemset create new_gemset

‘new_gemset’ gemset created (/home/peterv/.rvm/gems/ruby-1.9.3-p0@new_gemset).

peterv@ASUS:~$ rvm gemset use new_gemset

Using /home/peterv/.rvm/gems/ruby-1.9.3-p0 with gemset new_gemset

peterv@ASUS:~$ gem list

*** LOCAL GEMS ***

bundler (1.0.21)

rake (0.9.2.2)

Many thanks

You’re very welcome,

Peter