起因:WPS office 11.1版本文档部分字体加粗后显示黑块
因为笔者使用的笔记本电脑是清华同方L860-T1,使用的是龙芯3A4000处理器,安装的是之前文章里提到的debian unstable.近半年来发现libreoffice在unstable的发行里,总是无法安装最新的libreoffice-common等4个包,致使一直处于非最新版本状态,就只好安装了wps官网下载的wps-office_11.1.0.11719_mips64el.deb,使用起来体验还不错,就是发现像仿宋_GB2312之类的字体,一旦加粗就变成里黑黑的一坨。只有将页面缩放到300%后才能正常显示,经过网上搜索后,发现一篇解决方法的文章Linux WPS 11.1.0.11704楷体、仿宋字体加粗后显示成一团黑,发现我的问题和他的一模一样,评论区里看到具体的解决方法:
在Ubuntu上搜索libfreetype库发现系统/usr/lib/x86_64-linux-gnu/libfreetype.so.6使用的库版本为ibfreetype.so.6.20.0。
而在snap目录中发现了其它版本的库,而wps会优先引用自己安装目录中的库,于是做了下尝试,使用snap目录中libfreetype.so.6.15.0版本和libfreetype.so.6.18.1分别进行了尝试,最终发现libfreetype.so.6.18.1可用。WPS终于恢复加粗字体的显示啦!
sudo cp /snap/gnome-42-2204/141/usr/lib/x86_64-linux-gnu/libfreetype.so.6.18.1 /opt/kingsoft/wps-office/office6/libfreetype.so.6
因为笔者的本本是mips64el架构的处理器,搜索里一番发现在/usr/lib/mips64el-linux-gnuabi64目录下有个libfreetype.so.6.20.1
然后我就尝试了如下命令:
sudo cp '/lib/mips64el-linux-gnuabi64/libfreetype.so.6.20.1' '/opt/kingsoft/wps-office/office6/libfreetype.so.6'
发现不管用,而且系统还报告他们是同一个文件,我没在意,于是我又想把这个目录下的其他两个freetype库文件也给替换里试试,我先把`libfreetype.so.6.6.2`文件压缩备份到里用户目录中,然后分别替换了以下两个文件:
sudo cp '/lib/mips64el-linux-gnuabi64/libfreetype.so.6.20.1' '/opt/kingsoft/wps-office/office6/libfreetype.so.6.6.2'
sudo cp '/lib/mips64el-linux-gnuabi64/libfreetype.so.6.20.1' '/opt/kingsoft/wps-office/office6/libfreetype.so'
发现还是不管用,于是我就犯了一个巨大的错误,我没有去看这几个库文件的文件链接关系,直接把刚才压缩备份的libfreetype.so.6.6.2
拷回里wps目录下,并替换了libfreetype.so.6.6.2
libfreetype.so
libfreetype.so.6
三个文件。然后发现wps打不开了,我就尝试卸载wps重新安装,结果一输命令卸载wps,终端就闪退了。终端也打不开了,我想可能是系统有问题,就重启下兴许能解决,结果重启后进不去系统了。屏幕每隔3秒左右就闪烁一下,连Ctrl + Alt + F2
组合键进入tty2都进不去。毁了!!也蒙了!!不知道到底出了什么问题??!!然后接下来就是痛苦的排错步骤了。
痛苦的排错过程
1.磁盘分区文件问题?
首先我怀疑是磁盘文件出了问题,然后用u盘和ventoy加载UOS的安装盘后,Ctrl + Alt + F2
组合键进入tty2,后用fsck.ext4 -C 0 /dev/nvme0n1p3
命令把几个分区都检查了一遍。重启,不行。
2./etc/fstab问题?
接下来尝试recovery mode,系统提示
can not open access to console the root account is locked
以为是问题线索,搜索出来一篇文章说可能是/etc/fstab
文件的问题,里面有移动存储的记录,我再次u盘启动,挂载分区后,发现fstab文件没有问题,重启,不行。
3.显卡驱动的问题?
会不会是显卡驱动出了问题,导致进不去图形界面?我再次进入uos安装盘的tty2,准备chroot后看看apt的安装记录,看是否是更新了显卡驱动导致的。
先连接网络
sudo -i
nmcli dev wifi connect WIFI连接点名称 password WIFI密码
挂载必要位置后切换chroot
mkdir /mnt/deb
mount /dev/nvme0n1p3 /mnt/deb
mount /dev/nvme0n1p4 /mnt/deb/home
mount /dev/nvme0n1p2 /mnt/deb/boot
mkdir -p /mnt/deb/boot/efi
mount /dev/nvme0n1p1 /mnt/deb/boot/efi
mount --bind /dev /mnt/deb/dev
mount -t devpts devpts /mnt/deb/dev/pts
mount -t proc proc /mnt/deb/proc
mount -t sysfs sysfs /mnt/deb/sys
mount -t tmpfs tmpfs /mnt/deb/tmp
chroot /mnt/deb /bin/bash
进入系统后,apt update
命令发现无法解析服务器IP。又是一顿搜索,发现是chroot后,挂载的系统里/etc/resolv.conf
文件不会自动更新,需要用nano /etc/resolv.conf
命令修改下内容
nameserver 路由器IP
再Ctrl + O
保存,Ctrl + X
关闭即可。
查看apt更新日志
less /var/log/apt/history.log
仔细翻找后,发现真的最近更新了mesa驱动,然后就用apt install <package-name>=<version>
命令逐一装回了旧版本。重启,还是不行。
4.lightdm的问题?
继续上述步骤进入chroot环境后,查看lightdm的日志,发现每3秒重启一次,期间还报了plymouth的错误。搜了搜,又继续以下尝试:
apt remove --purge lightdm plymouth
重启后不闪屏了,可以正常进入tty模式了!好的,也算有进展。重新apt命令安装lightdm和plymouth,重启,还是不行。
再卸载lightdm和plymouth,然后又尝试卸载了task-mate-desktop,task-xfce-desktop,用如下命令清理了所有的不需要包和残余配置文件
sudo apt autoremove --purge
sudo apt remove --purge $(dpkg -l | grep "\^rc" | awk '{print $2}')
重新安装task-mate-desktop重启,还是不行。
5.换个桌面环境?
进入chroot,卸载lightdm后,尝试安装了task-kde-desktop。重启,这次终于不闪屏了,但是进不去登陆界面,黑屏里只有一个鼠标在。可以用组合键进入tty2。
继续搜索这个现象,得到如下排错提示:
systemctl --user restart plasma-plasmashell.service
systemctl --user status plasma-plasmashell.service
journalctl --user -xeu plasma-plasmashell.service
最后,终于在journalctl --user -xeu plasma-plasmashell.service
这个命令反馈的错误FT_Get_Var_Blend_Coordinates
关键字,提示说是freetype库太旧了。这时我才恍然大悟,原来就是我误操作的freetype库导致的问题啊,于是
sudo apt reinstall libfreetype6
重新安装了freetype库,卸载kde环境,重新安装mate环境,重启,终于进桌面啦!!!
还有小毛病??
桌面是进去了,但是又开始报面板小组件异常,是否重新加载的问题。搜了搜,有人新建用户后,拷贝配置文件可以解决,新建用户,注销登陆,还是不行。继续搜,终于有个大佬说是缺少了dconf-editor包导致的,好吧,到处卸载包,卸多了!!!下面的命令安装后,果然好了!!
sudo apt install dconf-editor
原因复盘
实际上我没有意识到,覆盖`libfreetype.so.6`文件就等于覆盖/usr/lib/mips64el-linux-gnuabi64/libfreetype.so.6.20.1
文件,直接导致了系统freetype库版本过低,出现了以上问题。
lrwxrwxrwx 1 xmanweb xmanweb 20 2月29日 11:10 libfreetype.so -> libfreetype.so.6.6.2
lrwxrwxrwx 1 root root 54 5月27日 18:04 libfreetype.so.6 -> /usr/lib/mips64el-linux-gnuabi64/libfreetype.so.6.20.1
-rwxr-xr-x 1 xmanweb xmanweb 2668421 2月29日 11:10 libfreetype.so.6.6.2
以后可不敢乱替换文件了!!!!
那WPS的问题还没解决啊!?
我想了想从Kylin Repository Content里下载带sn的版本更高的wps试试,下载了wps-office_11.8.2.1132.AK.preload.sw.withsn_mips64el.deb,安装上后,发现即使WPS目录里的库文件还是老样子,但是字体加粗黑块的问题居然解决了!?可是这个版本只有180天的试用期啊。继续搜索,在吾爱破解论坛上找了序列号,成功激活!!哈哈
694BF-YUDBG-EAR69-BPRGB-ATQXH