我曾经为每个新的 rails 项目安装一个新的 ruby,因为不可能在其中两个项目之间不存在冲突的 gem。
我已经看到“bundle package”命令可以冻结“vendr/cache”目录中特定于项目的一组 gem。
我虽然不会全局安装它们,只是将它们存储在该目录中。
但是,当我这样做时,“捆绑包”最终会(全局)安装宝石,然后将它们存储在“供应商/缓存”文件夹中。
我做错什么了吗?它是一个错误吗?
我曾经为每个新的 rails 项目安装一个新的 ruby,因为不可能在其中两个项目之间不存在冲突的 gem。
我已经看到“bundle package”命令可以冻结“vendr/cache”目录中特定于项目的一组 gem。
我虽然不会全局安装它们,只是将它们存储在该目录中。
但是,当我这样做时,“捆绑包”最终会(全局)安装宝石,然后将它们存储在“供应商/缓存”文件夹中。
我做错什么了吗?它是一个错误吗?
来自Bundler 文档:
package 命令会将包
.gem
中的 gems 文件复制到./vendor/cache
.
据我所知,Bundler 不处理安装 gem,它将它传递给gem
命令。Bundler 所做的是确保您激活了正确版本的 gem。因此,即使您打包了 gems,当您稍后安装它们时,它也会获取这些 gems 并“全局”安装它们。
所以,回答你的问题:不,你没有做错任何事,这不是错误,而是预期的行为。