ARTICLE DETAIL

资讯详情

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

Ubuntu 14.04 安装 32 位 Chrome:依赖、证书与旧系统替代方案全析

Ubuntu 14.04 安装 32 位 Chrome:依赖、证书与旧系统替代方案全析 如果你今天还在折腾“Ubuntu 14.04 安装 32 位 Chrome”这件事大概率是手里有一台舍不得扔的老电脑或者某个机房角落里的 32 位上网本还在服役。这活儿放在 2016 年之前非常简单一条命令下载 deb 包再 dpkg 安装就完事了但放到现在Google 早就停掉了 32 位 Linux 版 ChromeUbuntu 14.04 的软件源也整体搬进了 old-releases 存档区照抄当年的教程必然处处碰壁。我最近刚好在一台 32 位的老笔记本上完整走了一遍流程从换源到装依赖从证书报错到启动参数调优踩了不少坑。下面这篇就把整个操作过程、原理解释和替换方案都写清楚给那些还在和 14.04 较劲的朋友做个参考。1. 为什么这件事现在成了一个“考古题”1.1 32 位 Chrome 的终点站版本 49先说一个关键时间点Google 在 2016 年 3 月左右发布了 Chrome 49这是 Linux 平台 32 位版本的最后一班车。从 Chrome 50 开始官方只提供 64 位 Linux 包32 位用户再也没收到过新版本和安全补丁。也就是说你现在能装到的 32 位 Chrome不管从哪个渠道下载版本号都在 49.0.2623.x 这个区间。这个版本有多老它出生的时候 Windows 7 如日中天还没有 Chrome 109 这种后来的版本概念网页标准也停留在 ES6 刚起步的阶段。拿到今天来看它的 HTML5 渲染能力、JavaScript 引擎性能、TLS 协议支持都明显落后但这恰恰是 32 位老机器能跑动的最后一代 Chrome也是很多旧系统的“最优解”。1.2 Ubuntu 14.04 的现状源已经搬进了存档库Ubuntu 14.04 代号 Trusty Tahr2014 年 4 月发布标准支持周期到 2019 年 4 月结束。支持期结束后它的软件源从 archive.ubuntu.com 整体迁移到了 old-releases.ubuntu.com。很多老教程里写的apt-get install chromium-browser或者直接apt-get update在今天都会因为源地址失效而报错。这带来一个连锁问题你不仅需要自己找 Chrome 的 deb 安装包还需要把系统的软件源修复好才能解决 Chrome 依赖的库文件。老系统装新软件最麻烦的从来不是软件本身而是依赖链。1.3 动手之前先想清楚你需要的到底是什么在正式开始之前我建议你先花一分钟想清楚需求因为 32 位 Chrome 的适用范围比想象中窄。我为什么要装 Chrome如果只是想要一个能打开网页的浏览器其实有更轻量、更新维护的选择。这台机器内存多大1GB 以下的话Chrome 49 跑起来也会吃力可能需要配合轻量桌面环境。我会拿它做什么如果只是看文档、查资料、登录一些旧系统Chrome 49 完全够用如果要用现代网银、视频网站、新版 Web 应用我劝你趁早换路子。想清楚这些后面的操作才有意义。毕竟折腾老系统的核心原则是“够用就好”不是“非得装上不可”。2. 动手前的地基修源、补依赖、找安装包2.1 把软件源切到 old-releasesUbuntu 14.04 的源文件在/etc/apt/sources.list由于官方源已经失效第一步就是批量替换。最简单粗暴的方法是用 sed 把域名整体换成 old-releasessudo sed -i s/archive.ubuntu.com/old-releases.ubuntu.com/g /etc/apt/sources.list sudo sed -i s/security.ubuntu.com/old-releases.ubuntu.com/g /etc/apt/sources.list sudo apt-get update如果你发现 sources.list 里还有别的第三方源比如ppa.launchpad.net或download.virtualbox.org建议先注释掉。老系统的 PPA 大多已经失效留着只会拖慢 apt-get update 的速度甚至卡死在连接超时上。如果你手头的 sources.list 已经被清空了也可以手动写一个最小可用的 14.04 源deb http://old-releases.ubuntu.com/ubuntu/ trusty main restricted universe multiverse deb http://old-releases.ubuntu.com/ubuntu/ trusty-updates main restricted universe multiverse deb http://old-releases.ubuntu.com/ubuntu/ trusty-security main restricted universe multiverse这里有个小细节不要把deb-src也加上除非你真的需要编译源码。加多了源只会让 update 时间变长对安装 Chrome 没有帮助。2.2 把依赖提前装好别等 dpkg 报错Chrome 49 的 i386 deb 包依赖一批运行库包括 libgconf2-4、libnss3、libxss1、libappindicator1、fonts-liberation 等。在 14.04 的源里这些包都还在可以直接装sudo apt-get install libgconf2-4 libnss3 libxss1 libappindicator1 fonts-liberation libcurl3为什么强调“提前装”因为dpkg -i安装 Chrome 时遇到缺依赖会直接中断然后再执行apt-get -f install修复虽然也能解决但多了一步报错处理新手容易吓一跳。先把依赖列出来装齐后面 dpkg 一步到位体验完全不同。注意libcurl3 这个包在 14.04 里有但在 Ubuntu 18.04 之后就换成了 libcurl4如果你是在更新的系统上找旧包这条会踩坑。不过我们这题限定 14.04所以没问题。2.3 找到 32 位 Chrome 的 deb 包Chrome 官方当年的下载链接是https://dl.google.com/linux/direct/google-chrome-stable_current_i386.deb但这个链接今天大概率拿不到文件了——Google 停止 32 位版本后会返回 404。如果你运气好还能下载下来那恭喜绝大多数情况下你得从下面几个渠道找Internet Archive 的 Wayback Machine在 web.archive.org 里输入https://dl.google.com/linux/direct/google-chrome-stable_current_i386.deb的历史快照能找到 2016 年 3 月前后的存档文件。老牌 Chrome 镜像站搜索google-chrome-stable_current_i386.deb找一些还保留旧安装包的下载站。注意核对文件名里带 i386 字样别下载成 64 位版本。本地缓存如果你以前在这台机器上装过 Chrome浏览器或 /var/cache/apt/archives 里可能还有残留的旧 deb。查一下ls /var/cache/apt/archives/*.deb。下载完先看一眼文件信息用dpkg-deb -I google-chrome-stable_current_i386.deb查看包架构字段确认是 i386避免装到一半报“wrong architecture”才返工。3. 核心安装流程从 deb 落地到图标点亮3.1 dpkg 安装与依赖兜底安装命令很简单进入下载目录后执行sudo dpkg -i google-chrome-stable_current_i386.deb如果之前在 2.2 节已经装好了依赖这一步应该直接通过不会报错。万一因为某些原因仍有依赖缺失最稳妥的做法是接着执行sudo apt-get -f installapt 会自动补装缺失的依赖然后完成 Chrome 的配置。这条命令是 dpkg 的“后悔药”几乎所有 deb 包安装失败后的依赖修复都靠它。关于“为什么不用 apt install ./xxx.deb”的问题14.04 的 apt 版本是 1.0已经支持直接安装本地 deb但你依然需要先写好源否则无法解析依赖。dpkg -i apt-get -f install 的组合更直白也更适合老系统的操作习惯。3.2 Sandbox 权限第一个必然遇到的坑装完 Chrome如果你直接在终端运行google-chrome大概率会看到一行红字报错The SUID sandbox helper binary was found, but is not configured correctly.这个问题的本质是/opt/google/chrome/chrome-sandbox文件的权限不对。Chrome 的沙箱机制需要一个属主为 root、权限为 4755 的辅助程序而 deb 解包时有时不会自动设置好。修复方法如下sudo chown root:root /opt/google/chrome/chrome-sandbox sudo chmod 4755 /opt/google/chrome/chrome-sandbox顺便提醒一句网上很多教程会让你加--no-sandbox参数绕过这个检查。这个参数关闭了浏览器沙箱意味着网页代码有权限直接访问系统资源风险很高。老系统本身就不安全再关掉沙箱等于裸奔。除非万不得已比如容器环境否则不要用它。3.3 桌面启动图标与老机器常用参数dpkg 安装完成后系统菜单里会自动生成 Google Chrome 的启动项位置在/usr/share/applications/google-chrome.desktop。正常情况下不需要手动修改。不过在老机器上我强烈建议你调一下启动参数。打开这个 desktop 文件找到 Exec 行改为类似这样Exec/opt/google/chrome/google-chrome --disable-gpu %U加--disable-gpu的原因很实际14.04 的内核和 Mesa 驱动太老Chrome 49 的 GPU 进程经常崩溃导致白屏或页面滚动的光标渲染异常。禁用 GPU 加速后虽然滚动稍微不如硬件加速顺滑但胜在稳定。如果你内存实在紧张还可以追加--disable-reading-from-canvas、--disable-accelerated-2d-canvas这类参数。不过我最建议的只有一个--disable-gpu其他动了反而可能引发莫名其妙的问题。4. 装完只是开始几个实测必炸的大坑4.1 HTTPS 证书全红NET::ERR_CERT_AUTHORITY_INVALID装完 Chrome 49第一件事是随便打开一个 https 网站试试。如果你访问现代网站看到“您的连接不是私密连接”或者NET::ERR_CERT_AUTHORITY_INVALID别慌这不是没装好而是这个版本 Chrome 的证书库太老了。Chrome 49 内置的 NSS 库版本约在 3.19 左右它不认 2016 年以后新出现的 CA 根证书。现在主流网站使用的 Lets Encrypt 证书其根证书 ISRG Root X1 就是 2016 年才申请的Chrome 49 压根不知道这个根存在自然无法验证网站身份。修复分两步走。先在系统层面导入新根证书sudo cp isrg-root-x1.pem /usr/local/share/ca-certificates/isrg-root-x1.crt sudo update-ca-certificates注意后缀必须是 .crtupdate-ca-certificates 只扫描这个目录下的 crt 文件。但这只解决了一半问题因为 Chrome 在启动时除了读系统证书库还会读取用户目录下的 NSS 数据库。如果你发现光更新系统证书之后仍然报错就需要手动往用户的 NSS 库里登记新根证书sudo apt-get install libnss3-tools mkdir -p $HOME/.pki/nssdb certutil -d sql:$HOME/.pki/nssdb -N --empty-password certutil -d sql:$HOME/.pki/nssdb -A -t C,, -n ISRG Root X1 -i isrg-root-x1.pem这里的逻辑是Chrome 通过 NSS 数据库查询信任锚点系统/etc/ssl/certs更新后 Chrome 未必直接认但用户级 NSS 库一定认。两步都做完绝大多数证书报错就能解决。ISRG Root X1 的 pem 文件哪来在一台现代设备的浏览器地址栏输入https://letsencrypt.org/certs/或者从其他受信任的服务器下载后拷进老机器。这里有个现实问题老机器的 wget/curl 本身可能也报证书错误所以最省事的办法是用 U 盘从新电脑把证书文件拷贝过来。4.2 中文网页字体发虚14.04 在安装桌面版时默认带中文字体但如果你当初装的是英文版或者精简版Chrome 里打开中文网页会出现方框、乱码或者笔画发虚。解决方案是补装文泉驿字体sudo apt-get install fonts-wqy-zenhei fonts-wqy-microhei装完重启 Chrome中文字体的渲染会正常很多。这里要说一句Chrome 49 的字体回退机制比较原始如果系统里一个中文字体都没有它不会像现代浏览器那样主动下载网络字体而是直接拿日文或韩文字形兜底所以结果就是笔画缺一块、字号大小不一。字体装好后这个现象会立即消失。如果你对字体有更高要求还可以在~/.fonts下放一个微软雅黑的 ttf。但文泉驿微米黑对 14.04 来说已经算是平衡了清晰度和性能的选择了。4.3 CPU 飙高、GPU 崩溃与扩展兼容性装完 Chrome 49 跑几个网页你可能会发现风扇狂转、页面时不时白屏。除了前面提到的--disable-gpu能缓解大部分问题外还有两个细节值得注意。第一个是 Flash。Chrome 49 自带 PPAPI Flash但 Flash 插件已经停止维护很多年而且会无端占用 CPU。建议在设置里手动禁用 Flash或在地址栏输入chrome://settings/content/flash改为“点击运行”不是万不得已别让它自动加载。第二个是扩展。Chrome 49 的扩展系统对 Manifest V3 完全不支持大量现代扩展装不了。不过这也不全是坏事——你反而能回到那个“扩展小而美”的时代。如果你一定要装广告拦截找 uBlock Origin 的旧版本2018 年以前的 1.2x 版本在 49 上运行很流畅。第三个容易忽略的点是chrome://gpu页面。打开它你会看到几乎每个条目都在报错或显示“软件渲染”。这是老系统的正常表现不建议你再折腾显卡驱动了。A 卡、N 卡、Intel 集显在 14.04 上的闭源驱动早就停止更新开源驱动的兼容性反而不错。接受软件渲染就是接受稳定。5. 装完之后聊聊这台老设备的现实出路5.1 32 位 Chrome 49 的真实能力边界折腾完一轮你需要对装好的 Chrome 49 有一个清醒认识。它不是一个现代的浏览器而是一个 2016 年的古董。实测下来普通新闻资讯站、文档站、技术博客基本都能正常浏览。使用现代前端框架React 18、Vite 构建的应用大概率白屏或交互异常。视频网站HTML5 播放器能否正常播放看兼容性老版本往往提示“此视频格式不支持”。网银、支付类网站强烈不建议使用。一方面证书验证可能失败另一方面 Chrome 49 的漏洞在 2016 年后已经公开了很多年安全性没有保障。Google 自家的搜索和 Gmail能打开但新版界面有时会出现布局错乱。说白了它就是一台“阅读器”级别的浏览器。查查资料、看看文档、访问一些常年不更新界面的后台系统这些场景完全够用。想指望它流畅跑现代 Web 应用那就是强人所难了。5.2 替代方案对比老系统不止 Chrome 一条路我在折腾 Chrome 的过程中也顺手试过其他浏览器整理出来供你参考浏览器是否支持 32 位 Linux版本特点适合场景32 位 Chrome 49是老而全扩展生态停留在 2016 年旧系统情怀、特定旧应用Firefox 52 ESR是Mozilla 最后支持 32 位 Linux 的 ESR 版本可解压运行兼容性略好、标签页开得多Pale Moon 28是Firefox 分支持续维护到 2021 年左右日常浏览、老机器轻量使用换装 Lubuntu 18.04 32 位是新系统内核更现代、软件源还能用设备内存 ≥2GB 时的更好出路实际使用下来Firefox 52 ESR 对网页标准的支持比 Chrome 49 好不少至少很多现代网页能打开而不白屏Pale Moon 28 更加轻量启动速度也快。如果机器内存不超过 1GB我更推荐先试 Pale Moon而不是死磕 Chrome。如果你的硬件内存有 2GB 以上其实最务实的方案是放弃 14.04装一个 Lubuntu 18.04 的 32 位版本。同样是老系统18.04 的软件源还能走 archive.ubuntu.com浏览器也有更多选择安全补丁也更新。当然这已经是另一个折腾方向了感兴趣的话可以单独开一篇细说。5.3 个人使用建议与安全提醒最后说点我个人实操后的体会。第一不要在这台机器上登录任何重要账号。Chrome 49 至今已停止维护多年公开的漏洞足够多任何现代攻击手段都能轻松击穿它。把它当作一个“打开就关门”的阅读器就好不要动钱、不要输密码。第二证书问题一定要第一时间处理。很多人装完 Chrome 发现打不开 HTTPS就以为安装失败转而去找新版。实际上把根证书导入后大部分普通网站都能正常浏览。这一步没做后面全白搭。第三如果只是想体验“当年在 Ubuntu 14.04 上用 Chrome”的感觉装完跑一跑就够了别追求完美——追求完美的话你需要换一台新电脑。这台老电脑折腾下来我的感受是它更像是一台时间机器带你回到 Linux 桌面还在为 Flash、GPU 驱动、H.264 授权这些事焦头烂额的年代。装好后我第一次打开 chrome://gpu 时笑出声来——满屏的红叉却有一种奇妙的怀旧感。如果你也喜欢这种折腾的感觉那就慢慢玩吧。
返回列表