为什么 RVM 需要 YAML?

Why RVM requires YAML?

安装 RVM 时,建议同时提供 YAML 源 tar。 不知道为什么 RVM 需要 YAML? ( link :-https://github.com/rvm/rvm-site/blob/master/content/rvm/offline.md) 我们可以很好地将它作为一个单独的 gem 安装,对吗?

请提供您的见解。

YAML 是 part of Ruby's standard library,因此与 Ruby 一起提供。为了在 YAML 支持下编译 Ruby,您需要安装 libyaml。由于 YAML 在 Ruby 中非常流行,例如用于指定打包的 Rubygems 中的所有元数据,现在没有 YAML 的 Ruby 不是很有用。

现在,前一段时间,libyaml(Ruby用来解析和生成YAML的库)中有a pretty nasty bug。在版本 <= 0.1.4 中,可以通过使 ruby 进程解析特制的 yaml 源来执行任意代码。

因此,RVM 通常会下载并编译最新版本的 libyaml,以确保编译的 Rubies 免受此漏洞的影响。