Chruby安装Ruby 1.8.7

时间:2014-02-19 20:13:55

标签: ruby version chruby

我正在使用chruby进行版本管理,并在Ruby 1.8.7中克隆了一个不幸的项目。是否可以安装带有chruby的Ruby 1.8.7?我无法为此过程找到资源。

6 个答案:

答案 0 :(得分:3)

TL; DR

你不能,至少不能使用ruby-install。 Ruby 1.8.7是end-of-life,Postmodern的ruby-install工具已经删除了对它的支持。

Ruby 1.8.7不受支持

控制台错误消息可能因安装的库和编译器而异,但未修改的Ruby 1.8.7不太可能在更新的系统上编译。例如,在Ubuntu 13.10上:

$ ruby-install ruby 1.8.7
[lots of output elided]
math.c:37:13: error: missing binary operator before token "("
 #elif define(ERANGE)
             ^
make: *** [math.o] Error 1
!!! Compiling ruby 1.8.7 failed!

为什么Ruby 1.8.7不受支持

2013年12月9日Postmodern放弃了对Ruby 1.8.7的支持。提交f013ed2解释:

commit f013ed2476ecce82ea41ff63de413daf2231b82b
Author: Postmodern <postmodern.mod3@gmail.com>
Date:   Mon Dec 9 16:09:30 2013 -0800

    Drop support for Ruby 1.8.x since it has reached End-of-Life.

    * CVE-2013-4164 affects Ruby 1.8.x and there is no official patch.
      Enabling users to install and run 1.8.x at this point is irresponsible.

替代

您的替代方案包括:

  1. 升级到较新的稳定版Ruby,例如Ruby 2.1.0
  2. 使用像RVM这样的Ruby版本管理器,在撰写本文时,仍然支持Ruby 1.8.6-p420和1.8.7-p374。
  3. 使用ruby-build代替ruby-install。按照关于在README中使用ruby-build的chruby说明来确保chruby可以找到新安装的Ruby。
  4. 在chruby找到它的地方手动安装1.8.7,然后使用chruby来管理它。

答案 1 :(得分:3)

我们确实删除了version 0.4.0中的所有变通补丁和1.8.x特定代码。但是,如果您在较旧的系统上安装ruby 1.8.7(使用旧版本的GCC,openssl等), 仍应编译。 1.8.7 不会在使用较新版本的GCC,openssl等的较新系统上进行编译。如果您确实需要安装1.8.7,则可以尝试将RVM's 1.8.7 patches应用于{{1 }} 选项;虽然运行严重修补的红宝石是有风险的。此外,RedHat和Debian仍在为其企业用户维护ruby 1.8.7软件包。

答案 2 :(得分:1)

您可以使用ruby-build来维护MRI 1.8.7的定义。

然后通过执行以下操作安装1.8.7:

ruby-build 1.8.7-p375 /opt/rubies/1.8.7-p375

答案 3 :(得分:0)

解决方法是使用apt-get

安装ruby
apt-get install ruby

接下来告诉chruby使用系统ruby。

chruby system

对于持久性,将其添加到ruby版本文件

echo 'system' > .ruby-version

答案 4 :(得分:0)

不幸的是chruby不再支持1.8.7。我已经设法通过使用rvm安装1.8.7并将其链接到~/.rubies来使其工作/运行,如下所示:

\curl -sSL https://get.rvm.io | bash
rvm install 1.8.7-head
ln -s ~/.rvm/rubies/ruby-1.8.7-head ~/.rubies/ruby-1.8.7

答案 5 :(得分:0)

如果您使用的是OS X(10.11,El Capitan),则可以使用ruby-buildchruby能够使用它的方式安装Ruby 1.8.7:

brew install ruby-build
brew install openssl libyaml libffi
brew install apple-gcc42
brew install openssl098

mkdir -p ~/.rubies

brew link openssl098 --force

ruby-build 1.8.7-p375 ~/.rubies/ruby-1.8.7

brew unlink openssl098

chruby 1.8.7

参考:http://pawelgoscicki.com/archives/2015/12/installing-ruby-1-8-7-head-for-chruby-using-ruby-build-on-os-x-10-11-el-capitan/