服务器上想跑个页面截图,apt install chrome 提示 Unable to locate package。Linux 里的包名不叫 chrome,也不在默认软件源里。
装稳定版走官方 deb 包
下载官方的 deb 安装包,本地安装,缺依赖再补。包名是全小写的 google-chrome-stable,和 Windows 上的叫法不一样。
sudo apt install ./google-chrome-stable_current_amd64.debsudo apt -f install第二条是补依赖,第一条报 dependency 问题时跑它。CentOS 系用 yum localinstall 装同一个包。装完 which google-chrome 能出路径就算成功。
没有桌面的机器用 headless
截图、生成 PDF、跑 E2E 测试,都不需要图形界面。加 --headless 参数即可,新版写法是 --headless=new。
google-chrome --headless=new --disable-gpu --screenshot=/tmp/page.png --window-size=1440,900 http://localhost:3000截图里中文变成方块,是容器缺字体,装 fonts-noto-cjk 就好。页面元素没加载出来,补 --virtual-time-budget=3000 给它一点时间。
root 启动会直接报错
提示 Running as root without --no-sandbox is not supported。--no-sandbox 只建议在容器里用,宿主机上等于把进程隔离关掉,风险自己评估。更稳的做法是建个普通用户跑。
还有个隐藏问题:多个进程共用默认的 user-data-dir 会互相锁住,启动直接失败。服务化运行时固定加 --user-data-dir=/tmp/chrome-profile,每个实例一个目录。
我的判断:桌面用户装 deb 包最省事,服务器只做截图就配 headless 加独立 profile,别拿它当常驻浏览器。