I solved this. The issue was coming from Phusion passenger ruby interpreter string.
As Phusion passenger is no more a gem, but a package now, apt-get will install a depency package : an old versioned ruby package
So even I installed a single version of ruby with RVM (ruby 2.1.0), Phusion Passenger was using the one (1.9.3) delivered in the package at /usr/bin/ruby, and therefore Passenger was somehow looking for gems into this interpreter folder. Of course he couldn't find the required gems because they were installed in relationship with ruby 2.1.0 and not with ruby 1.9.3.
Performing a rvm gemset list
command will show you which gemset is currently used but unfortunately we can not make the asumption that when we install gems they goes inside the current gemset.
It is more complex and obscure than that. It seems the folder location where you install your gems does matter.
Moreover the gems displayed by the gem list
command is almost useless to troubleshoot gems issues. Installing ruby environnement on a server is really a pain....
The bundler web site deployement page explains this a 'little' bit. I never found a good and detailed explanation on how gems are managed by rvm and bundler.
To solve the issue, I had to perform the following command
passenger-config --ruby-command
The output gave me the "ruby interpreter command" to copy and paste into my /etc/apache2/sites-available/mysite apache config file :
PassengerRuby /usr/local/rvm/gems/ruby-2.1.0/wrappers/ruby
However I instead placed it in the global section of my config file within the PassengerDefaultRuby parameter to make sure that any ruby helper tools use this version and only this version of ruby 2.1.0 :
PassengerDefaultRuby /usr/local/rvm/gems/ruby-2.1.0/wrappers/ruby
More information about how to setup the ruby interpreter string are explained here in the "RVM helper tool" section.
I highly recommand to read it.