【问题标题】:How to install ruby 1.8.7 on ubuntu 12.04 with rvm?如何使用 rvm 在 ubuntu 12.04 上安装 ruby​​ 1.8.7?
【发布时间】:2013-07-15 16:16:46
【问题描述】:

我正在使用旧版 Rails 系统。我需要一份 ruby​​ 1.8.7 的副本 我刚刚在工作中得到了一台新电脑(终于),它有 ubuntu 12.04

不幸的是,我刚刚发现可用于我的系统的 rvm-rubies 不包含 1.8.7(请参阅下面的列表)

如何安装 ruby​​ 1.8.7? 还有其他我可以指出的来源吗?

请注意:我没有使用 apt-get 安装 rvm,这不是问题

这是可用的红宝石列表:

# Rubies available for 'ubuntu/12.04/x86_64':

   ruby-1.9.3-p194
   ruby-1.9.3-p286
   ruby-1.9.3-p327
   ruby-1.9.3-p362
   ruby-1.9.3-p374
   ruby-1.9.3-p392
   ruby-1.9.3-p429
   ruby-1.9.3-p448
   ruby-2.0.0-p0
   ruby-2.0.0-p195
   ruby-2.0.0-p247

编辑:

请注意,这里是一些更简单的 rvm 命令的输出:

triton:[~]% rvm list  

rvm rubies

# No rvm rubies installed yet. Try 'rvm help install'.

并且 rvm install 给出了这个消息(这表明标准存储库中没有 1.8.7 版本)。

triton:[~]% rvm install 1.8.7
Searching for binary rubies, this might take some time.
No binary rubies available for: ubuntu/12.04/x86_64/ruby-1.8.7-p374.
Continuing with compilation. Please read 'rvm help mount' to get more information on binary rubies.
You requested building with 'gcc-4.4' but it is not in your path.

【问题讨论】:

  • 我的 Ubuntu 12.08 在apt 中有ruby1.8。它很可能在 rvm 中不可用,因为它已被淘汰。编辑:我在 rvm 中有 1.8.6 的红宝石可供安装...
  • 我没有通过 apt 安装。它不是在 apt-sources 中查找,而是在 rvm 源代码中查找。但是 - 是的:) 它在 rvm 中不可用。我只是想知道是否有另一种安装 rvm 的方法 - 如果我可以指出它,例如 10.04 rvm 源(或其他 - 只要它有 1.8.7)
  • 您可以从这里删除 rvm 并从源代码安装 ruby​​ 1.8.7p374:ftp.ruby-lang.org/pub/ruby/1.8
  • 你试过rvm install ruby-1.8.7吗?
  • “而 rvm install 给出了这条消息(这表明标准存储库中没有 1.8.7 版本)。”这并没有说明没有 1.8.7 版本,只是没有该版本的二进制文件。但它确实表明你缺少一个名为 gcc.4-4 的编译器

标签: ruby rvm ubuntu-12.04


【解决方案1】:

供将来参考:我想通了。

重要的线索在 rvm install 结果的最后一行:

You requested building with 'gcc-4.4' but it is not in your path.

我有 gcc 版本 4.6,但我的 .zshrc(从我以前的计算机复制)指向这个旧版本。

正因为如此,rvm 以为我没有 c 编译器。这意味着 rvm 无法从源代码安装任何 rubies - 只能安装预编译的 rubies - 这意味着它仅限于已为我的平台预编译的那些(即 64 位 ubuntu 12.04)

当我修复 .zshrc 中的 gcc 行时 - rvm 能够弄清楚如何安装+编译源代码 rubies - 包括 v1.8.7

【讨论】:

    【解决方案2】:

    您提供的是来自rvm list remote 的输出 - 它列出了您系统的二进制(已编译)rubies,以查看更多可能的版本选择运行rvm list 其中将包括1.8.7

    # MRI Rubies
    [ruby-]1.8.6[-p420]
    [ruby-]1.8.7[-p374]
    [ruby-]1.9.1[-p431]
    [ruby-]1.9.2[-p320]
    [ruby-]1.9.3[-p448]
    [ruby-]2.0.0-p195
    [ruby-]2.0.0[-p247]
    [ruby-]2.0.0-head
    ruby-head
    

    它继续与其他 ruby​​ 发行版的数量。

    如果不确定你总是可以运行:

    rvm install 1.8.7
    

    RVM 会进行各种检测,并且很可能知道如何处理指定的版本。

    【讨论】:

    • rvm list rvm rubies # 还没有安装 rvm rubies。试试“rvm help install”。
    • rvm install 1.8.7 搜索二进制红宝石,这可能需要一些时间。没有可用的二进制红宝石:ubuntu/12.04/x86_64/ruby-1.8.7-p374。继续编译。请阅读“rvm help mount”以获取有关二进制红宝石的更多信息。您请求使用“gcc-4.4”进行构建,但它不在您的路径中。
    • AFAICS "rvm list" 列出了你机器上当前可用的 rubies...我的机器上目前没有 .. "rvm install" 给出了我已经讨论过的错误 - 因为存储库没有没有 1.8.7
    • 即我已经尝试过了,但它不知道如何处理指定的版本 - 这就是我在这里问这个问题的原因;)
    【解决方案3】:

    来自文档:

    要从存储库安装特定标记版本的 ruby​​,我们 指定 -t(标签名称)。

    然后继续谈论分支......

    存储库分支 (MRI)

    要从存储库安装特定分支版本的 ruby​​,我们指定 --branch(分支名称)。命名红宝石有助于避免冲突。

    $ rvm install ruby-head -n zombie --branch ruby_1_8 && rvm ruby-head-zombie
    $ ruby -v
    ruby 1.8.8dev (2012-05-21) [i386-darwin10.8.0]
    $ rvm install ruby-head -n newborn && rvm ruby-head-newborn
    $ ruby -v
    ruby 2.0.0dev (2012-06-03 trunk 35876) [x86_64-darwin10.8.0]
    

    您会在 ruby​​ 存储库中找到所有有效分支的列表:http://svn.ruby-lang.org/repos/ruby/branches/

    您可以访问的内容远不止显示的内容。

    ruby_1_3/
    ruby_1_4/
    ruby_1_6/
    ruby_1_8/
    ruby_1_8_5/
    ruby_1_8_6/
    ruby_1_8_7/
    ruby_1_9_1/
    ruby_1_9_2/
    ruby_1_9_3/
    ruby_2_0_0/
    

    更多关于RVM official website的提示

    此外,如果需要更多帮助,freenode.net 上的 IRC 聊天室也很棒!

    【讨论】:

    • 好吧,我不确定僵尸的东西是什么——而且(就像一个明智的人)我讨厌只运行我不认识的命令;)你能解释一下各种您上面的部分命令?非常感谢:)
    • 我在 RVM 网站上读到了这一点 - 但它没有解释:a)分支的含义 b)它们是否会在任何机器上愉快地运行(我担心是因为标准 repo 被标记为 64 位...所以我不想去加载只能在 32 位上运行的红宝石,或者通过指定错误的分支在不同的架构上运行)
    • 命令rvm listrvm list known 将显示可以安装的内容。这些信息开始讨论如何安装可以编译并存储在您选择的存储库中的 Ruby。 64 位等与名称等移动目标并不真正相关,它们的存储库也可以保存 32 位。这种方式很灵活。正如他所说,僵尸的东西只是名字而已。
    猜你喜欢
    • 1970-01-01
    • 2013-08-09
    • 2012-09-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-02-22
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多