gpt4 book ai didi

ruby - 构建并运行 ruby​​ 而无需将其安装到系统目录

转载 作者:太空宇宙 更新时间:2023-11-03 17:41:36 25 4
gpt4 key购买 nike

我已经克隆了 ruby​​ 1.8.7 源代码树。我可以 build ruby 。但是我无法弄清楚如何在不将它安装在系统目录中的情况下运行它。我该怎么做?

背景:我想使用“git bisect”来确定哪个 Ruby 版本在我的代码中引入了新行为。我需要针对测试程序多次构建和运行 ruby​​,但我不想破坏 Debian 软件包安装的 ruby​​。

这是我尝试运行从源代码构建的 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

我有一种感觉,我很接近,但错过就像一英里一样好。

最佳答案

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]

关于ruby - 构建并运行 ruby​​ 而无需将其安装到系统目录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2007931/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com