ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

Ubuntu 22.04 安装 Chrome:deb 包安装与避坑指南

Ubuntu 22.04 安装 Chrome:deb 包安装与避坑指南 上周把一台闲置笔记本重装成 Ubuntu 22.04第一件事就是装浏览器。别看这事小我在办公室、家里的台式机、几台虚拟机还有 WSL2 里前后装过十几次 Chrome踩过的坑能凑一页纸。这篇就把 Ubuntu 22.04 上安装谷歌浏览器 Chrome 的完整过程摊开讲从「选哪种安装方式」到「装完为什么打不开」「中文输入法不进框」「插件装不上」全都覆盖。不管你是刚摸 Linux 的新手还是天天在终端里跑命令的老手看完都能照着抄。核心关键词就三个Ubuntu 22.04、Chrome、deb 包安装。我尽量说人话把每一步为什么这么做讲透而不是甩一堆命令让你自己猜。1. 装 Chrome 之前先把三条路想清楚在 Ubuntu 22.04 上装 Chrome摆在面前的路其实不止一条应用商店里的 Snap 包、官方发布的 .deb 安装包、以及把官方软件源写进 apt 之后再装。很多人上来就是一通sudo snap install chromium装完发现扩展装不上、输入法候选框飘在角落、企业内网系统识别不了然后又回头删掉重来一晚上就这么没了。我个人的结论很直接桌面办公、前端调试、需要装浏览器扩展的场景优先走官方 deb 包别绕圈子。原因下面细说但一句话概括就是——deb 版跟系统的关系更「原生」出问题时排查路径最短。1.1 三种安装方式横向对比先上一张表把三条路的差异摆明白。这张表是我踩坑之后自己总结的不是从文档里抄的重点看「踩坑概率」这一列。安装方式典型命令版本跟进与系统整合踩坑概率适用场景Snap 包sudo snap install chromium自动沙箱隔离路径独立中等偏高只想快速看网页官方 deb 单包sudo dpkg -i *.deb手动下载新包完全原生低办公、开发、装扩展官方 apt 源sudo apt install google-chrome-stableapt 自动升级完全原生低长期使用的主力机需要说明的是Snap 版本在 Ubuntu 22.04 上是官方默认推的 Chromium它本身没问题甚至更安全沙箱跑跟系统库隔离。但它的用户数据目录在~/snap/chromium/下面配置、缓存、书签都跟 deb 版不在一个地方迁移起来要多做一层符号链接。更要命的是某些依赖系统字体配置的老插件、某些走本地 socket 的调试工具在沙箱里权限会被拦表现出来就是「明明装了却用不了」。这些问题不是不能修但修起来花的时间远比一开始就选对方式多。1.2 为什么在 22.04 上我坚持用 deb 版Ubuntu 22.04 这个版本比较特殊它自带的 glibc、NSS、GTK 版本都比较新官方 Chrome 的 deb 包对这套环境的适配是最好的。安装之后可执行文件落在/usr/bin/google-chrome真正的二进制在/opt/google/chrome/下用户配置在~/.config/google-chrome/缓存按 profile 分目录存放。这套目录结构十年没怎么变过你随便搜一篇老教程都能对上排查问题时特别省心。再一个原因是输入法框架。国内用 Ubuntu 做桌面的人基本都要装中文输入法fcitx5 或者 ibus。deb 版的 Chrome 走系统 GTK 的输入法模块只要系统里配好了环境变量Chrome 里就能正常出候选框。Snap 版因为沙箱限制读不到部分系统路径经常出现「系统里能打字、Chrome 里打不出中文」的情况然后你就得去折腾--enable-features之类的启动参数纯属自找麻烦。还有一点前端同学要用chrome://extensions/装开发调试用的扩展用 DevTools 调页面、抓请求、断点调试这些在 deb 版上是最稳的。沙箱环境偶尔会在扩展的本地文件访问权限上卡你一下虽然能解决但没必要。2. 安装前的准备系统、依赖与安装包准备阶段看起来是「确认一下版本」这种小事实际上能不能一次装成功八成取决于这一步做得够不够细。我见过太多次「装完启动报一堆 so 找不到」的情况根因都是基础依赖没补齐。2.1 先确认系统版本和 CPU 架构不同架构要下不同的包这一步别偷懒。三条命令十秒钟搞定lsb_release -a uname -m dpkg --print-architecture第一条看发行版和版本号正常应该输出Ubuntu 22.04.x LTS第二条看内核架构绝大多数是x86_64第三条看 dpkg 认的架构名一般是amd64。三条对上了说明你的机器和官方包是匹配的。如果你是在 ARM 设备上跑比如某些开发板或者苹果 M 系列芯片上的虚拟机那结果会是aarch64和arm64这时候官方就没有对应的 deb 包了只能走别的路线得提前想清楚。顺便提一句如果你是在双系统里装的 Ubuntu 22.04确认版本号的习惯要养成因为 22.04 和 24.04 的包依赖列表不完全一样照着 24.04 的教程装 22.04依赖那步容易对不上。2.2 依赖到底缺哪些为什么要提前补官方 deb 包里声明了一长串依赖正常联网状态下apt会自动帮你补但如果是内网机器、离线环境或者你想一次性装干净提前过一遍更稳。下面这张表是我整理的常见依赖和它们存在的原因出问题的时候对着查会快很多依赖包名作用缺了会怎样libu2f-udevU2F 安全密钥支持dpkg 报依赖错误装不上libvulkan1Vulkan 图形接口启动报 vulkan 相关错误fonts-liberation基础西文字体页面字体发虚、方块字libnss3网络安全服务库页面打不开、证书报错libgbm1图形缓冲管理白屏、渲染异常libasound2音频支持网页视频没声音xdg-utils桌面集成工具无法设为默认浏览器libgtk-3-0GTK3 界面库窗口画不出来其中最容易忽略的是libu2f-udev和libvulkan1。前者在老版本的安装脚本里经常漏后者是近几年才加进依赖列表的。如果你用的是比较早的 Ubuntu 22.04 镜像装完提示「依赖关系不满足」八成就是这两个之一。提示不要手动一个个apt install去凑依赖容易版本冲突。正确做法是先用 dpkg 装包再用apt install -f让系统自己算依赖关系它会告诉你缺什么、怎么补。2.3 安装包从哪来怎么确认没下错官方发布的稳定包文件名格式很固定类似google-chrome-stable_current_amd64.deb。文件名里的stable表示稳定通道如果你想要更新的功能可以用beta但日常使用强烈建议 stable别为了尝鲜把自己搞进一个天天崩的环境里。下载完之后我习惯性做两件事一是看文件大小是否合理正常在 100MB 上下如果只有几 KB那肯定是下到了错误页面而不是安装包二是算一下哈希养成分发前校验的习惯。命令很简单ls -lh google-chrome-stable_current_amd64.deb sha256sum google-chrome-stable_current_amd64.deb如果下载页提供了校验值对一下就行。没提供也没关系至少确认文件类型是对的file google-chrome-stable_current_amd64.deb正常输出里应该包含Debian binary package字样。如果输出是HTML document说明你下到的是网页而不是包这种情况在内网代理环境下特别常见。3. 手把手安装从 dpkg 到 apt 修依赖准备工作做完正式安装其实只有两三条命令。但我要把每一步的意图讲清楚因为很多人是「命令能跑通就行」一旦失败就完全不知道从哪下手。3.1 最稳的一条流程dpkg 安装 apt 补依赖假设你已经把 deb 包放在~/Downloads目录下完整流程是这样cd ~/Downloads sudo dpkg -i google-chrome-stable_current_amd64.deb sudo apt install -f -y第一行dpkg -i是真正把包解压安装到系统里。它有个特点只负责装不负责解决依赖。所以如果缺依赖它会报错并退出但这时候包其实已经「半装」在系统里了。第二行apt install -f的-f是--fix-broken的意思让 apt 扫描系统里所有依赖不完整的包自动把缺的补上。这两条命令配合能解决 90% 以上的安装问题。装完之后验证一下google-chrome --version正常应该输出版本号。如果提示command not found先别慌用which google-chrome和ls -l /usr/bin/google-chrome看一下符号链接在不在。个别情况下 dpkg 装到一半失败符号链接没建手动补一条软链就能解决。3.2 想让 apt 帮你管版本走官方源如果你是一台长期使用的主力机我更推荐走源的方式。这样每次sudo apt upgrade的时候Chrome 会跟着一起升级不用担心版本落后带来的安全问题。步骤分四步导入签名密钥、添加源、更新索引、安装。sudo install -d -m 0755 /etc/apt/keyrings wget -q -O- https://dl.google.com/linux/linux_signing_key.pub \ | sudo gpg --dearmor -o /etc/apt/keyrings/google-chrome.gpg echo deb [archamd64 signed-by/etc/apt/keyrings/google-chrome.gpg] \ http://dl.google.com/linux/chrome/deb/ stable main \ | sudo tee /etc/apt/sources.list.d/google-chrome.list sudo apt update sudo apt install -y google-chrome-stable这几步里有两个细节值得多说。第一是密钥的存放位置现在的规范是放在/etc/apt/keyrings/而不是老教程里的/etc/apt/trusted.gpg.d/放对位置能避免一堆「签名验证失败」的警告。第二是源地址后面必须写main这是仓库的组件名不写的话 apt 找不到包会提示Unable to locate package。注意源配置文件里的archamd64是架构限定如果你在 arm64 上这一行会导致 apt 直接跳过这个源表现就是「源加了但装不上」。所以确认架构这一步不能省。3.3 装完第一件事跑一遍自检清单很多人装完就打开网页了我更建议先花两分钟做自检。打开终端敲google-chrome观察输出的日志。如果是在终端里启动Chrome 会把一些警告信息打出来比如 GPU 相关的、字体相关的。这些警告不一定代表有问题但记录下来日后出故障时能对比。然后依次确认四件事一是窗口能不能正常弹出来不是白屏二是地址栏输入能正常解析三是右键菜单、复制粘贴能用四是打开chrome://gpu看一下硬件加速状态。最后这一项很多人不知道chrome://gpu页面会列出哪些渲染功能启用了、哪些被禁用了如果显示大面积Disabled说明显卡驱动或者 Vulkan 支持有问题虚拟机环境下尤其常见。4. 中文环境适配字体、输入法一个都不能少装完能打开只是第一步。国内用户真正的痛点在中文环境上字体发虚、输入法不出候选框、某些页面中文显示成方块。这些问题跟 Chrome 本身关系不大但排查起来最容易走弯路。4.1 中文字体缺失导致显示成方块Chrome 本身不自带中文字体它用的是系统里的字体。如果系统装的是英文版 Ubuntu 22.04很可能一个中文字体都没有打开中文页面就是一片方框。解决办法是装一套完整的中文字体sudo apt install -y fonts-noto-cjk fonts-noto-cjk-extra \ fonts-wqy-zenhei fonts-wqy-microheifonts-noto-cjk是思源黑体的中文版覆盖字符最全装它基本能解决绝大部分显示问题。fonts-wqy-*是文泉驿系列体积小作为补充。装完之后要刷新字体缓存这一步不能漏fc-cache -fv fc-list :langzh | head -20第二条命令用来验证如果列出一堆中文字体说明生效了。如果 Chrome 已经开着重启一下再看。字体缺的另一个典型表现是「部分字正常部分字方块」这种情况多半是某个生僻字或繁体字没覆盖用fonts-noto-cjk-extra补上就行。4.2 输入法在 Chrome 里打不出中文这是 22.04 上问得最多的一个问题我专门记录过排查路径。过了几年情况分几类。第一类是环境变量没配好。fcitx5 需要在启动环境里设置几个变量如果你是从系统设置里配的输入法一般会自动写好但如果你是从命令行手动google-chrome启动的那终端里的环境可能没继承到这些变量表现出来就是「用图标点开能打字命令行启动就打不了」。解决办法是在~/.profile或者~/.bashrc里补上export GTK_IM_MODULEfcitx export QT_IM_MODULEfcitx export XMODIFIERSimfcitx配完注销重新登录。这里要说明的是如果你用的是 ibus 而不是 fcitx那对应的值应该是ibus别照抄。第二类是输入法自己没启动。终端里跑一下ps aux | grep fcitx看看进程在不在不在的话手动启动一次或者检查开机自启项有没有被关掉。第三类比较隐蔽Chrome 的 Wayland 后端和输入法框架不兼容。Ubuntu 22.04 默认还是 X11 会话问题不大但如果你手动切到了 Wayland就可能在输入法上遇到奇怪的表现。判断方法是在终端里看echo $XDG_SESSION_TYPE的输出如果是wayland可以在启动 Chrome 时加参数强制走 XWaylandgoogle-chrome --ozone-platformx11这个参数不是万能药但在我遇到过的两三次案例里确实管用。5. 桌面集成默认浏览器、图标与快捷入口Chrome 装完之后Ubuntu 会自动往应用列表里塞一个图标这一步大多数时候不用管。但有两个细节值得调一下用久了能省不少事。5.1 把 Chrome 设成默认浏览器点链接自动用 Chrome 打开靠的是 xdg 这套规范。查看当前默认值xdg-settings get default-web-browser如果不是google-chrome.desktop就设一下xdg-settings set default-web-browser google-chrome.desktop如果这条命令报错说找不到 desktop 文件去/usr/share/applications/目录里确认一下google-chrome.desktop在不在。正常情况下 dpkg 安装时会自动放进去。不在的话说明安装没完成回到第 3 章重装。5.2 命令行启动参数与别名我平时会开几个 profile 分别对应工作和个人账号从命令行启动最方便google-chrome --profile-directoryDefault google-chrome --profile-directoryProfile 1 profile 名称可以直接在~/.config/google-chrome/下看到对应的目录名。另外几个我常用的参数值得记一下--incognito直接开无痕窗口--new-window强制新窗口--appURL把某个网页当成独立应用窗口打开做内部系统的时候特别顺手。可以在~/.bashrc里加个短别名alias gcgoogle-chrome --profile-directoryDefault /dev/null 21 后面的重定向是为了不让 Chrome 的日志刷满终端加上放后台终端还能继续用。6. 虚拟机和 WSL2 环境下的特殊处理不少人是在虚拟机或者 WSL2 里跑 Ubuntu 22.04 的这两种环境和物理机差别不小Chrome 的表现也不一样。6.1 VMware / VirtualBox 里的显示问题虚拟机里最典型的症状是白屏、花屏、窗口拖影。根因基本都指向显卡加速。虚拟机默认给的显卡不支持完整的 3D 加速Chrome 尝试走 GPU 渲染就会出问题。两个方向解决。一是装虚拟机工具。VMware 里就是装 open-vm-tools 和相关桌面组件sudo apt install -y open-vm-tools open-vm-tools-desktop sudo reboot装完重启显示会顺畅很多剪贴板共享、分辨率自适应也跟着好了。VirtualBox 那边对应的是增强功能包原理类似。二是如果装完工具还是不行就在 Chrome 里把硬件加速关掉。路径是设置里搜「硬件加速」把开关关掉重启浏览器。或者在启动参数里加--disable-gpu。这个操作有代价视频播放和复杂页面渲染会变慢所以它是备选不是首选。我一般先装工具不行再关加速。6.2 WSL2 WSLg 里跑 ChromeWSL2 现在的图形支持叫 WSLgUbuntu 22.04 跑在里面能直接把 GUI 程序显示到 Windows 桌面上。Chrome 也是能装的步骤跟前面完全一样。但有几个特有的坑。第一个是音频。WSLg 的音频要更新到比较新的 Windows 版本才支持如果版本老网页视频只有画面没声音这不是 Chrome 的问题去更新 Windows 就行。第二个是性能。WSL2 里跑 Chrome渲染要跨一层滚动和动画会明显不如原生用来做日常浏览体验一般用来做自动化测试、跑无头浏览器倒很合适。如果你只是想有个浏览器看网页Windows 那边本来就有没必要在 WSL 里再装一个。第三个是显示相关的环境变量。正常情况下 WSLg 会自动配好DISPLAY如果启动报「cannot open display」先echo $DISPLAY看一下再确认/tmp/.X11-unix目录存在。都不对的话重启一下 WSL 实例通常能恢复。7. 常见问题与排查技巧速查表下面这些是我这些年实际遇到过、并且记在小本子上的问题。整理成表格出问题的时候对着找比漫无目的地搜要快得多。7.1 安装与依赖类问题报错现象根本原因解决方式依赖关系不满足包装不上缺 libu2f-udev / libvulkan1sudo apt install -f -yUnable to locate package源没加对或没 update检查源文件、sudo apt update签名验证失败密钥放错目录移到/etc/apt/keyrings/提示架构不匹配下了 arm64 包装在 amd64重新下对应架构的包依赖类的报错有个通用套路先看报错最后一行再往回找第一个Depends关键字那里会明确告诉你是哪个包缺了。别被中间一大段日志吓到。7.2 启动闪退、白屏与权限问题启动闪退最常见的原因是用 root 直接跑 Chrome。Chrome 有安全策略默认不允许 root 身份启动会直接退出。如果你确实在容器或者某些特殊环境里需要 root 运行加参数google-chrome --no-sandbox --user-data-dir/tmp/chrome-root必须说清楚--no-sandbox会关掉浏览器的沙箱隔离安全性下降只能在受控的测试环境里临时用日常上网绝对不要加这个参数。同理--user-data-dir指定一个临时目录是为了避免和已有的用户配置冲突。白屏的话按顺序排查先看是不是硬件加速的问题第 6.1 节再看是不是显卡驱动没装glxinfo | grep OpenGL可以看渲染器最后看/dev/shm是不是太小。最后这个在容器里很常见Chrome 需要足够大的共享内存太小就会崩df -h /dev/shm如果显示只有 64M那就是它的问题容器启动时加--shm-size1g通常能解决。7.3 扩展装不上、加载失败chrome://extensions/里装扩展失败一般分三种情况。一是直接拖 crx 文件进去没反应新版 Chrome 对非商店来源的 crx 限制越来越严解决办法是改用「加载已解压的扩展程序」把 crx 解压成目录再加载。解压命令mkdir ext cd ext unzip ../some-extension.crx启动时带上--load-extension参数指向这个目录也行。二是企业内网用的老式插件在新版 Chrome 上跑不起来这类问题基本无解只能在旧版本上跑或者推动系统改造。三是扩展装了但没权限去扩展详情页看一下「允许访问文件网址」这个开关有没有打开很多本地调试工具需要它。提示从第三方来源拿到的 crx 文件装之前一定要确认来源可靠。浏览器的扩展权限很大能读你所有网页的内容来源不明的包别装。8. 卸载、清理与版本回退装得多了总有要卸的时候。Chrome 的卸载不像普通软件那么「干净」它会把用户数据留在原地重新装的时候又回来了。这里分开讲。8.1 标准卸载流程如果是 deb 装的卸载很简单sudo apt remove --purge google-chrome-stable sudo apt autoremove -y--purge表示连配置文件一起删。如果你打算以后重装其实可以不加--purge这样配置还在。如果之前加了 apt 源记得把源文件也删掉不然下次apt update还会去拉列表sudo rm -f /etc/apt/sources.list.d/google-chrome.list sudo rm -f /etc/apt/keyrings/google-chrome.gpg sudo apt update8.2 用户数据和缓存的清理前面说过用户数据在~/.config/google-chrome/缓存也在里面按 profile 分目录。想彻底清干净rm -rf ~/.config/google-chrome rm -rf ~/.cache/google-chrome这一步之前一定要想清楚书签、密码、历史记录、扩展全在里面。想留一份书签备份的话先在 Chrome 里导出成 HTML 文件那个文件可以随时导回去比直接拷目录安全因为目录里的数据格式经常跟着版本变。如果你是从 Snap 版切到 deb 版或者反过来两边的数据目录不同想迁移的话可以做个软链接把旧目录指过去但版本差异大的时候容易出兼容问题我一般的做法是导出书签加密码重新登录一遍反而更干净。最后分享一个我自己的习惯。每次装完系统我会把 Chrome 的安装包、依赖清单、常用启动参数记在一个文本文件里存在自己电脑上。下次换机器或者重装的时候直接照着跑一遍二十分钟内能搞定全部环境不用再重新搜教程。Linux 桌面的价值就在这种可复现性上把折腾的过程沉淀下来第二次就轻松了。
返回列表