linux默认不带微软字体是因版权限制而非技术限制;ubuntu/debian用户可启用multiverse仓库后执行sudo apt install ttf-mscorefonts-installer安装times new roman等字体,安装时需确认eula授权,再运行sudo fc-cache -fv刷新缓存并重启相关应用。

Linux 默认不带微软字体,不是因为技术做不到,而是版权限制——Times New Roman 和 simsun.ttc 都是专有字体,发行版不能默认分发。但你可以合法安装,关键看来源和方式。
Ubuntu/Debian 上用 apt 安装 Times New Roman 最省事
这是最推荐的路径,尤其适合桌面用户。系统会自动下载、解压、注册微软核心字体(含 Times New Roman、Arial、Courier New),并处理 EULA 授权交互:
- 先确保
multiverse仓库已启用:sudo add-apt-repository multiverse && sudo apt update - 执行安装:
sudo apt install ttf-mscorefonts-installer—— 安装过程中会弹出图形化协议确认框(终端里是dialog界面),按 Tab 切换到<ok></ok>后回车即可 - 刷新缓存:
sudo fc-cache -fv
注意:如果执行后 fc-match "Times New Roman" 仍返回 Liberation Serif,大概率是没通过授权确认,重装一次并紧盯终端提示;另外某些 Ubuntu 衍生版(如统信 UOS)可能需先 apt install software-properties-common 才能用 add-apt-repository。
CentOS/RHEL/Fedora 上装宋体(simsun.ttc)要手动+补语言支持
微软不提供开源宋体,所以不能靠包管理器一键装。你得从 Windows 系统拷 simsun.ttc(不是 .ttf),然后手动部署,否则 fc-list :lang=zh 查不到中文匹配:
- 把
simsun.ttc放到系统级目录:sudo mkdir -p /usr/share/fonts/zh_CN && sudo cp simsun.ttc /usr/share/fonts/zh_CN/ - 设权限:
sudo chmod 644 /usr/share/fonts/zh_CN/simsun.ttc(别用 766,fontconfig 会跳过可写字体) - 装中文字体支持包:
sudo yum groupinstall "Chinese Support"(CentOS 7)或sudo dnf install glibc-common kde-l10n-Chinese(Fedora) - 刷新:
sudo fc-cache -fv
验证时别只用 fc-list | grep -i simsun,得跑 fc-list :lang=zh 看是否列出带 “SimSun” 或 “宋体” 字样的条目;否则可能是 locale 没生效,检查 locale -a | grep zh_CN 是否有 zh_CN.utf8。
Linux系统管理专家,覆盖12大模块:用户权限、SSH、存储、网络、systemd、防火墙、日志监控、备份恢复、TLS证书、Ansible、容器、IaC。提供配置、验证、加固、监控、备份、自动化、故障排查、回滚闭环。关键词:useradd、sudo、sshd_config、chmod、SEL...
所有发行版通用:手动安装字体文件要注意路径和权限
不管你是从 Windows 拷 times.ttf,还是下思源宋体,只要走手动路径,就绕不开三个硬规则:
- 字体文件必须放在
fc-cache扫描路径里,常见位置是:/usr/share/fonts/(系统级)、~/.local/share/fonts/(用户级)——放错目录(比如/opt/fonts)不会被识别 - 目录和字体文件都必须可读:
chmod 644 *.ttf或chmod 644 *.ttc;如果目录权限是 700,非 root 用户运行的程序(如 Chrome、Selenium)根本读不到 -
fc-cache -fv必须带-v参数看输出,确认它真扫到了你的字体目录;如果输出里没出现你放字体的路径,说明路径不对或权限拒绝访问
比如在无桌面服务器上跑 wkhtmltopdf 生成 PDF,字体装对了但 PDF 还是显示方块,八成是 wkhtmltopdf 启动用户(如 www-data)没权限读 /usr/share/fonts/zh_CN/,这时要么改目录权限,要么把字体复制到用户家目录下的 .local/share/fonts/ 并给该用户单独跑 fc-cache。
WPS/LibreOffice/Java 程序用不上新字体?重启不是万能的
装完字体后 LibreOffice 还看不到 Times New Roman,别急着重装——这些程序启动时会缓存字体列表,但行为不一致:
- LibreOffice:必须完全退出所有进程(包括后台的
soffice.bin),再重新打开;只关文档没用 - WPS:有时需要删掉配置缓存:
rm -rf ~/.wps-office/office6/fontcache/,再重启 - Java 程序(如用
Graphics2D渲染图片):JVM 启动后字体列表就固定了,必须重启 JVM 进程,改fc-cache没反应 - Chrome / Chromium(含 Selenium):需加启动参数
--font-render-hinting=medium或确保系统 locale 是zh_CN.UTF-8,否则即使字体存在也可能 fallback 到其他字体
最容易被忽略的是:字体名匹配不等于显示正常。fc-match "Times New Roman" 返回 times.ttf 只代表名字能对上,但实际渲染还依赖 fontconfig 的 patterns 规则和应用自身的字体回退逻辑。如果你看到英文是 Times New Roman、中文却是方块,问题不在字体安装,而在中英混排时没配好 fallback 字体链。










