使用 rbenv 安装最新的稳定版 Ruby [英] Install Latest Stable Version of Ruby Using rbenv
问题描述
我想通过 rbenv 安装最新的稳定版 Ruby.此功能不会在 rbenv 本身中发生.
I want to install the latest stable version of Ruby available with rbenv. This feature won't be happening in rbenv itself.
当我在 shell 中运行命令 rbenv install -l
时,我得到一长串可用版本.该列表包含所有类型的条目.以下是展示格式和多样性的部分列表:
When I run the command rbenv install -l
in my shell, I get a long list of available versions. The list has all types of entries. The following is a partial list to demonstrate the format and diversity:
$ rbenv install -l
Available versions:
2.0.0-p643
2.0.0-p645
2.1.0-dev
2.1.0-preview1
2.1.0-preview2
2.1.0-rc1
2.1.4
2.1.5
2.1.6
2.2.0-dev
2.2.0-preview1
2.2.0-preview2
2.2.0-rc1
2.2.0
2.2.1
2.2.2
2.3.0-dev
jruby-1.7.19
jruby-1.7.20
jruby-9.0.0.0-dev
jruby-9.0.0.0+graal-dev
jruby-9.0.0.0.pre1
jruby-9.0.0.0.pre2
maglev-1.0.0
maglev-1.1.0-dev
maglev-2.0.0-dev
mruby-dev
mruby-1.0.0
mruby-1.1.0
rbx-2.5.2
rbx-2.5.3
ree-1.8.7-2011.12
ree-1.8.7-2012.01
ree-1.8.7-2012.02
topaz-dev
我的目标是在 shell 脚本中自动执行命令 rbenv install VERSION
,其中 VERSION
是最高的 x.x.x
版本.换句话说,我需要自动将列表中以数字开头且不以 -something
结尾的最高条目替换为 VERSION
.从这个列表中,我需要 2.2.2
.
My goal is to automate the command rbenv install VERSION
in a shell script where VERSION
is the highest x.x.x
release. In other words, I need to automatically substitute the highest entry on the list that starts with a number and does not end with -something
into VERSION
. From this list, I need 2.2.2
.
我可以在我的 shell 脚本中放入什么来自动选择命令 rbenv install x.x.x
中最高的 x.x.x
版本?
What can I put in my shell script to automatically pick the highest x.x.x
version in the command rbenv install x.x.x
?
由于尚未安装 Ruby,因此解决方案必须使用 Bash 而不是 Ruby.
Since Ruby is not yet installed, the solution has to be in Bash and not Ruby.
编辑 2:我想要 Ruby 的 MRI(主流)版本.
Edit 2: I want the MRI (mainstream) version of Ruby.
推荐答案
rbenv install -l | awk -F '.' '
/^[[:space:]]*[0-9]+.[0-9]+.[0-9]+[[:space:]]*$/ {
if ( ($1 * 100 + $2) * 100 + $3 > Max ) {
Max = ($1 * 100 + $2) * 100 + $3
Version=$0
}
}
END { print Version }'
- 取最大的版本(排序或不排序)
如果对列表进行排序,一个更简单的 sed(posix 版本)就足够了
If list is sorted a simpler sed (posix version) is enough
rbenv install -l | sed -n '/^[[:space:]]*[0-9]{1,}.[0-9]{1,}.[0-9]{1,}[[:space:]]*$/ h;${g;p;}'
这篇关于使用 rbenv 安装最新的稳定版 Ruby的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!