我真的很喜欢ruby on rails。我听说rails上的ruby需要运行java虚拟机。
我想问一些关于轨道上红宝石的基本内容。
似乎ruby on rails可以在源代码中包含一些本机代码。
根据我在rails上研究ruby的内容,代码通常可以在代码编写的同一平台上运行。
因此,当我们需要在不同平台上运行代码时,使用Bundler(rubygems),它可以自动下载正确版本的软件包。
这是对的吗?
此外,对于软件包,是否有任何软件包或模块不是用纯ruby编写的?
我不确定是否有。如果有,我认为软件包管理器无法自动下载正确的版本,开发人员需要将其删除并进行更改以在其他计算机上进行部署。
我不确定如何查看包中的包依赖项。 有没有办法找到包依赖?
答案 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这样的替代方案。