我在 Ununtu 14.04 上安装了 Ruby 2.0.0,但无法删除 Ruby 1.9.1。我将 /usr/bin/ruby 符号链接替换为 ruby2.0.0,但在安装新 gem 时,总是指向 Ruby 1.9.1。
我怎样才能确定地切换到 Ruby 2.0.0?
答案1
对于 Ruby 来说,基本的依赖结构如下:
ruby
(理想情况下是指向默认版本的元包)取决于ruby1.9.1
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 系统中发现)中的所有二进制文件和手册页,尽管该脚本很容易扩展到不同的版本。