ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

银河麒麟系统WPS字体安装全攻略:目录、缓存与权限排查指南

银河麒麟系统WPS字体安装全攻略:目录、缓存与权限排查指南 很多刚迁移到银河麒麟系统的朋友第一次在WPS里碰到“字体不对”这件事都会有点懵。系统自带的字体管理器里明明能看到某个字体双击也能预览但打开WPS Office字体下拉列表里死活找不到或者找到了选了之后没有任何变化。更头疼的是单位发文要求的仿宋_GB2312、方正小标宋这些公文字体拷到系统里装了一遍又一遍还是显示不出来。这篇内容就是把“麒麟系统 WPS Office 安装字体”这条链路彻底讲清楚包括字体该放哪、用什么命令装、装完WPS不认怎么办以及ARM架构和x86架构在操作上有没有区别。不管你之前有没有Linux基础照着做都能把字体装上。1. 为什么在麒麟系统上装个字体这么折腾先说结论银河麒麟系统本身对字体的管理是正常的问题几乎都出在“WPS Office用了一套自己的字体查找逻辑”上。普通Linux应用比如LibreOffice或者系统自带的文本编辑器装好字体之后调用系统字体服务fontconfig就能直接识别但WPS为了在Linux上尽量保持和Windows版本一致的体验它的字体枚举和渲染流程是独立的会走自己的一套初始化逻辑。这套逻辑有几个特点WPS第一次启动时会扫描系统的字体目录生成一份内部的字体缓存。这个缓存一旦生成后续再往系统里加字体WPS不会立刻感知到必须重启WPS甚至需要清掉缓存文件才能重新扫描。WPS对字体的识别不只看文件是否存在还会校验字体文件里的字体家族名family name和字体样式名style name。如果字体文件本身不规范比如从网上下载的某个改版字体家族名写错了系统能显示WPS却认不出来。麒麟V10的系统字体目录其实是标准的Linux布局分为系统级和用户级但很多人习惯像在Windows里一样把字体文件丢到“字体管理器”里就算装好了。这个动作在麒麟上只会让字体对GTK应用生效WPS可能压根没去读那个位置。所以我的建议是装字体之前先想清楚你要装给谁用。如果只是自己用优先装到用户目录如果是要给这台机器上的所有用户比如单位办公电脑用那就装到系统目录并且要处理好权限。后面这几个部分我会把两条路都走一遍。顺带提一下银河麒麟系统本身分成基于Debian的版本和部分基于CentOS的版本两者的底层包管理工具不同deb/rpm。文中大部分命令用的是Debian系如果是rpm系版本把dpkg换成rpm -ivh即可后面我也会专门讲怎么区分自己的系统是哪一类。2. 字体文件到底该放哪目录选择与权限设计2.1 系统级字体目录和用户级字体目录的区别银河麒麟系统的字体目录遵循Linux标准主要有下面几个位置目录类型适用范围是否推荐给WPS用/usr/share/fonts系统级所有用户推荐权限设置了就能全局生效/usr/local/share/fonts系统级所有用户推荐主要用于管理员手动放置~/.local/share/fonts用户级当前登录用户最推荐个人使用无需root权限~/.fonts用户级旧约定当前登录用户可用但已逐渐淘汰不建议再用/home/用户/.wps/第三方的字体路径WPS特有少见情况个别老版本WPS会读但不必依赖如果你是在自己的办公电脑上装字体最简单、最不会出问题的就是用用户级的~/.local/share/fonts。这套目录不需要sudo不需要考虑权限只要当前用户能读WPS就能用。单位的公共电脑需要所有账号都能看到字体就必须放/usr/share/fonts或者其他系统级目录不然张三装了李四还是看不到。2.2 权限问题是最隐蔽的坑很多人在系统级目录里建了一个文件夹存放字体命令也执行了fc-list也能查到但WPS就是找不到。我排查过多台机器最后发现是目录权限不对。Linux的字体加载要求目录和文件至少有读权限目录本身还要有执行权限x否则用户没法进入这个目录去读取字体文件。用ls -l看一下字体文件一般是-rw-r--r--644权限目录至少是drwxr-xr-x755权限。新建的目录有时默认权限是对的但如果是用sudo cp从Windows移动硬盘里拷过来的文件权限可能错乱变成-rw-rw-rw-或者干脆只有root能读。遇到这种情况在/usr/share/fonts里放完字体后顺手执行一遍sudo chmod -R 644 /usr/share/fonts/新字体目录/*.ttf sudo chmod -R 755 /usr/share/fonts/新字体目录/放用户目录的话基本不用管权限但有个别NAS挂载或者别的分区挂载到home下的情况也要留意。2.3 字体文件格式的兼容性差异这一节说说字体文件格式。常见的有TTF、TTC、OTF三种另有一些老的FON或者TYPE1格式基本可以忽略。WPS Office在麒麟系统上对TTF和TTC的兼容性最好日常办公字体基本也都是TTF/TTC。OTF字体要分情况大部分现代OTFCFF轮廓能用但有些特殊OTF文件在WPS里会出现“列表里有名字但显示不出来”或者干脆不在列表里。有一个很容易踩的坑是有些从Windows系统里拷出来的字体是TTC格式比如msyh.ttc微软雅黑、simsun.ttc宋体这种“集合包”文件里包含多个字体。Linux的fontconfig支持TTCWPS也支持但前提是文件路径里不能有中文和空格。如果你的字体文件名叫微软雅黑.ttcWPS可能识别不了改名成msyh.ttc再放进去就好很多。后面第4部分我会专门讲OTF相关的处理。3. 仿宋、黑体、宋体批量部署一套能直接抄的命令3.1 准备字体文件先把你需要的字体文件准备好。常见公文字体包括仿宋_GB2312楷体_GB2312黑体宋体SimSun方正小标宋简体注意从Windows拷字体的时候最好确认一下授权问题自己个人使用没什么单位的公共系统建议用有授权的字体避免版权风险。很多政务单位用的方正字体是有采购授权的这个不再展开。3.2 用户级安装最简单的方法如果只给自己用直接走用户目录# 如果目录不存在就创建 mkdir -p ~/.local/share/fonts # 把准备好的字体文件复制进去假设字体在U盘挂载路径/media/user/Fonts cp /media/user/Fonts/*.ttf ~/.local/share/fonts/ cp /media/user/Fonts/*.ttc ~/.local/share/fonts/ # 刷新系统字体缓存 fc-cache -fv # 确认字体已经被系统识别 fc-list :langzhfc-list :langzh是验证字体是否注册到系统的关键命令。执行后能看到一大堆中文字体名加文件路径说明已经成功。如果这一步通过了但WPS里没有请直接跳到第4部分查缓存。3.3 系统级批量安装用脚本一次搞定几十台办公电脑需要统一部署字体时再一台台执行上面那套命令就太累了。我一般会把所有字体打成一个包然后写个小脚本#!/bin/bash # 批量安装字体到系统目录适用于麒麟系统 FONT_DIR/usr/share/fonts/chinese if [ ! -d $FONT_DIR ]; then sudo mkdir -p $FONT_DIR fi # 拷贝所有字体文件 sudo cp -r /path/to/your/fonts/* $FONT_DIR/ # 修正权限 sudo chmod -R 644 $FONT_DIR/*.ttf sudo chmod -R 644 $FONT_DIR/*.ttc sudo chmod -R 755 $FONT_DIR # 刷新缓存 sudo fc-cache -fv把这脚本保存成install-fonts.sh执行bash install-fonts.sh即可。或使用麒麟自带的包管理器直接把字体打包成deb/rpm分发到各台机器上用dpkg -i fonts-chinese.deb安装这是最规范的方式适合量大、标准化的场景。3.4 常见问题Windows字体目录复制过来的字体为什么装完有些没生效从Windows的C:\Windows\Fonts里拷出来的字体有几个特点文件命名很乱有simfang.ttf、simhei.ttf也有msyh.ttc、msyhbd.ttc有些字体文件在Windows里是锁定状态拷出来是空的最典型的就是simsun.ttc需要先用Windows端的工具解锁复制某些字体名称在Linux下会显示为英文名比如“仿宋”显示为“FangSong”“楷体”显示为“KaiTi”这不是装错是字体内部注册名决定的所以验证的时候不要只按中文名找WPS里的字体列表会把常用的中文和英文名都列出来。单位要求“仿宋_GB2312”它在WPS里的名字就叫“仿宋_GB2312”但也有的版本会显示成“FangSong_GB2312”注意这两种写法。4. 装完字体、WPS里还是没有五个方向逐一排查这一步是全文的核心也是我被问得最多的场景。字装了fc-list也认了甚至LibreOffice里都能用了但WPS的字体下拉框里死活找不到。请不要急着重装WPS下面这几个方向挨个查基本都能解决。4.1 WPS自身的字体缓存没有刷新这是最常见的原因。WPS首次启动后会生成字体缓存文件一般缓存在用户目录下的WPS配置目录里# 查看一下WPS的配置目录 ls -la ~/.config/Kingsoft/不同版本可能略有差异但核心思路一样关掉所有WPS进程把这个目录下的FontCache、fontconfig、或者名字里带font的缓存文件删掉然后重新启动WPS。# 先关闭WPS killall wps # 删除字体缓存根据实际情况调整路径 rm -rf ~/.config/Kingsoft/office.conf.1.fontCache rm -rf ~/.cache/Kingsoft/不同版本的缓存位置甚至可能在/tmp下但用户目录下清理一遍基本够了。启动WPS后它发现缓存没了会重新扫描系统字体这时新装的中文字体一般就出来了。4.2 字体文件损坏从网上下载的字体不完整排查中发现过好几次一个字体文件在Windows下用着正常拷到Linux上WPS就认不出来。用fc-list查有这个名字但WPS加载的时候直接跳过。这种大概率是字体文件在传输过程中损坏或者本身是经过修改的精简版字体、缺了关键的渲染表。验证方式很简单在终端里用fontconfig自带的工具检查fc-scan /path/to/your/font.ttf看输出的关键字段正常字体应该能获取到family、style、fullname这些信息如果输出乱码或者全家名字段缺失基本可以断定文件有问题。换一个官网或正规字体站点下载的原始文件重新装一遍。另外某些“精简版”字体会去掉部分字形或CFF表WPS渲染时会拒绝使用这属于字体文件本身和WPS引擎不兼容换一个完整版即可。4.3 WPS的字体替换机制干扰WPS里有一个“字体替换”机制目的是当文档里指定的字体不存在时用相近的字体替代显示。这个机制本来是好事但在麒麟系统上有时好过头了——明明已经装了某个字体WPS却因为它内置的替换表默认用另一个字体代替了。在WPS文字程序的选项设置里找到字体替换相关的配置看看有没有被替换的条目。如果发现自己装的字体被替换成了别的字体删掉替换规则或者手动改成目标字体存盘重启就好。4.4 权限或SELinux拦截银河麒麟系统有些版本开启了强制访问控制虽然不太常见但由于字体目录设在中文字体目录里路径或文件的安全上下文特殊也可能导致WPS进程无法读取。如果以上方法都试了不行可以执行sudo restorecon -Rv /usr/share/fonts/这条命令会恢复目录的默认安全上下文解决因为SELinux规则导致的读取异常。实际上Kylin的强制访问控制模块有时候会限制应用访问非标准路径下的字体文件所以建议大家装字体走标准路径。4.5 WPS的“消息筛选器显示应用程序正在使用中”提示是报警告有一部分用户在使用WPS时会弹出一条“消息筛选器显示应用程序正在使用中”的警告。这个问题和字体其实没有直接关系但遇到弹窗时WPS会卡住、菜单无响应导致字体设置点不了。原因是系统桌面与WPS的消息机制偶发冲突多见于麒麟系统升级后或使用远程桌面时。解决办法很简单关掉WPS删除userdata的临时锁文件重新启动。路径一般在~/.config/Kingsoft/下的某个lock文件。删掉后一般能解决。5. ARM架构和x86架构操作方式基本一致但要注意这几件事5.1 银河麒麟系统同时有x86版和ARM版这可能是很多刚接触国产系统的人忽略的一点。银河麒麟V10同时有x86架构版和ARM架构版飞腾、鲲鹏等平台还有MIPS、LoongArch等版本。字体安装的操作流程在这几个架构上差别不大字体文件也是通用的因此不需要为ARM找“ARM版字体”。但是WPS Office在不同架构上对应的安装包不同官网下载时要选对架构的版本。ARM平台的WPS和x86平台的WPS可能在字体渲染引擎上略有差异个别字体在x86上正常、在ARM上显示模糊这通常和字体的hinting微调表有关。5.2 分辨你的系统是Debian系还是RPM系安装字体时区分deb/rpm很重要因为底层包管理命令完全不一样。执行cat /etc/os-release看ID字段。如果能看到debian字样就用apt、dpkg那一套如果是centos或者kylin的特殊标识可能是rpm系。银河麒麟V10一般来说主流是Debian系但有一个分支确实基于CentOS。判断方法更直接输入dpkg -l如果返回正常就是deb系如果提示命令不存在基本就是rpm系。deb系sudo apt install ./fonts-chinese.debrpm系sudo rpm -ivh fonts-chinese.rpm字体文件的安装逻辑和架构无关重点是找到匹配的安装包格式。5.3 ARM版WPS的一个常见字体问题在飞腾或鲲鹏平台上我遇到过WPS安装后默认显示的“等线”字体效果很差、字体重影的情况。操作系统里已经装了“等线”字体WPS中却没有找到的情况经常是因为“等线”字体是Windows 10之后系统自带的字体用户在旧电脑上复制时拿到的可能不是完整TTC集合缺了Deng.ttf或者Dengb.ttf这些具体字重文件WPS中只会出现一个“DengXian Regular”而正文默认请求的是“DengXian”。解决办法是把微软雅黑或者等线的几个字重的文件都收集齐统一放到字体目录再清缓存重启WPS。ARM版本对字体文件的加载速度比x86稍慢刚启动WPS时字体列表可能要转一两秒才出来属于正常情况。6. 验证字体有没有真正生效别只看系统预览6.1 系统层面的验证方法前面已经提过最直接的是fc-list命令# 查看所有中文字体 fc-list :langzh # 精确查找某个字体 fc-list | grep -i fangsong fc-list | grep -i 仿宋有输出说明字体文件已经正常注册到fontconfig。也可以看字体详细信息fc-match 仿宋_GB2312输出里如果显示你期望的字体文件名说明系统已经把它设为该名称的默认匹配字体。如果fc-match返回的是别的字体比如返回了“Noto Sans CJK”或者“WenQuanYi”说明系统认为你没有这个字体或优先级较低。6.2 WPS层面的验证方法步骤是打开WPS文字新建一个空白文档直接鼠标单击工具栏的字体下拉框输入你要找的字体名。这里要注意WPS的字体下拉框支持模糊搜索输入“仿宋”或者“FangSong”应该能看到匹配项。更可靠的验证方式是在文档里输入一段中文选中手动设置字体为你要验证的字体。如果文字立刻变了字形说明字体生效。如果下拉框里有但它被打了括号或者显示为灰色说明字体文件不完整或者不支持当前字符集需要换字体文件。6.3 删除字体的正确方式装了字体之后后悔了或者新字体和旧字体冲突该删怎么删两种方法如果是用户目录的字体直接rm掉文件然后执行fc-cache -fv。如果是系统目录的字体需要sudo删除。rm ~/.local/share/fonts/不想要的字体.ttf fc-cache -fv删完之后同样要重启WPS并清掉WPS的字体缓存。所以“先清缓存再去删文件”是一个避免误判的好习惯先把字体缓存目录删掉重启WPS确认问题确实解决了再回头清理不用的字体文件。这样可以避免“删错了又白折腾”的情况。提示银河麒麟V10系统自带的“字体管理器”可以在图形界面里添加/删除字体文件但做完之后最好还是手动执行一次fc-cache -fv刷新缓存否则部分应用可能仍然无法立即感知。7. 关于密钥环弹窗和系统版本差异的补充说明7.1 银河麒麟系统取消密钥环有些用户在启动WPS时遇到过“解锁密钥环”或者“创建密钥环”的弹窗要求输入密码。密钥环keyring在Linux桌面上用来保存应用密码、SSH密钥等敏感信息WPS在个别环境下首次启动会尝试连接系统的密钥环服务弹窗就出现了。如果不想每次启动都输密码可以在图形界面的“钥匙”应用里找到默认密钥环清空密码设置成自动解锁。不过需要注意的是这等于把本机存储的密钥安全等级降低了单位办公电脑建议保持默认个人电脑图方便可以取消。7.2 不同版本WPS对字体行为的差异麒麟系统上能装的WPS版本比较多官网下的个人版、自带应用商店版本、政府专版、专业版等。不同版本对字体的默认目录支持存在细小差异。个人版和专业版在字体处理上基本一致政府专版可能会内置一些公文字体版本本身没问题。如果是从应用商店装的WPS安装位置可能在/opt/apps目录下如果官网下的个人版在/opt/kingsoft下。字体安装操作和方法一致不用特意区分。7.3 为什么有些人在“word安装字体还是不行”的情况下用了LibreOffice却正常遇到“WPS看不到字体LibreOffice却能看到”的情况别怀疑字体坏了。WPS和LibreOffice的字体栈不同。LibreOffice直接使用fontconfig的匹配结果能做到“系统有什么我就用什么”WPS用的是自己裁剪过的字体枚举逻辑并且对字体名称做了内部映射。这个特点使得个别非标准命名的字体在LibreOffice正常在WPS里不显示。最优解法是找一个标准命名版本的字体文件替换而不是强行修改字体缓存。8. 经验总结批量部署字体时我的实际工作流这里分享一套我现在处理银河麒麟系统WPS字体问题的标准流程避免临时东一榔头西一棒子先从单位和业务场景里收集需要安装的字体清单尤其注意仿宋_GB2312、楷体_GB2312这类公文字体。用一台“干净”的麒麟测试机先走用户级安装验证字体文件和WPS的兼容性。只需要半小时就能发现哪些字体有问题、哪些字体需要换版本。字体全部验证通过后统一部署到/usr/share/fonts/chinese修好权限执行fc-cache -fv。清掉WPS的字体缓存重启WPS逐个验证字体下拉列表。生成批量部署脚本通过系统的软件包管理工具下发到其他机器。通过这样一套流程基本能避免大多数“装不上”“显示不出来”的问题。目前我在多台麒麟机器上部署过字体踩过的坑集中在字体缓存未清理、权限不对、文件名中文乱码这三类。解决了这三件事剩下的就是单纯的体力活把字体文件复制到位即可。另外提醒一件事单位批量部署时字体文件的版权一定确认清楚。仿宋、黑体这些系统自带字体一般没问题但方正小标宋、方正舒体这类商业字体要特别留意授权。“能用”和“能用得合法”是两回事部署前记得确认。
返回列表