Fin*_*las 2 ruby dependencies bundle rubygems ruby-on-rails
只是一点背景,我来自一个强大的C#/静态类型背景.因此,我倾向于用.dlls来思考.因此,如果我在一个项目中工作,我会参考我需要的dll,那就是那个.
作为Ruby和Rails的新手,我发现我可能做错了什么.例如,我使用本地的宝石在家创建一个Rails应用程序.使用不同的计算机(比如工作计算机)我试图在项目上工作,却发现我使用的是不同版本的宝石.执行捆绑安装后,我回到了一个工作项目.
我遇到的问题是我的宝石库变得"凌乱".我最终得到了同一个宝石的几个版本.这是其他人的工作方式吗?当使用gem(来自require)时,它会默认为最新版本吗?我觉得好像我没有正确管理依赖项,尽管我已经提到过我是Ruby的新世界.
我应该只包含我的依赖项,然后每次有不同/缺少的依赖项时执行bundle安装吗?如果我想升级到更新版本的gem,会发生什么?是否会更新bundle使用并继续使用它的gemfile?
是的,bundler是使用Ruby on Rails处理依赖项的方法.为什么?首先,因为它随附(至少3.0版本).其次,因为它很简单(与Java不同).
一个非详尽的功能列表:
等等.有关详细信息,请查看此http://gembundler.com/rationale.html
关于你的问题:是的,如果没有指定,bundler将采用最新版本.
另外,我会添加一个不足之处:您无法根据操作系统指定gem版本.例如,nokogiri有一个linux版本和一个win版本.