Chromium历史版本离线安装包下载与部署全攻略
2026/9/19 7:16:13 网站建设 项目流程

1. 为什么需要 Chromium 历史版本离线安装包

做前端自动化、浏览器兼容性测试或者 Electron 桌面应用开发的朋友,大概率都遇到过这样的场景:某个线上问题只在特定版本的 Chromium 内核上复现,新版本浏览器早就修掉了;或者公司内网环境完全隔离,根本没法在线下载浏览器;又或者你需要给一批测试机统一部署某个固定版本的 Chromium,保证测试基线一致。这时候,一个干净的、可离线部署的 Chromium 历史版本安装包就成了刚需。

Chromium 和 Chrome 不一样,它没有自动更新服务,也没有 Google 的私有编解码器和品牌定制,本质上就是一个开源浏览器内核的完整构建产物。正因为如此,Chromium 的版本迭代非常快,几乎每天都有新的快照构建,而官方并不提供一个"历史版本下载中心"这样的页面。很多人第一次去找旧版本时会发现,Chrome 的下载地址有规律可循,但 Chromium 的构建产物散落在各个快照目录里,没有索引,没有说明,找起来相当费劲。

这篇文章要解决的问题很具体:如何稳定、可复现地获取 Chromium 任意历史版本的离线安装包,包括 Windows、macOS、Linux 三个平台,以及如何验证下载下来的包是完整可用的。适合的人群包括:做浏览器兼容性测试的 QA、开发 Electron/CEF 应用的工程师、需要在隔离网络环境部署浏览器的运维人员,以及单纯想研究某个旧版本内核行为的开发者。读完你至少能掌握两套可用的下载路径,一套走官方快照存储,一套走社区维护的镜像索引,并且知道每一套的坑在哪里。

2. Chromium 版本号体系与快照存储机制拆解

2.1 四段式版本号到底怎么看

Chromium 的版本号是四段式的,比如109.0.5414.74。这四段分别代表:

  • 第一段(109):主版本号,通常和当时的 Chrome 稳定版对齐,是兼容性判断的主要依据。
  • 第二段(0):次版本号,在 Chromium 里几乎恒为 0,可以忽略。
  • 第三段(5414):构建号(build number),这是最关键的一段,它对应到具体的代码提交位置,同一个主版本下会有很多个构建号。
  • 第四段(74):补丁号(patch number),针对同一个构建号的小修复。

很多人找版本时只记得主版本号,比如"我要 109",但实际下载时你会发现,光 109 这个主版本下就有几十个构建号。真正决定你下载哪个包的,是第三段构建号。如果你只是要"109 大版本",那选该主版本下最后一个稳定构建即可;如果你要复现某个精确的 bug,那就必须锁定到完整的四段版本号。

2.2 快照存储的目录结构

Chromium 官方把每个平台的构建产物放在独立的快照存储桶里,路径规律大致是这样的:

https://storage.googleapis.com/chromium-browser-snapshots/ ├── Win_x64/ │ └── <build_number>/ │ ├── chrome-win.zip │ └── ... ├── Mac/ │ └── <build_number>/ │ └── chrome-mac.zip ├── Linux_x64/ │ └── <build_number>/ │ └── chrome-linux.zip └── ...

注意这里用的是**构建号(build number)**作为目录名,不是版本号。也就是说,你想下载109.0.5414.74,得先知道它对应的构建号是多少。这个映射关系官方不直接给,需要靠一个叫LAST_CHANGE的文件或者社区维护的版本映射表来查。

提示:快照存储桶里的构建是"持续集成产物",不是正式发布版。绝大多数情况下可用,但偶尔会遇到某个构建号目录存在却缺少完整压缩包的情况,下载前最好先确认目录内容。

2.3 为什么官方不提供历史版本下载页

这一点值得说清楚,避免你白费力气去找。Chromium 项目本身定位是"开源浏览器项目",它的构建产物是给开发者和测试者用的中间产物,不是面向终端用户的产品。Google 的商业浏览器 Chrome 才有正式的发布渠道和版本归档。所以 Chromium 的历史版本获取,本质上是在"考古"持续集成系统的历史快照,这就决定了下载方法必须围绕快照存储来设计,而不是找一个官方下载按钮。

理解了这一层,你就明白为什么下面要介绍的两套方法都是"间接"的:一套直接拼快照 URL,一套借助社区维护的版本索引来定位构建号。

3. 方法一:直接拼接官方快照 URL 下载

3.1 核心思路与适用场景

这套方法最直接:你知道构建号,就能拼出下载地址。适合的场景是——你已经通过某种方式确定了目标构建号,或者你只是想下载"某个主版本下最新的构建",那可以直接去查该主版本对应的最新构建号。

优点是不依赖任何第三方服务,只要官方快照存储还在,地址就有效。缺点是你得先解决"版本号到构建号"的映射问题,这一步是整套流程里最容易卡住的地方。

3.2 确定目标构建号

有三种常见途径可以拿到构建号:

途径一:查官方版本映射文件。Chromium 项目在源码仓库里维护了一个chromiumdash数据源,里面有各平台的版本到构建号的对应关系。这个数据是 JSON 格式的,可以直接拉取解析。不过它对普通用户不算友好,需要你会看 JSON 结构。

途径二:用社区维护的版本索引站。有一些第三方站点专门做了 Chromium 版本查询,输入版本号就能给出构建号和下载链接。这类站点更新及时,用起来最省事,但要注意甄别,选那些长期维护、口碑稳定的。

途径三:从LAST_CHANGE反推。每个平台的快照目录下都有一个LAST_CHANGE文件,里面记录的是当前最新构建号。如果你要的是"最新",直接读它就行;如果你要的是历史某个版本,就得结合版本映射表来定位。

我个人的习惯是:先用社区索引站快速定位构建号,再用官方快照 URL 下载。这样既省了查映射的功夫,又保证了下载源是官方的,可靠性最高。

3.3 拼接下载地址的实操

假设你已经查到目标构建号是1070081,平台是 Windows 64 位,那么下载地址就是:

https://storage.googleapis.com/chromium-browser-snapshots/Win_x64/1070081/chrome-win.zip

macOS 对应:

https://storage.googleapis.com/chromium-browser-snapshots/Mac/1070081/chrome-mac.zip

Linux 64 位对应:

https://storage.googleapis.com/chromium-browser-snapshots/Linux_x64/1070081/chrome-linux.zip

用命令行下载的话,curlwget都行:

# 下载 Windows 64 位构建 curl -L -o chrome-win-1070081.zip \ "https://storage.googleapis.com/chromium-browser-snapshots/Win_x64/1070081/chrome-win.zip" # 下载 Linux 64 位构建 wget -O chrome-linux-1070081.zip \ "https://storage.googleapis.com/chromium-browser-snapshots/Linux_x64/1070081/chrome-linux.zip"

-L参数是必须的,因为快照存储会做一次重定向。下载完成后,Windows 包解压出来是chrome-win目录,里面直接就是可执行文件,不需要安装,绿色运行。

3.4 平台与架构的对应关系

不同平台的目录名容易搞混,这里整理一张对照表:

平台架构快照目录名压缩包名
Windows64 位Win_x64chrome-win.zip
Windows32 位Winchrome-win32.zip
macOSIntel/ARM 通用Macchrome-mac.zip
Linux64 位Linux_x64chrome-linux.zip
LinuxARM64Linux_ARM_Cross-Compilechrome-linux.zip

注意:32 位 Windows 的目录名是Win,不是Win_x86,这个坑很多人踩过。另外 macOS 的快照包是通用二进制,Intel 和 Apple Silicon 都能跑,不用分开下。

3.5 下载后的完整性校验

快照存储里每个构建目录下通常还有一个chromium-browser-snapshots的校验文件,或者你可以通过对比文件大小来初步判断。更稳妥的做法是解压后直接运行,看版本号是否匹配:

# Linux 下查看版本 ./chrome-linux/chrome --version # Windows 下(PowerShell) .\chrome-win\chrome.exe --version

如果输出的版本号和你预期的四段版本号一致,说明包没问题。如果解压报错或者运行崩溃,大概率是下载不完整,重新下一遍即可。

4. 方法二:借助社区版本索引站定位

4.1 为什么需要第二套方法

方法一的前提是"你已经知道构建号"。但现实中更多的情况是:你只知道"我要 109 稳定版",或者"我要 2023 年 1 月左右的版本",根本不知道构建号。这时候就需要一个能把"版本号/日期"翻译成"构建号"的工具,社区版本索引站就是干这个的。

这类站点的价值在于:它们维护了完整的版本-构建号映射表,并且提供搜索和筛选。你输入主版本号,它列出该版本下所有构建;你输入日期,它给出那天的构建号。对于做兼容性测试的人来说,这个能力比下载本身还重要。

4.2 典型索引站的使用方式

这类站点通常提供几种查询入口:

  • 按版本号查:输入109.0.5414.74,直接给出构建号和下载链接。
  • 按主版本查:输入109,列出该主版本下所有构建号及对应日期。
  • 按日期查:输入2023-01-15,给出当天前后的构建号。
  • 按平台筛选:限定 Windows/macOS/Linux,避免拿到不相关的结果。

使用时的关键动作是交叉验证:索引站给出的构建号,最好再用方法一的官方 URL 试一下,确认目录真实存在。因为索引站的数据可能有延迟,偶尔会出现"索引里有但官方已清理"的情况。

4.3 版本号与构建号的映射逻辑

这里补充一个背景知识,帮你理解为什么映射会存在偏差。Chromium 的构建是持续集成的,每天可能产生多个构建号。但"版本号"是在代码里定义的,只有当代码里的版本号字段被更新时,版本号才会跳变。所以会出现:多个构建号对应同一个版本号,或者某个版本号只在很短的构建区间内存在

这就解释了为什么你查109.0.5414.74时,索引站可能给出好几个构建号——它们都是这个版本号的有效构建,选哪个都行,一般选最新的那个。而如果你要的是"109 主版本",那范围就大得多,从 109 的第一个构建到最后一个构建都算。

4.4 下载加速与镜像选择

官方快照存储在国内访问速度不稳定,这是实话。如果你需要批量下载或者下载大包,可以考虑:

  • 使用支持断点续传的下载工具,避免中途断线重来。
  • 选择地理位置更近的镜像源,部分社区镜像会同步官方快照,速度会好一些。
  • 错峰下载,快照存储的负载在不同时段差异明显。

需要强调的是,无论用哪个镜像,下载后都要校验版本号,确保拿到的包和你要的版本一致。镜像同步可能有延迟,偶尔会拿到旧数据。

5. 三大平台的部署与运行要点

5.1 Windows 平台的绿色部署

Windows 的 Chromium 快照包解压后就是一个完整目录,双击chrome.exe即可运行。但有几个细节要注意:

  • 不要放在带中文或空格的路径下,某些旧版本对路径编码处理有问题,可能导致启动失败。
  • 首次运行可能提示缺少 DLL,这是因为快照包依赖系统的一些运行库,装一下常见的运行库合集即可。
  • 多版本共存:把不同版本的目录分别命名,比如chromium-109chromium-120,各自独立,互不干扰。测试时直接进对应目录启动。

如果你要做自动化测试,可以把chrome.exe的路径写进测试框架的配置里,指定用哪个版本的 Chromium,这样就能精确控制测试环境。

5.2 macOS 平台的运行与签名问题

macOS 的快照包解压后是Chromium.app,直接拖到应用程序目录或者就地运行都行。但 macOS 的 Gatekeeper 会拦截未签名的应用,第一次打开时可能提示"无法验证开发者"。解决办法:

  • 右键点击应用,选择"打开",在弹窗里确认一次,之后就能正常启动了。
  • 或者在"系统设置 - 隐私与安全性"里允许该应用运行。

另外,macOS 上多版本共存时,建议把不同版本的.app重命名,比如Chromium-109.app,避免 Launchpad 里混淆。

5.3 Linux 平台的依赖处理

Linux 快照包解压后是chrome-linux目录,里面有个chrome可执行文件。直接运行可能报缺库,常见的是缺libnss3libatklibgbm等。用包管理器补上即可:

# Debian/Ubuntu 系 sudo apt-get install -y libnss3 libatk1.0-0 libatk-bridge2.0-0 \ libcups2 libdrm2 libgbm1 libasound2 libxkbcommon0 libxcomposite1 \ libxdamage1 libxrandr2 libpango-1.0-0 libcairo2 # RHEL/CentOS 系 sudo yum install -y nss atk at-spi2-atk cups-libs libdrm mesa-libgbm \ alsa-lib libxkbcommon libXcomposite libXdamage libXrandr pango cairo

如果是在无图形界面的服务器上跑,还需要xvfb来做虚拟显示:

sudo apt-get install -y xvfb xvfb-run -a ./chrome-linux/chrome --headless --version

提示:Linux 下用--no-sandbox参数可以绕过沙箱,但仅建议在受控的测试环境里用,生产环境不要加这个参数。

6. 常见问题与排查技巧实录

6.1 下载地址 404 怎么办

最常见的原因是构建号写错了,或者该构建号在官方存储里已被清理。排查顺序:

  1. 确认构建号是否正确,重新从索引站核对一遍。
  2. 确认平台目录名是否正确(参考 3.4 的对照表)。
  3. 如果确认无误还是 404,说明该构建已被官方清理,换一个相邻的构建号试试。

官方快照存储会定期清理过旧的构建,所以特别老的版本(比如几年前的)可能已经不在官方存储里了。这种情况下只能找社区备份,或者用方法二里提到的镜像源。

6.2 下载下来的包解压报错

多半是下载不完整。快照包动辄上百 MB,网络不稳时容易断。解决办法:

  • curl -C -wget -c断点续传。
  • 下载后对比文件大小,和索引站标注的大小核对。
  • unzip -t测试压缩包完整性:
unzip -t chrome-win-1070081.zip

如果测试报错,重新下载。

6.3 运行后版本号对不上

这种情况通常是拿错了包。比如你要 Windows 64 位,结果下成了 32 位的Win目录。或者索引站数据有误,给出的构建号对应的实际版本和你预期不符。解决办法就是运行--version确认,对不上就重新定位构建号。

6.4 多版本共存时的配置隔离

做兼容性测试时,经常需要同时装好几个版本。除了目录分开,还要注意用户数据目录隔离。Chromium 默认会把用户数据存在系统目录里,多版本共用会互相污染。启动时加参数指定独立的数据目录:

./chrome --user-data-dir=/tmp/chromium-109-profile

这样每个版本用各自的 profile,测试结果才干净。

6.5 常见问题速查表

问题现象可能原因解决方向
下载 404构建号错误/已被清理核对构建号,换相邻版本
解压报错下载不完整断点续传重下,校验大小
启动缺 DLL/so系统运行库缺失补装运行库
版本号对不上平台/架构拿错核对目录名,重下
多版本互相影响用户数据目录共用加 --user-data-dir 隔离
macOS 无法打开Gatekeeper 拦截右键打开或放行

6.6 几个我踩过的坑

第一个坑是把构建号当成版本号。刚开始我以为目录名就是版本号,结果拼出来的 URL 全是 404。后来才明白目录名是构建号,得先做映射。

第二个坑是忽略了 32 位和 64 位的目录名差异。Windows 32 位的目录叫Win,我一开始按Win_x86拼,怎么都不对。

第三个坑是在无图形界面的 Linux 上直接跑,报了一堆显示相关的错。后来加了xvfb-run--headless才正常。

第四个坑是多版本共用 profile,导致测试结果不稳定,排查了半天才发现是数据目录污染。加上--user-data-dir之后问题消失。

7. 批量获取与自动化脚本思路

7.1 用脚本批量下载多个版本

如果你需要一次性准备多个版本的测试环境,手动一个个下太慢。可以写个简单的 shell 脚本,把构建号列表读进来,循环下载:

#!/bin/bash # 批量下载 Chromium 快照包 PLATFORM="Win_x64" PACKAGE="chrome-win.zip" BUILDS=("1070081" "1080000" "1090000") for build in "${BUILDS[@]}"; do url="https://storage.googleapis.com/chromium-browser-snapshots/${PLATFORM}/${build}/${PACKAGE}" out="chromium-${build}.zip" echo "Downloading build ${build}..." curl -L -C - -o "${out}" "${url}" if [ $? -eq 0 ]; then echo "OK: ${out}" else echo "FAILED: ${build}" fi done

这个脚本的关键点是-C -断点续传,以及失败后不中断整个循环,方便你事后补下失败的。

7.2 自动校验下载结果

下载完自动校验版本号,能省不少事。思路是解压后运行--version,把输出和预期版本比对:

#!/bin/bash # 校验已下载的 Chromium 版本 EXPECTED="109.0.5414.74" ACTUAL=$(./chrome-linux/chrome --version | awk '{print $2}') if [ "$ACTUAL" == "$EXPECTED" ]; then echo "版本匹配: $ACTUAL" else echo "版本不匹配: 期望 $EXPECTED, 实际 $ACTUAL" fi

Windows 下可以用 PowerShell 做类似的事,思路一样。

7.3 版本清单的维护建议

做兼容性测试的团队,建议维护一份自己的"版本清单",记录每个测试基线对应的构建号、下载日期、校验结果。这样下次要复现同样的环境,直接照单下载即可,不用重新查映射。清单可以用简单的 CSV 或 Markdown 表格维护,字段包括:版本号、构建号、平台、下载日期、校验状态。

这份清单的价值在于可复现性。浏览器兼容性测试最怕的就是"上次能复现,这次环境变了复现不了",有了清单,环境就能精确重建。

8. 关于版本选择的一点个人经验

最后聊点实际的。很多人找历史版本时容易陷入"越精确越好"的误区,非要找到某个四段版本号完全一致的构建。但实际上,对于大多数兼容性测试场景,锁定到主版本就足够了。比如你要测"109 内核的行为",那 109 主版本下任意一个稳定构建都能满足,没必要纠结补丁号。

真正需要精确到四段版本号的场景其实很少,主要是两类:一是复现某个已知的、和特定补丁相关的 bug;二是你的应用对内核版本有硬性依赖,差一个补丁号就出问题。除此之外,主版本对齐即可。

另外,下载历史版本时优先选该主版本下较新的构建,因为越新的构建修复的已知问题越多,测试时遇到的"内核自身 bug"干扰越少。除非你的目的就是复现旧 bug,否则没必要用该主版本最早的构建。

还有一点,Chromium 快照包是未签名的开发构建,不适合直接分发给终端用户使用,只适合开发、测试、研究场景。如果你是要给用户部署浏览器,应该用正式发布的浏览器产品,而不是 Chromium 快照。这个边界要分清楚,避免用错场景。

我在实际项目里的做法是:维护一个"常用测试基线"清单,每个基线对应一个主版本,记录该主版本下我验证过可用的构建号。新项目需要测试时,直接从清单里挑,不临时去找。这样既省时间,又保证了团队内环境一致。清单大概长这样:

主版本构建号平台用途验证日期
1091070081Win_x64旧内核兼容测试2024-01
1201180000Win_x64当前基线2024-06
1091070081Linux_x64CI 环境2024-01

这份清单不需要多复杂,关键是团队共享、定期更新。每次有人验证了一个新版本可用,就加一行进去。时间长了,这就是团队最宝贵的环境资产。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询