ruby on rails - 是否有任何软件包或模块不是用纯红宝石编写的?

时间:2014-09-10 18:32:35

标签: ruby-on-rails dependencies package

我真的很喜欢ruby on rails。我听说rails上的ruby需要运行java虚拟机。

我想问一些关于轨道上红宝石的基本内容。

似乎ruby on rails可以在源代码中包含一些本机代码。

根据我在rails上研究ruby的内容,代码通常可以在代码编写的同一平台上运行。

因此,当我们需要在不同平台上运行代码时,使用Bundler(rubygems),它可以自动下载正确版本的软件包。

这是对的吗?

此外,对于软件包,是否有任何软件包或模块不是用纯ruby编写的?

我不确定是否有。如果有,我认为软件包管理器无法自动下载正确的版本,开发人员需要将其删除并进行更改以在其他计算机上进行部署。

我不确定如何查看包中的包依赖项。 有没有办法找到包依赖?

1 个答案:

答案 0 :(得分:0)

目前尚不清楚你在问什么问题,但也许我可以解决你的一些困惑。

Rails是一个框架,以Ruby gem包的形式发布,它作为Ruby应用程序的一部分运行在几个可用的Ruby解释器之一上。

Ruby和Rails都不依赖于JVM。如果您选择这样做,JRuby解释器允许您在JVM中运行Ruby代码。

许多Ruby gem包含可能与平台相关的本机扩展。 Bundler允许您在需要使用不同gems在不同平台上提供相同接口的情况下表达特定于平台的依赖项。查看Bundler的platform命令,以检查当前平台是否满足给定gemfile的要求。

例如,sqlite3 gem需要本机C扩展,无法编译以在JRuby平台上运行。支持JRuby的项目必须交换像activerecord-jdbcmysql-adapter gem这样的替代方案。