使用Rails 6.1.5.11与Ruby 2.7.6执行bundle install时频繁出现GemWrappers错误的解决咨询
解决GemWrappers安装时的"Can not wrap not executable file: rake"警告
这问题我之前维护老Rails项目时碰到过,虽然不影响bundle install的最终执行,但反复弹出的警告确实挺闹心的。本质是gem-wrappers这个工具在尝试给非可执行文件创建包装器时的误判,给你几个靠谱的解决办法:
方法1:更新gem-wrappers到兼容版本
旧版本的gem-wrappers可能对某些gem(比如rake)的文件识别有bug,更新到最新兼容版本通常能解决问题:
gem update gem-wrappers
更新完成后重新执行bundle install,看看警告是否消失。
方法2:临时/永久禁用GemWrappers的自动包装
如果更新后还是有问题,可以直接禁用它的包装逻辑:
- 临时禁用:执行bundle install时加上环境变量
DISABLE_GEM_WRAPPERS=true bundle install - 永久禁用:把环境变量添加到你的shell配置文件(比如
~/.bashrc、~/.zshrc或~/.bash_profile):
然后刷新配置:echo 'export DISABLE_GEM_WRAPPERS=true' >> ~/.zshrc
之后再执行bundle install就不会出现这个警告了。source ~/.zshrc
方法3:移除不必要的gem-wrappers依赖
先确认gem-wrappers是直接在你的Gemfile里引入的,还是被其他gem间接依赖的:
bundle show gem-wrappers
如果是你自己手动添加的,且项目并不需要它(比如没用到依赖它的版本管理工具),可以直接从Gemfile中移除,然后执行bundle install清理依赖。
方法4:修复rake文件的可执行权限(不推荐作为首选)
如果以上方法都不行,可能是rake的可执行文件权限出了问题。先找到rake的安装路径:
bundle show rake
进入该目录的bin子目录,给rake赋予可执行权限:
chmod +x $(bundle show rake)/bin/rake
不过这个方法只是临时修复,后续更新rake可能还会重复出现问题,所以优先推荐前面的方法。
内容的提问来源于stack exchange,提问作者Obromios
相关产品推荐
相关产品推荐

