# Wrapping ruby into one directory

**URL:** <https://www.ruby-forum.com/t/wrapping-ruby-into-one-directory/152428>\
**Category:** Ruby\
**Created:** [November 3, 2008, 9:27pm UTC](https://www.ruby-forum.com/t/wrapping-ruby-into-one-directory/152428 "2008-11-03T21:27:49Z")\
**Posts on this page:** 6\
**Page:** 1

<div class="post-metadata">

**Author:** ![Cary\_F](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/c/e0b2c6/32.png) [@Cary\_F](https://www.ruby-forum.com/u/Cary_F)\
**Post date:** [November 3, 2008, 9:27pm UTC](https://www.ruby-forum.com/t/wrapping-ruby-into-one-directory/152428/1 "2008-11-03T21:27:49Z")

</div>

Hello –

We’re looking at using ruby on a product and I had a question about how  
to package up the ruby interpreter into one  
stand-alone directory.

We’d like to have a full ruby interpreter which is not installed on the  
device. So that the interpreter can be  
downloaded on the fly with the ruby scripts, run, and then potentially  
discarded at a later time.

Almost like ruby2exe but i don’t want an exe since we’re a linux box. I  
just want a direectory tree which has the  
interpreter and all it’s ruby libs, etc. inside.

say the ruby interpreter is in /data/bin/ruby/…  
and i have a script foo.rb. I could just run ./data/bin/ruby foo.rb and  
have this ruby interpreter run.  
That same directory could be located in /data/bin/ruby/XXXX/ or in  
another totally different directory as well.

I can include ruby gems by including the gem/lib directory.  
But how do I connect the ruby interpreter with it’s /lib/ruby/1.8/…  
stuff?

Is that directory hardcoded somewhere in the binary?

Sorry I’m not explaining this concept very clearly.

Thanks for any hints. If this has been discussed before please give me  
some keywords to search the archive for. I  
couldn’t find anything when I searched.

Thanks,  
Cary

---

<div class="post-metadata">

**Author:** ![Cary\_F](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/c/e0b2c6/32.png) [@Cary\_F](https://www.ruby-forum.com/u/Cary_F)\
**Post date:** [November 4, 2008, 2:14pm UTC](https://www.ruby-forum.com/t/wrapping-ruby-into-one-directory/152428/2 "2008-11-04T14:14:34Z")

</div>

As long as you install from source that should not be a problem, I  
have done it before to carry my Ruby with me on a thumbdrive.\*

When you do  
./configure --help  
you will see a lot of different options, but if IIRC, all you have to do  
is

./configure --prefix=/myspecial/dir

And you can call your ruby with a full path then.

## HTH Robert

C’est véritablement utile puisque c’est joli.

Antoine de Saint Exupéry

---

<div class="post-metadata">

**Author:** ![Cary\_F](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/c/e0b2c6/32.png) [@Cary\_F](https://www.ruby-forum.com/u/Cary_F)\
**Post date:** [November 4, 2008, 3:06am UTC](https://www.ruby-forum.com/t/wrapping-ruby-into-one-directory/152428/3 "2008-11-04T03:06:49Z")

</div>

Cary F. wrote:

> I just want a direectory tree which has the interpreter and all it’s  
> stuff?  
> Cary

I have never used it, but rubyscript2exe is supposed to work on Linux.

-Justin

---

<div class="post-metadata">

**Author:** ![Cary\_F](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/c/e0b2c6/32.png) [@Cary\_F](https://www.ruby-forum.com/u/Cary_F)\
**Post date:** [November 4, 2008, 6:50pm UTC](https://www.ruby-forum.com/t/wrapping-ruby-into-one-directory/152428/4 "2008-11-04T18:50:46Z")

</div>

Thanks.

Can I move /myspecial/dir to /mynewspcial/dir/45 and it still runs just  
fine?

Doesn’t this hard-code the locations of those files into the binary  
somewhere? I mean, ruby needs to know where to look  
for it’s /site/1.8 libs… is that hardcoded, or is it possible that  
that is a relative path… how cool would that be.  
I guess I have the source so I could change that. Anyone have any idea  
where in the ruby source it puts that value?

Thanks,  
Cary

---

<div class="post-metadata">

**Author:** ![Cary\_F](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/c/e0b2c6/32.png) [@Cary\_F](https://www.ruby-forum.com/u/Cary_F)\
**Post date:** [November 4, 2008, 7:43pm UTC](https://www.ruby-forum.com/t/wrapping-ruby-into-one-directory/152428/5 "2008-11-04T19:43:38Z")

</div>

I also found in ruby.c: ruby\_init\_loadpath()

If I wanted to really make things locked down, I guess that I could  
change that to not use any hardcoded paths, and just  
make everything relative to the location of the binary. add the binary  
directory/…/lib/…

I think that might work - any comments?

Cary

---

<div class="post-metadata">

**Author:** ![Cary\_F](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/c/e0b2c6/32.png) [@Cary\_F](https://www.ruby-forum.com/u/Cary_F)\
**Post date:** [November 4, 2008, 7:38pm UTC](https://www.ruby-forum.com/t/wrapping-ruby-into-one-directory/152428/6 "2008-11-04T19:38:56Z")

</div>

On Tue, Nov 4, 2008 at 6:48 PM, Cary F. [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid)  
wrote:

> Thanks.
> 
> Can I move /myspecial/dir to /mynewspcial/dir/45 and it still runs just  
> fine?  
> I do not think so, but why not try?
> 
> Doesn’t this hard-code the locations of those files into the binary  
> somewhere? I mean, ruby needs to know where to look for it’s /site/1.8  
> libs… is that hardcoded, or is it possible that that is a relative path…  
> how cool would that be.  
> I do not know, I just tried it 😉
