首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用rbenv安装最新稳定版本的Ruby

使用rbenv安装最新稳定版本的Ruby
EN

Stack Overflow用户
提问于 2015-05-11 23:52:51
回答 7查看 14.6K关注 0票数 45

我想安装里本夫提供的最新稳定版本的Ruby。rbenv本身的这个特性是不会发生

当我在shell中运行命令rbenv install -l时,我会得到一长串可用版本的列表。列表包含所有类型的条目。以下是展示格式和多样性的部分清单:

代码语言:javascript
复制
$ 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

如何在shell脚本中自动选择命令x.x.x中最高的rbenv install x.x.x版本?

编辑:由于还没有安装,所以解决方案必须使用Bash,而不是。

编辑2:我想要MRI (主流)版本的。

EN

回答 7

Stack Overflow用户

回答已采纳

发布于 2015-05-12 06:08:17

代码语言:javascript
复制
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版本)就足够了。

代码语言:javascript
复制
rbenv install -l | sed -n '/^[[:space:]]*[0-9]\{1,\}\.[0-9]\{1,\}\.[0-9]\{1,\}[[:space:]]*$/ h;${g;p;}'
票数 7
EN

Stack Overflow用户

发布于 2015-05-12 13:07:11

简单解决方案(直接安装最新稳定版本):

代码语言:javascript
复制
rbenv install $(rbenv install -l | grep -v - | tail -1)

解释:

代码语言:javascript
复制
rbenv install -l | grep -v - | tail -1

过滤掉所有包含连字符-的版本,这是所有非MRI版本和预发布的MRI版本。然后选择最后一个,保证是最高的,因为ruby构建输出已经按照版本号升序排序。

票数 68
EN

Stack Overflow用户

发布于 2019-04-19 21:08:29

在使用rbenv安装时,应该首先更新ruby构建,以获得最新版本的ruby。遵循以下步骤:

  • brew reinstall --HEAD ruby-build (如果rbenv已经安装,brew可能会通过一些错误,然后继续前进,只是
    • brew unlink ruby-build
    • brew install --HEAD ruby-build )

  • brew upgrade
  • 然后,您可以使用上述方法之一自动安装最新版本或简单的rbenv install <required latest version>

在macOS 10.13.6工作

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30179484

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档