On Sun, Nov 01, 2009 at 07:40:13AM +0900, Sean O'Donnell wrote:
 >
> > > Thoughts? I guess the high-level question is this: Are there
> > > additional flags that I need to pass to `configure` to build a self-
> > > contained, architecture-specific version?
> >
> > Built a fully staticly linked ruby instead. ?If you plan on using zlib or
> > openssl in your teaching you'll need to build them and put them in the
> > tarball too.
> >
> > Edit the ext/Setup file in the ruby distribution tarball to turn on the
> > 'nodynamic' option and uncomment each extension you would like compiled
> > statically.
> >
> > Then run :
> >
> > ? ? ./configure --disable-shared --prefix=/Users/student/local/ruby
> > ? ? make && make install
> >
> > Then I believe you'll be a step closer. ?Doing this will disable the
> > dynamic loading of extensions, so I'm assuming that you will not later
> > deploy gems with extensions on top of this.
> 
> Thanks - I may go this way. However, if I were to continue with a non-
> static version, how would I force the path to point to the desired
> shared library? Like this?
> 
> ./configure --prefix=/Users/student/local --libdir=/Users/student/
> local

I think just doing:

    ./configure --prefix=/Users/student/local 

will do the trick.

> In the version I've built, I can see libruby.dylib in the /Users/
> student/local/lib directory. It was my intention to keep these shared
> libraries contained within the build. I guess the executable just
> wasn't pointing to it.

Yup, that would be the case.

> I'm glad you mentioned that I cannot deploy w/extensions on top of the
> statically built ruby. I need to use sqlite3-ruby, which may fall into
> this category. Sounds like I've got some experimenting to do.

I think running this configure you'll probably be okay.  And you can prepare
all the items you need for you students this way too.  Go ahead and install
the gems you need by executing the /Users/student/local/bin/gem command
and they should all be installed relative to the /Users/student/local
on you instructors machine, then you can tar up the /Users/studient/local
dir for your students and distribute it.

And the other email in this thread mentions jruby, which is also an option, 
depending on the other gems you are planning on using.

enjoy,

-jeremy

-- 
========================================================================
 Jeremy Hinegardner                              jeremy / hinegardner.org