How to build a distributable Solaris binary for Ruby 1.8?

Discussion in 'Ruby' started by Venkat, Aug 11, 2003.

  1. Venkat

    Venkat Guest

    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.
    Venkat, Aug 11, 2003
    #1
    1. Advertising

  2. On Tue, Aug 12, 2003 at 12:39:12AM +0900, Venkat wrote:
    > 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.
    Brian Candler, Aug 11, 2003
    #2
    1. Advertising

  3. Brian Candler wrote:
    >
    > On Tue, Aug 12, 2003 at 12:39:12AM +0900, Venkat wrote:
    > > 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.


    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
    Daniel Berger, Aug 11, 2003
    #3
  4. On Tue, Aug 12, 2003 at 01:07:02AM +0900, Daniel Berger wrote:
    > 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.
    Brian Candler, Aug 11, 2003
    #4
  5. Venkat

    Guest

    In article <>, Daniel Berger says...
    >
    >Brian Candler wrote:
    >>
    >> On Tue, Aug 12, 2003 at 12:39:12AM +0900, Venkat wrote:
    >> > 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.

    >
    >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.
    , Aug 11, 2003
    #5
  6. Venkat

    Jim Freeze Guest

    On Tuesday, 12 August 2003 at 0:53:30 +0900, Brian Candler wrote:
    > On Tue, Aug 12, 2003 at 12:39:12AM +0900, Venkat wrote:
    > > 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
    >


    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.


    --
    Jim Freeze
    ----------
    Jone's Law:
    The man who smiles when things go wrong has thought of someone
    to blame it on.
    Jim Freeze, Aug 12, 2003
    #6
  7. Venkat

    Guest

    Hi,

    At Tue, 12 Aug 2003 00:53:30 +0900,
    Brian Candler wrote:
    > 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.

    --
    Nobu Nakada
    , Aug 12, 2003
    #7
    1. Advertising

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

It takes just 2 minutes to sign up (and it's free!). Just click the sign up button to choose a username and then you can ask your own questions on the forum.
Similar Threads
  1. Steve Sobol

    Distributable libraries?

    Steve Sobol, Nov 15, 2004, in forum: Java
    Replies:
    10
    Views:
    720
    Eric Sosman
    Nov 15, 2004
  2. Skip Montanaro
    Replies:
    9
    Views:
    588
    Florent Manens
    Jul 19, 2004
  3. John
    Replies:
    1
    Views:
    338
    MikeS
    Aug 27, 2006
  4. Wesley Rishel
    Replies:
    5
    Views:
    157
    James Britt
    Apr 1, 2008
  5. SwarmShepherd
    Replies:
    6
    Views:
    108
    SwarmShepherd
    Apr 26, 2011
Loading...

Share This Page