欧拉操作系统下离线安装字体的操作步骤

背景

某 Web 应用部署到欧拉操作系统后,应用中导出的 PDF 文件中文全部显示乱码,原因是字体缺失,但是目标系统上并没有联网,必须找到字体的离线安装包。

CSDN 上还有40个积分,下载了两个相关的资源后,目标系统上安装的时候,报错了 Fontconfig warning: "/etc/fonts/fonts.conf", line 86: unknown element "blank",安装出错了,积分也没了,咋搞哦?

本文记录这个问题的解决过程,顺便吐槽一下高的离谱的下载积分。

依赖包

下载积分还有点,下载了一个可用的包,主要有 6 个文件:

  1. fontconfig-2.10.95-11.amzn2.0.2.x86_64.rpm
  2. fontpackages-filesystem-1.44-8.amzn2.noarch.rpm
  3. libXfont-1.5.4-1.el7.x86_64.rpm
  4. libfontenc-1.1.3-3.amzn2.0.2.x86_64.rpm
  5. stix-fonts-1.1.0-5.amzn2.noarch.rpm
  6. xorg-x11-font-utils-7.5-20.amzn2.0.2.x86_64.rpm

找一个没有字体的 CentOS 系统测试没问题,但是到目标欧拉系统执行安装命令后,执行 fc-list :lang=zh ,报错 Fontconfig warning: "/etc/fonts/fonts.conf", line 86: unknown element "blank"。

这个错误怎么产生的呢?正常系统中这个 etc/fonts/fonts.conf 到 86 行确实就是 blank 元素的。搜到一篇文章,感觉有点用,就截了一下屏幕: 分析第一个命令是更新包,后面重新安装这几个包,Xvfb 这个跟字体没关系,感觉要解决这个问题,思路应该是找最新的包,重新安装。

下载最新包

网上找最新的字体包估计是不好找了,还是从在线安装入手,测试机器都是可以联网的,重新执行这 6 个包的安装命令,并用 downloadonly 工具下载到某目录下。

downloadonly 这个命令在已经安装的情况下不会有任何动作的,所以要下载 6 个包的最新版本,需要逐个执行下面的步骤:

  1. yum install yum-plugin-downloadonly
  2. yum list |grep xxx 逐个删除这些依赖包
  3. yum install --downloadonly --downloaddir=/root/rpm libXfont
  4. yum install --downloadonly --downloaddir=/root/rpm mkfontscale
  5. yum install --downloadonly --downloaddir=/root/rpm fontconfig
  6. yum install --downloadonly --downloaddir=/root/rpm libfontenc
  7. yum install --downloadonly --downloaddir=/root/rpm stix-fonts.noarch
  8. yum install --downloadonly --downloaddir=/root/rpm fontpackages-filesystem

得到最新的字体安装包,然后准备好一个包含字体文件的文件夹 fonts,放到当前目录下。编写安装脚本:

powershell 复制代码
#!/sh
basePath=$(cd `dirname $0`; pwd)
cd $basePath

mv fonts /usr/share
echo "start install font basePath $basePath"

rpm -ivh ./*.rpm --nodeps --force

cd /usr/share/fonts
mkfontscale
fc-list :lang=zh

重新安装

进入目标目录下,执行 sh install.sh 完成字体的安装操作,最新版本在欧拉系统下也能正确安装。找不到最新的资源,可以用本文这个方法逐个获取。

相关推荐
Linux-lucky10 小时前
45-Linux学习之旅之防火墙与WEB加固
linux·前端·网络·学习·ubuntu
禁默10 小时前
启元 Q1 二次开发实践:Ubuntu 部署与仿真验证,从 PrimeConsole 到 ROS 2 Humble + RViz
linux·运维·ubuntu
skywalk816311 小时前
把 去也网站 从 Ubuntu 搬到 FreeBSD:一次 Service Jail + nginx 的部署实录
linux·运维·nginx·ubuntu·freebsd
爱莉希雅&&&13 小时前
GitLab 完整学习笔记
linux·运维·服务器
风笙97813 小时前
[文件系统]文件系统挂载与卸载详解
linux
GeW13 小时前
新质生产力路线图解读:数据库性能优化与Linux调优专场
linux·数据库
陈希12315 小时前
Linux 服务器性能排查手册(2026):CPU、内存、磁盘IO、网络四大瓶颈定位
linux·服务器·网络
测试界的小码农18 小时前
【Linux 命令实战(03):文件创建、复制、移动与删除,掌握 touch、mkdir、cp、mv、rm】
linux·服务器·php
byte轻骑兵19 小时前
实战 1:修改 BlueZ 源码,添加自定义开机日志
linux·aiot·bluez·电脑蓝牙·嵌入式蓝牙
叼烟扛炮19 小时前
Linux 学习笔记(五十):网络层——IP 协议、子网划分与 NAT 魔法
linux·笔记·学习