如何切换Ruby gems目录路径?wicked_pdf执行路径异常排查
你已经做了切换Ruby版本、重装gems和bundler这些基础操作,咱们可以从这几个方向再深入检查:
确认Bundler与当前Ruby版本的绑定关系
先运行bundle env查看输出里的Ruby版本是否为ruby-2.5.1,以及Bundler使用的gemset路径是否对应2.5.1的环境。如果发现Bundler仍关联旧版本,先在当前Ruby环境下重装bundler:gem install bundler再执行
bundle install,确保所有依赖都安装到2.5.1的gemset目录下。检查wicked_pdf初始化配置是否硬编码路径
打开项目中的config/initializers/wicked_pdf.rb文件,看看有没有手动指定wkhtmltopdf的路径。如果存在类似以下的硬编码配置:WickedPdf.config = { exe_path: '/home/daveomcd/.rvm/gems/ruby-2.3.4/bin/wkhtmltopdf' }先在终端运行
which wkhtmltopdf获取2.5.1环境下的正确路径,再替换掉硬编码的内容。验证项目级Ruby版本配置文件
查看项目根目录是否存在.ruby-version和.ruby-gemset文件。这两个文件会强制RVM进入项目时切换到指定的Ruby版本和gemset,如果文件内写的是ruby-2.3.4,即使全局切换了版本,进入项目后仍会自动切回旧版本。将这两个文件的内容修改为对应的ruby-2.5.1和你的gemset名称(如果使用了gemset)。清理缓存并重启服务
Rails的Spring预加载或tmp缓存可能保留着旧路径引用,先停止Spring:spring stop再清理tmp目录下的缓存文件:
rm -rf tmp/cache最后重启Rails服务器,确保新配置生效。
手动清理旧版本的wkhtmltopdf依赖
先切换到旧Ruby版本卸载对应的gem:rvm use 2.3.4 && gem uninstall wkhtmltopdf-binary切回2.5.1后重新安装:
rvm use 2.5.1 && gem install wkhtmltopdf-binary完成后运行
which wkhtmltopdf确认路径已更新到2.5.1的gemset下。
内容的提问来源于stack exchange,提问作者daveomcd

