如何使用RVM设置项目指定的bundler版本?
强制项目使用固定版本bundler的可行方案
- 方法1:依托Bundler自身校验规则(最简单,无需额外配置RVM)
- 先在本地安装你要固定的目标版本,比如要固定为2.4.22就执行
gem install bundler -v 2.4.22 - 用指定版本执行一次安装操作,让Gemfile.lock写入对应版本标记:
bundle _2.4.22_ install - 提交修改后的Gemfile.lock到代码仓库。之后所有开发者如果用和锁定版本不一致的bundler执行bundle命令,会直接抛出版本不匹配的错误,强制要求使用对应版本,从根源避免Gemfile.lock被其他版本bundler修改。
- 先在本地安装你要固定的目标版本,比如要固定为2.4.22就执行
- 方法2:配合RVM自动安装/切换对应版本(无需开发者手动安装指定bundler)
在项目根目录新建.rvmrc文件,写入以下内容:
第一次进入目录时RVM会提示你信任.rvmrc文件,输入# 替换成你要固定的bundler版本号 BUNDLER_VERSION="2.4.22" # 检查当前gemset下是否存在对应版本bundler,没有则自动安装 if ! gem list bundler -i -v "$BUNDLER_VERSION" > /dev/null 2>&1; then gem install bundler -v "$BUNDLER_VERSION" --no-document fi # 给当前项目目录设置bundle命令别名,默认调用指定版本 alias bundle="bundle _${BUNDLER_VERSION}_"yes确认后,之后每次进入目录都会自动配置好对应版本的bundler调用规则,完全不需要开发者手动操作。
不建议用.ruby-bundler文件,这个配置不是RVM默认支持的官方配置项,属于部分第三方扩展的功能,兼容性很差。
内容的提问来源于stack exchange,提问作者Jeriel
相关产品推荐
相关产品推荐

