在 Amazon Linux 2023 (AL2023) 上安装 Chromium 浏览器常用于支持无头(Headless)自动化测试、网页爬虫(如 Puppeteer、Playwright)等场景。然而,与以往的 Amazon Linux 2 版本不同,AL2023 引入了“确定性更新(Deterministic Updates)”机制以及全新的包管理策略
此外,在
t2.micro、t3.micro等低配 EC2 实例上执行全量包更新或繁重的编译安装时,极易因资源耗尽导致 SSH 连接断开。
本文将详细介绍如何在 AL2023 上通过开启官方扩展库(SPAL)正确安装 Chromium,并重点讲解如何利用 Linux 底层工具对包管理器进行资源限制,以保障服务器的稳定运行。
dnf 容易导致服务器失联?在内存仅有 1GB 且 CPU 受基线限制的突发性能实例上直接执行 dnf update 或安装大型软件包,主要面临以下两个风险:
t 系列实例的 CPU 突发积分,导致实例性能被强制降级至基准线,系统响应出现严重延迟。dnf 在并发下载和解析大型依赖树时会产生较高的内存峰值。当物理内存耗尽且未配置 Swap 空间时,Linux 内核的 OOM (Out Of Memory) 机制会被触发,并可能随机终止关键系统进程(如 sshd),直接导致远程连接断开。dnf 资源占用为了解决上述问题,我们可以借助 AL2023 内置的 systemd(基于 Cgroups v2),通过 systemd-run 命令为 dnf 进程创建一个具有严格资源限制的临时运行作用域(Scope)。
配合 dnf 的配置参数,我们可以实现以下防护:
标准的基础限制命令模板如下:
sudo systemd-run --scope -p CPUQuota=30% -p MemoryMax=400M dnf <command> --setopt=max_parallel_downloads=1注:CPUQuota=30% 表示限制最高使用单核的 30% 算力;MemoryMax=400M 限制最大内存占用量为 400MB。
在 AL2023 中,Chromium 并未包含在默认的核心软件库中,而是被归类在 SPAL (Supplementary Packages for Amazon Linux) 扩展库内。此外,受确定性更新机制影响,如果实例的锁定版本较老,必须先将发行版版本升级至最新。
以下是完整的安装操作流程:
使用带有资源限制的命令,将系统的版本库升级到最新,以确保能够获取到官方后续加入的新软件包。
sudo systemd-run --scope -p CPUQuota=50% -p MemoryMax=400M dnf upgrade --releasever=latest -y --setopt=max_parallel_downloads=1系统如果返回 Dependencies resolved. Nothing to do. Complete!,说明当前系统已是最新锁定版本,可直接进入下一步。
Chromium 的二进制文件及其依赖的 X11/Wayland 图形库位于 SPAL 仓库中。执行以下命令安装 spal-release 包以启用该仓库:
sudo systemd-run --scope -p CPUQuota=30% -p MemoryMax=400M dnf install spal-release -y启用扩展库后,即可正常安装 Chromium。由于包含大量依赖项,该过程在资源受限的情况下需要几分钟时间,请保持终端开启直到完成。
sudo systemd-run --scope -p CPUQuota=30% -p MemoryMax=400M dnf install chromium -y安装完成后,通过以下命令验证可执行文件是否已正确写入系统路径,并查看版本号:
chromium-browser --version在 Amazon Linux 2023 的低配置实例上进行系统运维时,粗暴地执行全局更新存在较高风险。通过 systemd-run 进行精细化的资源隔离,结合 AL2023 最新的 SPAL 仓库机制,可以安全、合规地完成 Chromium 及类似大型基础组件的安装。这种方法不仅保障了服务的稳定性,也为云端自动化环境的搭建提供了标准化的操作范式。
