在没有 ruby​​-switch 的情况下安装 ruby​​ 2.0?

aSt*_*eve 23 ruby software-installation

我发现在最新的 Ubuntu 14.04 上安装 ruby​​ 2.0 的任务相当令人沮丧。我知道我可以放弃软件包并从源代码安装 - 但我更愿意安装一个软件包 - 如果可能的话。

我在 13.10 上发现了这个关于 ruby​​ 的问题/答案 - 看起来像我想要的。

如何安装红宝石?

不幸的是,该策略似乎不可行 - ruby​​-switch 包已在 14.04 中删除。

http://www.ubuntuupdates.org/package/core/trusty/universe/base/ruby-switch

包的删除引用了一个在我看来完全无关的错误。

我很困惑为什么使用 apt-get 安装 ruby​​2.0 会安装 ruby​​1.9 并使它成为默认的 ruby​​ 解释器。我确实得到了一个 ruby​​2.0 二进制文件——但是脚本(在执行 ruby​​ 时依赖于 2.0 解释器)没有得到它。此外,当我使用 gem et。阿尔。安装 ruby​​ 包 - 这些似乎是为 ruby​​1.9 而不是 2.0 安装的。很不满意。

任何人都可以提供有关将 ruby​​ 2.0 安装为标准 ruby​​ 解释器的最直接方法的提示吗?我如何在没有 ruby​​-switch 的情况下从 ruby​​ 1.9 切换到 2.0?

Lui*_*ado 29

对于 14.04,我发现了以下 Ruby 2.x 附带的 PPA

我还在 GoRails 中找到了一在 14.04 上安装 Ruby的说明,但我猜因为它们很长,你会想要一个 PPA。

简单地添加其中之一后:

sudo apt-get update
sudo apt-get install ruby2.1 # In the case you want 2.1
Run Code Online (Sandbox Code Playgroud)

  • 为了在 Ubuntu 14.04 中安装 Ruby 2.0,是否真的有必要添加一个“个人包存档”——因为没有可用的“Ruby2.0”包? (6认同)
  • 是的,但正如您提到的,它不是 2.x 分支,而是 1.9。所以他们应该解决这个问题。 (3认同)
  • 看起来 2.0 和 1.9 解释器都在主存储库中(具有奇怪的依赖关系) - 但 ruby​​-switch 由于虚假原因已被删除。 (2认同)

Bra*_*iam 8

Debian 版本的 Ruby 不支持在同一系统上安装多个 ruby​​。Debian 淘汰了该软件包,Ubuntu 只是将其从存储库中删除。您应该使用rbenv来在不同的 ruby​​ 版本之间切换。这是 ruby​​-switch 包描述推荐的方法,并且是错误 737782 中作为首选讨论的方法,因为据说存储库中不应只有一个版本的 ruby​​。

安装ruby2.0包时默认安装 Ruby 2.0 ,无需其他操作。如果ruby已安装该软件包,建议将其删除。您的系统上应该有/usr/bin/ruby2.0可用的二进制文件。

  • 刚看到 http://blog.costan.us/2014/04/restoring-ruby-20-on-ubuntu-1404.html (5认同)
  • 嗯...当我安装 ruby​​2.0 包时,我得到了一个 ruby​​2.0 可执行文件和一个 ruby​​ 1.9 可执行文件。在与 gem 交互时,ruby1.9 似乎被假定为系统 ruby​​ 版本。在进一步调查中,我发现脚本(虽然声称需要 ruby​​ 2.0)实际上在 ruby​​ 1.9 上运行良好 - 所以我放弃了 ruby​​2.0 包。我只想要一个 ruby​​ 版本——即 runy 2.0——但 ubuntu 14.04 软件包似乎不允许这样做。 (2认同)
  • 我肯定看到了,这毫无意义。在 apt-get install ruby​​2.0 我得到:将安装以下新软件包: libjs-jquery libruby1.9.1 libruby2.0 ruby​​ ruby​​1.9.1 ruby​​2.0 ruby​​gems-integration (2认同)

小智 8

sudo apt-get install ruby2.0
sudo rm /usr/bin/ruby && sudo ln -s /usr/bin/ruby2.0 /usr/bin/ruby
sudo rm -fr /usr/bin/gem && sudo ln -s /usr/bin/gem2.0 /usr/bin/gem
Run Code Online (Sandbox Code Playgroud)


小智 5

如果你想在 rubies 之间切换,我建议使用 rvm ( https://rvm.io )。它是一个包管理器,它允许您在一台机器上安装许多不同的红宝石(不仅仅是 Matz 的),无论是本地用户还是全局用户。

我知道您要的是“包裹”,所以这可能对您不起作用。但我认为如果这是您的开发机器,它可能会有所帮助。

这样做的好处是您可以为 2.1.1 安装一个 gemset,为 2.0 或 1.9.3 等安装其他 gemset。它还允许您测试 jruby、rubinius 等,而无需将您的系统提交给一个。

我没有在生产中使用它,但显然它适用于开发和开发。

这是快速入门:https : //rvm.io/rvm/install