问题描述
我发现在最新的Ubuntu 14.04上安装ruby 2.0的任务相当令人沮丧。我知道我可以放弃这些软件包并从源代码安装-但如果可能的话,我宁愿安装一个软件包。
我在13.10上找到了关于红 gems 的问题/答案-看起来像我想要的。
不幸的是,该策略似乎不可行-ruby-switch软件包已在14.04中删除。
http://www.ubuntuupdates.org/package/core/trusty/universe/base/ruby-switch
该软件包的删除引用了a bug,对我来说,这似乎完全无关。
我很困惑为什么使用apt-get安装ruby2.0会安装ruby1.9并使其成为默认的ruby解释器。我确实得到了ruby2.0二进制文件-但是脚本(执行ruby时依赖于2.0解释器)不会将其提取。此外,当我使用gem et。等安装ruby软件包-这些似乎是为ruby1.9而不是2.0安装的。非常不满意。
任何人都可以提供有关将ruby 2.0安装为标准ruby解释器的最直接方法的提示吗?在没有ruby-switch的情况下,我应该如何从ruby 1.9切换到2.0?
最佳思路
对于14.04,我发现了Ruby 2.x随附的以下PPA
-
将Ruby 2.1添加到Ubuntu 14.04
sudo add-apt-repository ppa:brightbox/ruby-ng
我还在GoRails中找到了一个set of instructions,可以在14.04上安装Ruby,但是我猜因为他们很长,所以您想要一个PPA。
-
将Ruby 1.9、2.0或2.1添加到Ubuntu 14.04
sudo add-apt-repository ppa:brightbox/ruby-ng-experimental
添加其中之一后,只需:
sudo apt-get update
sudo apt-get install ruby2.1 # In the case you want 2.1
次佳思路
Debian版本的Ruby在同一系统上不支持多个ruby安装。存储库中的Debian obsoleted the package和Ubuntu just removed it。您应该使用rbenv
在不同的红 gems 版本之间切换。这是ruby-switch软件包说明中推荐的方法,也是bug 737782中讨论的方法,因为据说存储库中不应该只有一个版本的红 gems 。
在安装ruby2.0
软件包时,默认情况下会安装Ruby 2.0,并且不需要其他操作。如果建议安装软件包ruby
,建议将其删除。您的系统上应具有二进制文件/usr/bin/ruby2.0
。
第三种思路
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
第四种思路
如果要在红 gems 之间切换,建议使用rvm(https://rvm.io)。它是一个程序包管理器,它使您可以在一台计算机上安装许多不同的红 gems (不仅是Matz的),对于用户而言本地或对于所有用户而言都是全局的。
我知道您要求输入”package,”,所以这可能对您不起作用。但是我认为如果这是您的开发机器可能会有所帮助。
这样做的好处是,您可以为2.1.1安装一个gemset,为2.0或1.9.3安装另一个gemset,等等。它还允许您测试jruby,rubinius等,而无需将系统提交给一个。
我没有在生产中使用它,但显然它既适合开发又适合。
快速入门如下:https://rvm.io/rvm/install