繁体   English   中英

捆绑软件是否下载系统上存在的宝石?

[英]Bundler downloads gems present on the system?

我想知道为什么捆绑程序总是下载我的宝石集中已经存在的宝石? 我的意思是,每次运行rails newbundle install命令后,bundler都会下载系统上存在的相同的gems。现在,我知道--local选项可以防止这种行为,但我认为如果可以的话会很好首先做一个简单的检查,这到底是什么意思。

编辑:对不起,似乎捆绑器实际上是在使用系统中的gems,我认为否则是因为他花了20秒钟才能完成操作,但这是由于我的互联网连接速度非常慢,并且可能花费了很多时间来解决依赖关系。

除非以下情况之一成立,否则Bundler不会重新获取宝石:

  • 您没有安装相同的gem和相同的版本(或允许的版本范围)。
  • 您将RVM和不同的gemset用于不同的项目,而不是将它们放置在全局gemset中。
  • 宝石路径不在Bundler使用的搜索路径中。

如果这对您来说是个问题,您可以使用--local来强制Bundler永远不要寻找其他任何东西,但是您也可以为所有gem指定版本。 并确保正确的版本在Gemfile.lock中

最后,Bundler只按照您的指示去做。 当然,您也不能使用Bundler。

bundle install的默认选项是--system选项,它将在系统范围内安装,因此也将使用现有的gem。

如果使用的是rvm之类的内容,则不会看到此行为。 另外,请注意,捆绑程序会记住为某些参数(例如path提供的先前参数。 如果以前在应用程序中使用过它,它将在以后的调用中被记住。

--local是使用本地缓存- http://bundler.io/v1.5/man/bundle-install.1.html

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM