如何查找Ubuntu Linux上google-chrome-stable的ChromeDriver依赖项
在Ubuntu Docker环境中配置ChromeDriver的依赖说明
一、那串yum依赖列表的来源
你看到的yum install命令是给CentOS、RHEL这类RPM包管理的系统用的,这套依赖列表主要来自两个地方:
- Chrome官方文档提到的桌面运行基础依赖——毕竟Chrome是带GUI的浏览器,哪怕用无头模式运行,也需要X11相关组件、音频库、GTK框架这些底层支持;
- 社区用户踩坑总结的最小依赖集合——早期很多人在Docker里跑Chrome时,遇到各种“缺失共享库”的报错,一个个排查补全后,形成了这套最常用的依赖清单,后来被大量Docker示例复用。
二、Ubuntu下对应的依赖安装命令
Ubuntu用apt包管理器,对应的依赖包名和yum版本略有不同,直接把下面的命令写进Dockerfile即可:
RUN apt-get update && apt-get install -y \ libx11-6 \ libxcomposite1 \ libxcursor1 \ libxdamage1 \ libxext6 \ libxi6 \ libxtst6 \ libcups2 \ libxss1 \ libxrandr2 \ libasound2 \ libpango-1.0-0 \ libatk1.0-0 \ libatk-bridge2.0-0 \ libgtk-3-0 \ && rm -rf /var/lib/apt/lists/*
(最后一行rm -rf是清理apt缓存,能大幅减小镜像体积)
三、怎么检查Chrome是否缺少依赖
如果怕漏了新增的依赖,或者想自己排查问题,有两个实用方法:
- 直接运行Chrome看报错:在容器里装好Chrome后,执行
google-chrome --headless --no-sandbox --disable-gpu,要是缺依赖,终端会直接弹出类似error while loading shared libraries: xxx.so.x: cannot open shared object file: No such file or directory的提示,照着提示安装对应的包就行; - 用ldd工具查依赖:先找到Chrome的二进制文件位置(一般是
/usr/bin/google-chrome),执行ldd /usr/bin/google-chrome | grep "not found",会列出所有找不到的共享库。如果不知道库对应哪个包,先安装apt-file(apt-get install -y apt-file && apt-file update),再用apt-file search xxx.so.x就能查到对应的包名。
四、额外提醒
如果不想自己折腾依赖,直接用官方维护的selenium/standalone-chrome镜像当基础镜像就行,所有依赖都已经配置好了,省心很多。
内容的提问来源于stack exchange,提问作者HeronAlgoSearch
相关产品推荐
相关产品推荐

