在 Linux 上安装 Windows 或 macOS 字体库

在 Linux 上安装、切换 Windows 或 macOS 字体,以及恢复系统字体。

本指南适用于 Ubuntu / Debian 无头采集服务器。按浏览器的目标平台安装 Windows 或 macOS 字体;需要切换时,可以安装两套。

使用运行爬虫的用户执行以下命令。Docker 部署请在浏览器所在的容器内操作。本指南使用系统级字体设置,不按浏览器实例区分。

目标平台下载大小
Windowswindows-fonts.zip约 204 MB
macOSmacos-fonts.tar.gz约 513 MB

1. 准备环境

sudo apt-get update
sudo apt-get install -y ca-certificates curl fontconfig unzip tar gzip
mkdir -p "$HOME/.cache/chrovia-font-downloads"
cd "$HOME/.cache/chrovia-font-downloads"

2. 下载并解压

停止浏览器后,执行所需平台的命令。需要两套字体时,分别执行 Windows 和 macOS 部分。

Windows

curl -fL --retry 3 --connect-timeout 15 \
  https://console.getchrovia.com/api/assets/fonts/windows-fonts.zip \
  -o windows-fonts.zip &&
printf '%s  %s\n' \
  f73fafa0081a1ba0714531f7a4d45d4fa47e6fbfa1753a6bd5a030d5f0519fc7 \
  windows-fonts.zip | sha256sum -c - &&
sudo mkdir -p /opt/windows-fonts &&
sudo unzip -o windows-fonts.zip -d /opt/windows-fonts

解压完成后,设置字体读取权限:

sudo chmod -R a+rX /opt/windows-fonts

macOS

curl -fL --retry 3 --connect-timeout 15 \
  https://console.getchrovia.com/api/assets/fonts/macos-fonts.tar.gz \
  -o macos-fonts.tar.gz &&
printf '%s  %s\n' \
  f2e48e5bc9cee81a96adae994a2695d3cfe5ce5dc63dccd5642c61da96397c89 \
  macos-fonts.tar.gz | sha256sum -c - &&
sudo mkdir -p /opt/macos-fonts &&
sudo tar --no-same-owner -xzf macos-fonts.tar.gz -C /opt/macos-fonts &&
sudo chmod -R a+rX /opt/macos-fonts

3. 选择字体库

运行以下命令启用 Windows 字体。启用 macOS 字体时,将 XML 中的 /opt/windows-fonts 改为 /opt/macos-fonts。

sudo rm -f /etc/fonts/conf.d/99-windows-fonts.conf \
  /etc/fonts/conf.d/99-macos-fonts.conf
sudo tee /etc/fonts/conf.d/99-chrovia-fonts.conf >/dev/null <<'EOF'
<?xml version="1.0"?>
<!DOCTYPE fontconfig SYSTEM "urn:fontconfig:fonts.dtd">
<fontconfig>
  <reset-dirs />
  <dir>/opt/windows-fonts</dir>
</fontconfig>
EOF

4. 刷新缓存并检查

如果浏览器启动器或服务设置了 FONTCONFIG_FILE、FONTCONFIG_PATH,请取消这些设置,然后执行以下命令:

unset FONTCONFIG_FILE FONTCONFIG_PATH
fc-cache -f
fc-list --format='%{file}\n' | sort -u

确认列表非空,所有字体路径均位于所选的 /opt/windows-fonts/ 或 /opt/macos-fonts/ 下。

检查字体匹配,macOS 将 Arial 改为 Helvetica:

fc-match -f '%{family}: %{file}\n' 'Arial'

确认返回的字体族和文件路径符合所选字体库,然后完全退出并重新启动浏览器或爬虫服务。

切换字体库

两套字体都已安装并完成上述配置后,先停止浏览器,再执行目标平台对应的命令。

切换到 Windows:

sudo sed -i 's|/opt/macos-fonts|/opt/windows-fonts|' /etc/fonts/conf.d/99-chrovia-fonts.conf &&
fc-cache -f

切换到 macOS:

sudo sed -i 's|/opt/windows-fonts|/opt/macos-fonts|' /etc/fonts/conf.d/99-chrovia-fonts.conf &&
fc-cache -f

按第 4 步重新检查字体路径和匹配结果,再启动浏览器。

恢复系统字体

执行以下命令恢复系统字体:

sudo rm -f /etc/fonts/conf.d/99-chrovia-fonts.conf &&
fc-cache -f

之后完全退出并重新启动浏览器或爬虫服务。

在 DevTools 的 Computed → Rendered Fonts 中查看网页实际使用的字体。浏览器实例配置见 Extended Preferences。