【chrome】Linux服务器上安装google-chrome
# /usr/bin/google-chrome --no-sandbox --headless --disable-gpu --disable-software-rasterizer --print-to-pdf=./test.pdf https://www.baidu.com
[29601:29601:1210/185935:ERROR:browser_main_loop.cc(265)] Gtk: cannot open display:
[1210/185935:ERROR:nacl_helper_linux.cc(311)] NaCl helper process running without a sandbox!
Most likely you need to configure your SUID sandbox correctly
1. 检查依赖和安装环境
确保你已经安装了 Google Chrome 的依赖项和运行环境。
yum install -y libX11 libXcomposite libXcursor libXi libXtst libXrandr libXdamage libnss3 mesa-libEGL mesa-libgbm alsa-lib
如果运行在服务器环境,可能需要虚拟显示框架,如 Xvfb:
yum install -y xorg-x11-server-Xvfb
2. 配置 --no-sandbox 参数问题
--no-sandbox 会禁用 Chrome 的沙盒保护机制,这是一种权宜之计,但可能存在安全隐患。如果可能,建议配置 SUID sandbox:
chmod 4755 /usr/bin/google-chrome-stable
但如果 --no-sandbox 参数是必须的,则需保证用户权限足够,并理解其风险。
3. 解决 Gtk: cannot open display: 问题
此问题说明没有 GUI 环境支持。解决方法如下:
使用 Xvfb
启动一个虚拟显示环境:
Xvfb :99 -screen 0 1024x768x24 &
export DISPLAY=:99
然后再运行你的 Chrome 命令:
/usr/bin/google-chrome --no-sandbox --headless --disable-gpu --disable-software-rasterizer --print-to-pdf=./test.pdf https://www.baidu.com
检查环境变量
确保 DISPLAY 变量正确设置:
echo $DISPLAY
如果没有设置,手动设置:
export DISPLAY=:0
4. 验证 NaCl Helper 问题
NaCl helper 是 Google Chrome 的 NaCl(Native Client)工具。可以通过更新 Chrome 来解决相关问题。
下载最新版本的 Google Chrome
从 Google 官方下载最新稳定版 .rpm:
wget https://dl.google.com/linux/direct/google-chrome-stable_current_x86_64.rpm
yum -y localinstall google-chrome-stable_current_x86_64.rpm
注意, 安装google-chrome对服务器上的glibc版本有要求!!!
# yum -y localinstall google-chrome-stable_current_x86_64.rpm
Loaded plugins: fastestmirror, langpacks, versionlock
Examining google-chrome-stable_current_x86_64.rpm: google-chrome-stable-131.0.6778.108-1.x86_64
Marking google-chrome-stable_current_x86_64.rpm to be installed
Resolving Dependencies
--> Running transaction check
---> Package google-chrome-stable.x86_64 0:131.0.6778.108-1 will be installed
--> Processing Dependency: libc.so.6(GLIBC_2.18)(64bit) for package: google-chrome-stable-131.0.6778.108-1.x86_64
Loading mirror speeds from cached hostfile
UCloud-Software | 1.3 kB 00:00:00
base | 3.6 kB 00:00:00
epel | 4.3 kB 00:00:00
extras | 2.9 kB 00:00:00
google-chrome | 1.3 kB 00:00:00
ucloud | 1.3 kB 00:00:00
updates | 2.9 kB 00:00:00
google-chrome/primary | 1.9 kB 00:00:00
google-chrome 4/4
Excluding 1 update due to versionlock (use "yum versionlock status" to show it)
--> Processing Dependency: libc.so.6(GLIBC_2.25)(64bit) for package: google-chrome-stable-131.0.6778.108-1.x86_64
--> Processing Dependency: liberation-fonts for package: google-chrome-stable-131.0.6778.108-1.x86_64
--> Processing Dependency: libvulkan.so.1()(64bit) for package: google-chrome-stable-131.0.6778.108-1.x86_64
--> Running transaction check
---> Package google-chrome-stable.x86_64 0:131.0.6778.108-1 will be installed
--> Processing Dependency: libc.so.6(GLIBC_2.18)(64bit) for package: google-chrome-stable-131.0.6778.108-1.x86_64
--> Processing Dependency: libc.so.6(GLIBC_2.25)(64bit) for package: google-chrome-stable-131.0.6778.108-1.x86_64
---> Package liberation-fonts.noarch 1:1.07.2-16.el7 will be installed
--> Processing Dependency: liberation-serif-fonts = 1:1.07.2-16.el7 for package: 1:liberation-fonts-1.07.2-16.el7.noarch
--> Processing Dependency: liberation-narrow-fonts = 1:1.07.2-16.el7 for package: 1:liberation-fonts-1.07.2-16.el7.noarch
--> Processing Dependency: liberation-mono-fonts = 1:1.07.2-16.el7 for package: 1:liberation-fonts-1.07.2-16.el7.noarch
---> Package vulkan.x86_64 0:1.1.97.0-1.el7 will be installed
--> Processing Dependency: vulkan-filesystem = 1.1.97.0-1.el7 for package: vulkan-1.1.97.0-1.el7.x86_64
--> Running transaction check
---> Package google-chrome-stable.x86_64 0:131.0.6778.108-1 will be installed
--> Processing Dependency: libc.so.6(GLIBC_2.18)(64bit) for package: google-chrome-stable-131.0.6778.108-1.x86_64
--> Processing Dependency: libc.so.6(GLIBC_2.25)(64bit) for package: google-chrome-stable-131.0.6778.108-1.x86_64
---> Package liberation-mono-fonts.noarch 1:1.07.2-16.el7 will be installed
---> Package liberation-narrow-fonts.noarch 1:1.07.2-16.el7 will be installed
---> Package liberation-serif-fonts.noarch 1:1.07.2-16.el7 will be installed
---> Package vulkan-filesystem.noarch 0:1.1.97.0-1.el7 will be installed
--> Finished Dependency Resolution
Error: Package: google-chrome-stable-131.0.6778.108-1.x86_64 (/google-chrome-stable_current_x86_64)
Requires: libc.so.6(GLIBC_2.18)(64bit)
Error: Package: google-chrome-stable-131.0.6778.108-1.x86_64 (/google-chrome-stable_current_x86_64)
Requires: libc.so.6(GLIBC_2.25)(64bit)
You could try using --skip-broken to work around the problem
You could try running: rpm -Va --nofiles --nodigest
5. 最终检查和调试
尝试以下命令检查是否正常运行:
/usr/bin/google-chrome --headless --disable-gpu --disable-software-rasterizer --print-to-pdf=./test.pdf https://www.baidu.com
如果问题依然存在,请检查:
系统日志(journalctl -xe 或 /var/log/messages)
Google Chrome 版本兼容性
确保网络连接正常
6. 总结
常见问题如缺少依赖、未正确配置 DISPLAY 环境变量、或使用 --no-sandbox 都可通过上述步骤解决。
如果依然有问题,请提供更多日志或环境信息以便进一步分析。
参考
CentOS7安装google-chrome
https://www.cnblogs.com/weiyiming007/p/17271859.html
解决 “google-chrome-stable_current_x86_64.rpm: Header V4 RSA/SHA512 Signature, key ID 9b30acf2: NOKEY
https://blog.csdn.net/tombosky/article/details/136678892