GitHub CI工作流运行时Poppler gem报TypelibNotFound错误求助
解决GitHub CI中Poppler Typelib未找到的问题
问题根源
Ruby的poppler gem并非独立实现功能,它依赖系统层面安装的Poppler库及其GObject Introspection类型文件。你本地环境已经预装了这些系统依赖,所以运行正常,但GitHub CI的默认镜像不包含这些组件,仅添加gem无法解决问题。
解决方案
1. 在CI工作流中安装系统级Poppler依赖
GitHub CI默认使用Ubuntu镜像,在你的工作流YAML文件中添加安装系统依赖的步骤:
jobs: test: runs-on: ubuntu-latest steps: - name: 安装系统依赖 run: sudo apt-get update && sudo apt-get install -y libpoppler-glib-dev # 后续步骤(拉代码、安装bundle、运行测试等)
libpoppler-glib-dev包包含了Poppler的GObject Introspection类型库,正是报错中缺失的文件。
2. 确认Gemfile配置
确保Gemfile中包含必要的gem(无需额外调整,只要系统依赖安装完成即可):
gem 'poppler' gem 'gobject-introspection' gem 'glib2'
3. 可选:验证依赖安装(用于排查)
如果仍有问题,可以在CI步骤中添加验证命令,确认typelib已存在:
- name: 检查Poppler Typelib run: girepository-1.0 --list | grep Poppler
内容的提问来源于stack exchange,提问作者maxagno3
相关产品推荐
相关产品推荐

