Multiple Versions of Ruby on same machine

  • Thread starter S. Robert James
  • Start date
S

S. Robert James

I'd like to include a complete version of Ruby, including all the
necessary libs, in the source tree for our internal app. That will
allow our unit tests/QA procedure/app deployment scripts to take
responsibility for upgrades to Ruby as well.

To do this, I of course need to include /usr/lib/ruby/* and
/usr/bin/ruby. And to set the PATH to use our local Ruby.

But it seems that I need to do more:
$ irb
irb(main):001:0> $:
=> ["/usr/lib/ruby/site_ruby/1.8",
"/usr/lib/ruby/site_ruby/1.8/i386-linux", "/usr/lib/ruby/site_ruby",
"/usr/lib/site_ruby/1.8", "/usr/lib/site_ruby/1.8/i386-linux",
"/usr/lib/site_ruby", "/usr/lib/ruby/1.8",
"/usr/lib/ruby/1.8/i386-linux", "."]

Where are those paths located? strings ruby didn't turn them up. I
need to be able to tell it to use the app's private ruby installation.

In general, has anyone done anything like this? What was their
experience? How would you recommend going about doing this?
 
M

Michael Greenly

Robert said:
I'd like to include a complete version of Ruby, including all the
necessary libs, in the source tree for our internal app. That will
allow our unit tests/QA procedure/app deployment scripts to take
responsibility for upgrades to Ruby as well.

To do this, I of course need to include /usr/lib/ruby/* and
/usr/bin/ruby. And to set the PATH to use our local Ruby.

But it seems that I need to do more:
$ irb
irb(main):001:0> $:
=> ["/usr/lib/ruby/site_ruby/1.8",
"/usr/lib/ruby/site_ruby/1.8/i386-linux", "/usr/lib/ruby/site_ruby",
"/usr/lib/site_ruby/1.8", "/usr/lib/site_ruby/1.8/i386-linux",
"/usr/lib/site_ruby", "/usr/lib/ruby/1.8",
"/usr/lib/ruby/1.8/i386-linux", "."]

Where are those paths located? strings ruby didn't turn them up. I
need to be able to tell it to use the app's private ruby installation.

In general, has anyone done anything like this? What was their
experience? How would you recommend going about doing this?

It's compiled in at build time, I think. Check out ruby config.

I think I'd try building it from source and installing in a custom
directory for example /opt/myruby. Then when you install it on the
target machines you put it in the same place.
 
W

Wayne Vucenic

I'd like to include a complete version of Ruby, including all the
necessary libs, in the source tree for our internal app.

I'm not sure if this is applicable in your particular situation, but you can
change $: at runtime using the "shift" and "unshift" methods. You
could modify your Ruby scripts to change $: as the first thing they do,
so all the paths point to your local version of Ruby.

Wayne
 
V

Vincent Fourmond

S. Robert James said:
Where are those paths located? strings ruby didn't turn them up. I
need to be able to tell it to use the app's private ruby installation.

In general, has anyone done anything like this? What was their
experience? How would you recommend going about doing this?

You can install Ruby anywhere by getting the source code and running
something like:

/configure --prefix=/your/favorite/directory
make
make install

Then, you should make sure that the right version is used when running
your project. Make sure that:

* this install of ruby is in the $PATH
* your scripts include the full path to your ruby executable in the
#!... line

Is that what you were looking for ?

Vince
 
G

Gregory Brown

In general, has anyone done anything like this? What was their
experience? How would you recommend going about doing this?

I don't really have any experience with this, but I think multiruby in
ZenTest does this, and you might be able to use it as a reference.
 
A

Artaban de Médée

matt said:
Is there a similar method to use a different Ruby version with Rails?

i don't know how but i'm sure it is because i've only Rails under jRuby
which has it's own ruby install.
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

Forum statistics

Threads
473,744
Messages
2,569,484
Members
44,903
Latest member
orderPeak8CBDGummies

Latest Threads

Top