如何删除 Ruby 1.9.1 并保留 Ruby 2.0.0?

如何删除 Ruby 1.9.1 并保留 Ruby 2.0.0?

我在 Ununtu 14.04 上安装了 Ruby 2.0.0,但无法删除 Ruby 1.9.1。我将 /usr/bin/ruby 符号链接替换为 ruby​​2.0.0,但在安装新 gem 时,总是指向 Ruby 1.9.1。

我怎样才能确定地切换到 Ruby 2.0.0?

答案1

对于 Ruby 来说,基本的依赖结构如下:

  1. ruby(理想情况下是指向默认版本的元包)取决于ruby1.9.1
  2. ruby2.0依赖于取决于ruby

我不确定他们为什么这样做,或者为什么他们在这里删除了使用替代方案的能力,但如果你想强制使用 Ruby 2.0,那么一种非侵入式的方法是创建指向 2.0 二进制文件的符号链接。下面的代码片段将在 中创建符号链接/usr/local/bin

for i in erb gem irb rdoc ri ruby testrb; do
    sudo ln -s /usr/bin/$i''2.0 /usr/local/bin/$i
done

仍然可以通过附加1.9.1到二进制名称来访问 Ruby 1.9.1(例如gem1.9.1)。

答案2

作为手动维护多个符号链接的替代方案,我建议使用update-alternatives。在另一个问题,我提供了一个脚本来处理 ruby​​ 版本 1.9.1 和 2.0(目前在我的 14.04 系统中发现)中的所有二进制文件和手册页,尽管该脚本很容易扩展到不同的版本。

相关内容