代码之家  ›  专栏  ›  技术社区  ›  Wayne Conrad

在不将ruby安装到系统目录的情况下构建并运行ruby

  •  0
  • Wayne Conrad  · 技术社区  · 15 年前

    我已经克隆了ruby 1.8.7源代码树。我可以构建ruby。但如果不在系统目录中安装它,我就不知道如何运行它。我怎么做?

    $ ./ruby -e 'puts RUBY_VERSION'
    ÀÇ      ÀÇ      : ÀÇ    ÀÇ      : cannot open shared object file: No such file or directory - ÀÇ        ÀÇ       (LoadError)
    

    我也尝试过安装它,但没有安装到系统目录,并且得到了堆栈跟踪:

    $ ./configure --prefix=/home/wayne/tmp/ruby/installed --exec-prefix=/home/wayne/tmp/ruby/installed
    $ make
    $ make install
    $ /home/wayne/tmp/ruby/installed/bin/ruby -e 'puts RUBY_VERSION'
    /home/wayne/tmp/ruby/installed/lib/ruby/1.8/openssl/ssl.rb:26: uninitialized constant OpenSSL::SSL::VERIFY_PEER (NameError)
            from /home/wayne/tmp/ruby/installed/lib/ruby/1.8/openssl.rb:23:in `require'
            from /home/wayne/tmp/ruby/installed/lib/ruby/1.8/openssl.rb:23
    

    我有一种感觉,我离得很近,但一次失误等于一英里。

    3 回复  |  直到 15 年前
        1
  •  3
  •   csexton    15 年前

    rvm是一个很好的工具。并且应该能够处理在不同ruby版本(甚至是一组Gem)之间切换的繁重工作。

    安装是 very easy

    $ gem install rvm && rvm-install 
    $ echo "if [[ ! -z $HOME/.rvm ]] ; then source $HOME/.rvm ; fi" >> ~/.bash_profile
    

    然后 install

    rvm  install ruby-1.8.7-p160
    

    $ rvm 1.8.7-p160 
    $ ruby -v
    ruby 1.8.7 (2009-06-12 patchlevel 160) [i686-darwin10.0.0]
    $ rvm 1.8.7-p174 
    ruby 1.8.7 (2009-06-12 patchlevel 174) [i686-darwin10.0.0]
    
        2
  •  2
  •   bta    15 年前

    chroot 指挥部。创建一个临时目录,将ruby安装到 sbin chroot 进入临时文件夹。根据您正在测试的内容,您可能还必须将一些系统库复制到临时目录树中(在进行测试之前) 改变根目录 中)。

        3
  •  0
  •   Ben    15 年前

    rvm 用不同的红宝石测试你的应用程序。