让人抓狂的ruby多版本

在 13.2 64bit 上做 ruby on rails 开发。
系统默认源 ruby 是 2.0,我添加了官方的 ruby 源,调高了 priority,于是升级到了 2.1.5。但是我的目的是用 2.2.1,于是用软件管理器安装了该版本。
麻烦就这样来了。

现在在 shell 里
ruby -v
返回的结果是 2.1.5

如果你 ruby 自动补齐,会发现这样的输出:
ruby ruby.ruby2.2 ruby.ruby2.1

同样的问题也出现在 rails 上,系统里没有 rails,只有 rails.ruby2.1。我想用基于 ruby2.2.1 的 rails 还用不了……

貌似软件管理中对于 ruby2.1 和 ruby2.2 完全是当两个东西来对待的,而非升级替换。

我尝试去删除 2.1,结果软件管理关联删除 700 多个包……看了一眼,我要是点了确定系统肯定挂了……

跪求解决办法~先谢了!

试试 update-alternatives
stackoverflow.com/questions/1892877/how-do-i-make-ruby-1-9-the-default-ruby-on-ubuntu

可以试试 rvm,提供一个便捷的多版本 ruby 环境的管理和切换,简单的指南如下:
ruby-china.org/wiki/rvm-guide

1赞

妹子的头像很漂亮。不过系统里 alternatives 中木有 ruby 的说。

不错的资源,可是原帖的方法无法安装。

没有 ruby 的话用 update-alternatives --install 装
stackoverflow.com/questions/21266153/ruby-version-2-0-0-installed-using-rvm-but-not-showing-under-update-alternativ

1赞

大概是因为 YaST 依赖 Ruby 吧… … 加上 Ruby2.2 在 13.2 发布之后发布,种种原因导致打包人做出了这样的决定… …

openSUSE 下的 Ruby 一直是多个版本共存的… … 官方默认的就是有 Ruby 和 Ruby2.1 两个版本。可能因为 Ruby 本身向后兼容不太好?不太清楚,但我想兼容好的话大概就不会有 rvm 这样的东西了… …

我一见 Ruby 就赶紧远离。 比 Java 还心烦的语言。

还存在一个问题,就是安装的 gem 包,都跑到 2。1。0 的目录里去了,2。2 木有,于是 2。2 运行的程序 require 全完蛋了……

@十六薙夜血
你装了多个版本的 ruby ,那你的 gem 是不是也有多个版本?现在你安装的包到了 2.1.0 ,说明你的 gem 应该使用的是 ruby2.1.0 的 gem ,在终端输入 gem environment 看看。

1赞

所言及是!发现现在的 gem 是 2。2。2,对应的 ruby 还是 2。1。5。同时发现了还有个 gem.ruby2.2,崩溃了,用 update-alternative 方法更改了默认 gem,现在一切 OK 了!谢谢!