Ruby gems in lib - spare tire principle

Hi,

I’m working on a console ruby application (not rails!) I will be
installing this application on several machines. I was wondering if
there is a way i can build it so i dont have to install the gems i’m
using for the app on each machine. I’d like to be able to just copy
the directory to each machine and run it. Ideally, i’d like to put the
gems in the lib folder or something and reference them from there, so
i don’t have to even install them on my dev machine. Is there a way to
do this?

In .net, we call this the “spare tire” principle.

thanks, Craig

On Mon, May 10, 2010 at 8:45 PM, Fregas [email protected] wrote:

I’m working on a console ruby application (not rails!) I will be
installing this application on several machines. I was wondering if
there is a way i can build it so i dont have to install the gems i’m
using for the app on each machine. I’d like to be able to just copy
the directory to each machine and run it. Ideally, i’d like to put the
gems in the lib folder or something and reference them from there, so
i don’t have to even install them on my dev machine. Is there a way to
do this? In .net, we call this the “spare tire” principle.

if your app is simple, you can place it together w all the gems in
one folder.

best regards -botp

On May 10, 5:40 am, Fregas [email protected] wrote:

In .net, we call this the “spare tire” principle.

thanks, Craig

Ruby Gem “OCRA” lets you “compile” your ruby code into an EXE file
that you can distribute to others,
without requiring that the users have Ruby installed on their PCs.

To install ocra:

gem install ocra

This should provide you with an easy way to deploy your program to
several PC systems.

On May 10, 8:45 am, Fregas [email protected] wrote:

In .net, we call this the “spare tire” principle.

Something like Capistrano might be easier.

On May 10, 6:40 am, Fregas [email protected] wrote:

Ideally, i’d like to put the
gems in the lib folder or something and reference them from there, so
i don’t have to even install them on my dev machine. Is there a way to
do this?

  1. Create “lib/gems” folder.
  2. In that folder, run “gem unpack gemname1 gemname2 …”
    → You will get new folders for each gem
  3. In the main file for your code, put
    Dir.chdir( File.dirname( FILE ) )
    $:.unshift( Dir['lib/gems//lib’] )

Ta-da!

Fregas wrote:

I’m working on a console ruby application (not rails!) I will be
installing this application on several machines. I was wondering if
there is a way i can build it so i dont have to install the gems i’m
using for the app on each machine. I’d like to be able to just copy
the directory to each machine and run it. Ideally, i’d like to put the
gems in the lib folder or something and reference them from there, so
i don’t have to even install them on my dev machine. Is there a way to
do this?

That is exactly what crown is for:

You may also want to check out rip and gem bundler.