How to build a distributable Solaris binary for Ruby 1.8?

V

Venkat

Hello all:

I apologize if I have missed any other posts that addressed this.

For our company's internal use I have always used the GCC compiler and
followed the simple instructions in the README.TXT for compiling Ruby
1.8 in Solaris as well as in Linux. Now I need to run Ruby code in one
of our customer's place and the Information Security guys there are so
paranoid they are making a big fuss about installing GCC in their
boxes. I know SunFreeware has a 1.6.7 binary but I need 1.8.

Instead of fighting with them, is there any way I can compile Ruby 1.8
in our Sun boxes to create a build I can take and and install in the
customer's Solaris box?

I appreicate your help.

Thanks and Best Regards,
Venkat.
 
B

Brian Candler

Instead of fighting with them, is there any way I can compile Ruby 1.8
in our Sun boxes to create a build I can take and and install in the
customer's Solaris box?

Something like this ought to do the trick:

tar -czf rubydist.tar.gz \
/usr/local/lib/ruby/1.8 /usr/local/lib/ruby/site-ruby/1.8 \
/usr/local/bin/ruby /usr/local/bin/irb /usr/local/bin/erb \
/usr/local/lib/libruby-static.a

This has the advantage that any RAA packages you added to the core will also
be in your tarball.

If you configured with --enable-dynamic then you'll have to include
/usr/local/lib/libruby.so* as well.

Oh, that assumes you have a sensible GNU tar, if stock Solaris then
tar -cf rubydist.tar ...list of files...
gzip -9 rubydist.tar

You should do 'ldd /usr/local/bin/ruby' to see what it's dynamically linked
against, and make sure the target system has the same libraries: e.g.

$ ldd /usr/local/bin/ruby
libdl.so.1 => /lib/libdl.so.1
libcrypt_i.so.1 => /lib/libcrypt_i.so.1
libm.so.1 => /lib/libm.so.1
libc.so.1 => /lib/libc.so.1
libgen.so.1 => /lib/libgen.so.1
/usr/platform/SUNW,Ultra-80/lib/libc_psr.so.1

HTH,

Brian.
 
D

Daniel Berger

Brian said:
Something like this ought to do the trick:

tar -czf rubydist.tar.gz \
/usr/local/lib/ruby/1.8 /usr/local/lib/ruby/site-ruby/1.8 \
/usr/local/bin/ruby /usr/local/bin/irb /usr/local/bin/erb \
/usr/local/lib/libruby-static.a

This has the advantage that any RAA packages you added to the core will also
be in your tarball.

If you configured with --enable-dynamic then you'll have to include
/usr/local/lib/libruby.so* as well.

Oh, that assumes you have a sensible GNU tar, if stock Solaris then
tar -cf rubydist.tar ...list of files...
gzip -9 rubydist.tar

You should do 'ldd /usr/local/bin/ruby' to see what it's dynamically linked
against, and make sure the target system has the same libraries: e.g.

$ ldd /usr/local/bin/ruby
libdl.so.1 => /lib/libdl.so.1
libcrypt_i.so.1 => /lib/libcrypt_i.so.1
libm.so.1 => /lib/libm.so.1
libc.so.1 => /lib/libc.so.1
libgen.so.1 => /lib/libgen.so.1
/usr/platform/SUNW,Ultra-80/lib/libc_psr.so.1

HTH,

Brian.

I just noticed that sunfreeware.com doesn't appear to have a 1.8 package
yet. The only one I see is a 1.6.7 (!) package for Solaris 8 and
earlier. If I knew how to build one, I'd submit it. Anyone else?

Would your admins be willing to install a package?

Regards,

Dan
 
B

Brian Candler

I just noticed that sunfreeware.com doesn't appear to have a 1.8 package
yet. The only one I see is a 1.6.7 (!) package for Solaris 8 and
earlier. If I knew how to build one, I'd submit it. Anyone else?

Would your admins be willing to install a package?

Ah, I misunderstood if you wanted a pkgadd-type package.

We just compile from source, it's a 2-minute job (well, a 2-minute job under
FreeBSD, but a 10-minute job under Slowlaris)

B.
 
G

google-venkatp

I just noticed that sunfreeware.com doesn't appear to have a 1.8 package
yet. The only one I see is a 1.6.7 (!) package for Solaris 8 and
earlier. If I knew how to build one, I'd submit it. Anyone else?

Would your admins be willing to install a package?

Regards,

Dan
The admin guys are ok with installing a package. It is just that they are not
comfortable with compilers and stuff. I can handle them better if I am face to
face with them. I am in NJ and they are in Singapore.

Thanks and Regards,
Venkat.
 
J

Jim Freeze

Something like this ought to do the trick:

tar -czf rubydist.tar.gz \
/usr/local/lib/ruby/1.8 /usr/local/lib/ruby/site-ruby/1.8 \
/usr/local/bin/ruby /usr/local/bin/irb /usr/local/bin/erb \
/usr/local/lib/libruby-static.a

If what you want is a binary install, then Brian's solution
does all but change the paths stored inside the ruby executable.

If you want to do a binary install, I can give you some code
that will allow you to do a binary install and then change
the internally stored paths to the correct location.
 
N

nobu.nokada

Hi,

At Tue, 12 Aug 2003 00:53:30 +0900,
Brian said:
If you configured with --enable-dynamic then you'll have to include
/usr/local/lib/libruby.so* as well.

Oh, that assumes you have a sensible GNU tar, if stock Solaris then
tar -cf rubydist.tar ...list of files...
gzip -9 rubydist.tar

You can install ruby into a particular place by DESTDIR,
regardless configured prefix.

$ destdir=/var/tmp/clean/install/ruby
$ make install DESTDIR=$destdir
$ cd $destdir
$ tar -cf $tmpdir/rubydist.tar usr/local/*
$ gzip -9 $tmpdir/rubydist.tar

Note that you have to untar it at the root directory.
 

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

No members online now.

Forum statistics

Threads
473,764
Messages
2,569,565
Members
45,041
Latest member
RomeoFarnh

Latest Threads

Top