【发布时间】:2012-04-25 03:11:46
【问题描述】:
Amazon Linux 2012.03 现在随附 ruby 1.9.3
安装它(根据文档)
sudo yum install ruby19
但是ruby -v 显示1.8.7。我将如何将其切换到 1.9.3(如果它已经存在,则无需使用 RVM 是吗?)
【问题讨论】:
标签: ruby amazon-ec2 amazon
Amazon Linux 2012.03 现在随附 ruby 1.9.3
安装它(根据文档)
sudo yum install ruby19
但是ruby -v 显示1.8.7。我将如何将其切换到 1.9.3(如果它已经存在,则无需使用 RVM 是吗?)
【问题讨论】:
标签: ruby amazon-ec2 amazon
在 Amazon Linux 上执行此操作的正确方法是:
sudo yum update (to get latest version of Amazon Linux (2013.09 at time of this answer)
yum install ruby19
alternatives --set ruby /usr/bin/ruby1.9
【讨论】:
补充@baboonWorksFine 的答案,有许多1.9 命令可以符号链接为它们的未修饰等效项。我所做的是:
sudo -s
for f in /usr/bin/*1.9
do
ln -s $f ${f%1.9}
done
这样,您就不会意外错过任何需要别名的命令。
【讨论】:
yum 等安装程序更新时,它也可能会被覆盖。 Amazon Linux 中的正确方法是使用alternatives 命令。请参阅下面的答案。
如果你这样做:
ls -l /usr/bin/ruby*
你可能会看到这个:
lrwxrwxrwx 1 root root 7 Apr 26 18:27 /usr/bin/ruby -> ruby1.8
-rwxr-xr-x 1 root root 3720 Mar 29 08:29 /usr/bin/ruby1.8
-rwxr-xr-x 1 root root 3888 Mar 29 12:26 /usr/bin/ruby1.9
这是很好的自我解释。所以你想做的是:
rm /usr/bin/ruby && ln -s /usr/bin/ruby1.9 /usr/bin/ruby
【讨论】:
yum 等安装程序时被覆盖。
这是一个简单的解决方案和清洁器。
alternatives --config ruby
这将列出您通过 yum 安装的所有 Ruby 版本。您所要做的就是选择那里列出的数字并按回车键。
【讨论】:
sudo alternatives --config ruby 一起为我工作以使用 ruby 2.2
Ruby 1.9 版应以ruby19 或ruby1.9 的名称提供。 ruby 只是一个指向默认版本 ruby 的符号链接。
【讨论】:
我使用了@Ian Dickinson 的答案,但在 ln 选项中添加了一个“f”以强制它覆盖现有链接。所以代码是:
sudo -s
for f in /usr/bin/*1.9
do
ln -fs $f ${f%1.9}
done
【讨论】: