Copying a Ruby installation

Discussion in 'Ruby' started by Murali Somanchy, May 18, 2009.

  1. I am trying to copy an entire ruby installation

    So, say for e.g. I installed ruby under /usr/ruby

    e.g. cp -R /usr/ruby /usr1; rm -rf /usr/ruby

    I want to be able to copy it to some other directory say /usr1/ruby and
    run (Let us also imagine that /usr/ruby has been deleted). My use case
    is that of cloning a ruby repo across the network. So the user that
    clones the ruby installation cannot see the original installation under
    /usr/ruby

    So, I did the copy (clone) and it was unable to find things like
    fileutils initially. Then, I set the RUBYLIB and it again failed in
    yaml.rb saying

    ruby/lib/ruby/1.9.1/yaml.rb:9:in `require': no such file to load --
    stringio (LoadError)

    What other variables do I have to set to make a copied/cloned ruby
    installation work?
    --
    Posted via http://www.ruby-forum.com/.
    Murali Somanchy, May 18, 2009
    #1
    1. Advertising

  2. Murali Somanchy

    Roger Pack Guest


    > e.g. cp -R /usr/ruby /usr1; rm -rf /usr/ruby


    Unfortunately with linux installed ruby, some things (like the #! first
    line of installed binaries) are hard coded to the location of ruby when
    they were first installed.

    If that's not a hinderance, though, *maybe* you could get by with
    changing rbconfig.rb
    Maybe.

    On windows interestingly this isn't a problem--it can't run scripts
    anyway so it always (for better or worse) just runs the first ruby it
    finds in the path. So you can move your ruby dirs in windows all right.

    -=r
    --
    Posted via http://www.ruby-forum.com/.
    Roger Pack, May 20, 2009
    #2
    1. Advertising

  3. Murali Somanchy wrote:
    > I want to be able to copy it to some other directory say /usr1/ruby and
    > run (Let us also imagine that /usr/ruby has been deleted).


    This may or may not work. Ruby remembers a lot of things about how it
    was built and where it was installed: see

    $ ruby -rrbconfig -rpp -e 'pp Config::CONFIG'

    Have a look in your rbconfig.rb, which may be somewhere like
    /usr/lib/ruby/1.8/i486-linux/rbconfig.rb

    Many of the constants in this file are defined relative to where
    rbconfig.rb itself exists, so they will be OK, but others may not.

    Tools like rake use 'bindir' + 'ruby_install_name' to locate the ruby
    interpreter itself (to reinvoke it)

    It is almost certainly going to be safer to recompile ruby to install
    under /usr1/ruby, and then distribute that. Use:

    ./configure --prefix=/usr1/ruby
    --
    Posted via http://www.ruby-forum.com/.
    Brian Candler, May 20, 2009
    #3
    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. anne001
    Replies:
    1
    Views:
    343
  2. Replies:
    1
    Views:
    157
    Ken Bloom
    May 28, 2007
  3. Shawn Mcclain
    Replies:
    0
    Views:
    176
    Shawn Mcclain
    Sep 28, 2007
  4. YAG
    Replies:
    2
    Views:
    150
    Ron Fox
    Apr 4, 2008
  5. John Park

    New to Ruby: copying arrays?

    John Park, Dec 28, 2008, in forum: Ruby
    Replies:
    6
    Views:
    128
    James Gray
    Dec 28, 2008
Loading...

Share This Page