news 2026/9/25 4:28:33

树莓派4B ARM架构安装WPS全攻略:从移植包到字体修复

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
树莓派4B ARM架构安装WPS全攻略:从移植包到字体修复

1. 为什么要在树莓派4B上折腾WPS

树莓派4B这块板子,4核Cortex-A72、最高8GB内存,跑个桌面环境日常写写文档完全够用。但真把它当轻办公主机使,绕不开一个坎:办公套件选谁。LibreOffice能用,可国内环境下大量文档是.docx和.wps格式,排版兼容性、字体渲染、表格样式这些细节,LibreOffice打开经常跑版。WPS Office for Linux 官方只提供 x86_64 的 deb 包,树莓派是 ARM 架构(aarch64),官方渠道根本没有对应版本。这就是标题里“ARM架构下WPS安装”这件事的核心矛盾——架构不匹配。

我前后在树莓派4B上装过 Ubuntu 20.04、Ubuntu 22.04、以及树莓派官方的 Raspberry Pi OS(64位),踩过的坑从“装完打不开”到“打开全是方块字”再到“菜单栏字体糊成一团”,基本把能遇到的都遇了一遍。这篇就把整套流程拆开讲清楚:怎么在 ARM 架构上把 WPS 跑起来,装完之后字体乱码怎么修,以及那些官方文档里绝对不会写的细节。

适合谁看:手里有树莓派4B、想拿它当轻办公终端的人;在 ARM 开发板上折腾桌面应用、被架构问题卡住的开发者;以及单纯想搞清楚 Linux 字体配置逻辑的折腾党。不需要你有多深的 Linux 功底,但基本的终端操作、apt、dpkg这些得会。

先说结论,省得你往下翻半天:树莓派4B上装WPS,走的是社区维护的 ARM64 移植包路线,装完必须手动补中文字体并重建字体缓存,否则界面和文档里的中文全是方框。下面一步步来。

2. 装之前的准备工作与方案选型

2.1 系统选择:为什么我更推荐 Ubuntu 22.04

树莓派4B能跑的系统不少,Raspberry Pi OS(64位)、Ubuntu Server/Desktop 20.04、22.04、甚至 24.04 都行。但装 WPS 这件事上,系统选择直接影响成功率。

我的实测排序是:Ubuntu 22.04 Desktop (arm64) > Ubuntu 20.04 > Raspberry Pi OS 64位。原因有几个。Ubuntu 22.04 的 glibc 版本(2.35)和依赖库版本比较新,社区移植的 WPS 包大多是基于这个版本编译的,依赖冲突最少。Ubuntu 20.04 的 glibc 是 2.31,部分新版移植包会报GLIBC_2.34 not found之类的错,得降级用旧包。Raspberry Pi OS 用的是 Debian 系,包管理虽然一样,但它的库版本和 Ubuntu 有差异,字体配置路径也略有不同,容易出幺蛾子。

如果你还没装系统,直接上 Ubuntu 22.04 Desktop arm64 镜像,用 Raspberry Pi Imager 写卡就行。装系统时记得在 Imager 的高级选项里提前配好 WiFi、SSH 和用户名,省得接显示器键盘折腾。

提示:树莓派4B的 2GB 内存版本跑 Ubuntu Desktop 会比较吃力,WPS 打开大文档容易卡。建议至少 4GB,8GB 最舒服。如果只有 2GB,考虑用 Ubuntu Server + 轻量桌面(XFCE),或者干脆别装桌面版 WPS,用网页版替代。

2.2 依赖环境检查:先看架构和库版本

装之前先确认几件事,避免装到一半发现方向错了。

打开终端,先看架构:

uname -m

树莓派4B 64位系统应该输出aarch64。如果输出armv7l,说明你装的是32位系统,那 WPS 基本没戏——社区移植包几乎都是 arm64 的,32位 ARM 的 WPS 移植极其罕见。这种情况要么重装64位系统,要么放弃。

再看系统版本和 glibc:

lsb_release -a ldd --version | head -1

Ubuntu 22.04 对应 glibc 2.35,20.04 对应 2.31。记下这个版本号,后面选移植包时要用。

然后确认几个关键依赖在不在:

dpkg -l | grep -E "libc6|libfreetype6|libx11-6|libgl1|libglib2.0-0"

这些是 WPS 运行的基础库。Ubuntu Desktop 默认都装了,Server 版可能需要手动补。缺的话:

sudo apt update sudo apt install -y libc6 libfreetype6 libx11-6 libgl1 libglib2.0-0 libsm6 libice6 libxrender1 libxext6 libxfixes3 libxi6 libxtst6 libxrandr2 libxcursor1 libgtk-3-0

2.3 方案对比:三条路各自的坑

在 ARM 上跑 WPS,实际可行的路线就三条,我把它们摆出来对比一下。

方案原理优点缺点推荐度
社区 ARM64 移植包有人把 x86 的 WPS 重新编译/打包成 arm64原生运行,性能好,体验接近官方版本旧,更新慢,来源需甄别高
Box86/Box64 转译用转译层跑 x86 版 WPS能用最新官方版性能损耗大,稳定性差,配置复杂低
网页版 WPS浏览器里用零安装,跨架构依赖网络,功能受限,大文档卡中

社区移植包是主流选择。它的本质是有人拿到了 WPS 的源码或二进制,针对 arm64 重新构建,打包成 deb。这类包在 GitHub 和一些技术论坛上能找到,版本通常停留在 2019 或 2021 版。别嫌旧,办公够用。

Box86/Box64 转译这条路我试过,能跑起来,但打开一个 10 页的文档要等十几秒,滚动还掉帧,输入法偶尔失灵。树莓派4B的 CPU 性能撑不起这种转译开销,不推荐。

网页版适合应急,比如临时改个文档。但你要处理复杂表格、宏、或者离线办公,网页版顶不住。

所以下面我按社区 ARM64 移植包这条路线展开。

3. 核心实操:ARM64 版 WPS 的安装全过程

3.1 获取移植包与校验

移植包一般以.deb形式发布,文件名类似wps-office_11.1.0.xxxx_arm64.deb。来源上,GitHub 上搜 “wps office arm64 deb” 能找到几个维护仓库,另外一些国内的 ARM 开发板社区也有分享。

拿到包之后,先校验再安装,这一步别省。原因很简单:来源不明的 deb 包可能带恶意脚本,安装时以 root 权限执行,风险不小。

# 看包的架构信息 dpkg-deb -I wps-office_xxx_arm64.deb | grep Architecture # 应该输出 arm64 # 看包里的安装脚本,重点看 postinst 和 preinst dpkg-deb -e wps-office_xxx_arm64.deb ./control_dir cat ./control_dir/postinst

postinst是安装后执行的脚本,正常的话就是建软链接、更新桌面数据库、刷新字体缓存这些。如果里面出现curl下载外部文件、wget拉脚本执行、或者往/etc写奇怪配置,直接删包别装。

注意:校验这一步花不了两分钟,但能挡掉大部分风险。我见过有人图省事直接dpkg -i,结果装完系统多了个开机自启的挖矿进程。别赌。

3.2 安装依赖与正式安装

依赖前面 2.2 节已经列了,这里再补几个 WPS 特有的:

sudo apt install -y libxdamage1 libxcomposite1 libxkbcommon0 libnspr4 libnss3 libcups2 libdbus-1-3 libatk1.0-0 libatk-bridge2.0-0 libpangocairo-1.0-0 libpango-1.0-0 libcairo2 libasound2

这些是图形界面、打印、输入法、音频相关的库。缺了不一定装不上,但运行时会崩。

正式安装:

sudo dpkg -i wps-office_xxx_arm64.deb

dpkg装完大概率会报依赖错误,这是正常的,因为 deb 包声明的依赖可能和你的系统对不上。接着跑:

sudo apt install -f

让apt自动补齐缺失的依赖。这一步会联网下载,确保网络通畅。

装完之后验证一下:

which wps which wpp which et

wps是文字,wpp是演示,et是表格。三个都能找到路径,说明装上了。

3.3 首次启动与常见报错处理

第一次启动别直接点图标,从终端跑,这样报错能直接看到:

wps

常见的几个报错和处理方式:

报错一:error while loading shared libraries: libXXX.so.X: cannot open shared object file

缺库。把libXXX.so.X这个库名记下来,用apt-file或直接搜:

sudo apt install apt-file sudo apt-file update apt-file search libXXX.so.X

找到对应的包名装上即可。

报错二:GLIBC_2.34 not found

你的系统 glibc 版本低于移植包要求。Ubuntu 20.04 上装新版移植包容易遇到。解决办法是换一个针对 glibc 2.31 编译的旧版移植包,或者升级系统到 22.04。

报错三:启动后闪退,终端无输出

大概率是图形环境问题。试试加参数启动:

wps --no-sandbox

或者检查DISPLAY环境变量是否设置正确。SSH 远程启动的话,需要 X11 转发。

报错四:界面能出来,但菜单栏一片空白

字体问题,下一章专门讲。

4. 字体修复:从方块字到正常显示

4.1 为什么 ARM 版 WPS 字体问题特别严重

字体乱码这事,x86 版 WPS 也会遇到,但 ARM 移植版更严重。原因有两层。

第一层是字体缺失。WPS 默认依赖一批中文字体,比如“宋体”“黑体”“仿宋”“楷体”,这些在 Windows 上是系统自带的,Linux 上默认没有。x86 版 WPS 的 deb 包会捆绑一部分字体,但 ARM 移植包为了减小体积,经常把字体剥离了,导致装完就是一堆方框。

第二层是字体配置路径差异。Linux 的字体配置由 fontconfig 管理,配置文件在/etc/fonts/和~/.config/fontconfig/。ARM 发行版的 fontconfig 默认配置和 x86 版有细微差别,比如字体缓存目录、优先级顺序。WPS 内部又有一套自己的字体映射逻辑,两套东西对不上,就会出现“明明装了字体但 WPS 不认”的情况。

理解这两层,修复思路就清楚了:先补字体文件,再配 fontconfig 映射,最后重建缓存。

4.2 补齐中文字体文件

最直接的办法是从 Windows 系统拷贝字体。需要的核心字体:

  • simsun.ttc(宋体)
  • simhei.ttf(黑体)
  • simkai.ttf(楷体)
  • simfang.ttf(仿宋)
  • msyh.ttc(微软雅黑)
  • msyhbd.ttc(微软雅黑粗体)

这些文件在 Windows 的C:\Windows\Fonts\目录下。拷贝到树莓派上,放到/usr/share/fonts/truetype/winfonts/目录:

sudo mkdir -p /usr/share/fonts/truetype/winfonts sudo cp /path/to/fonts/*.tt[cf] /usr/share/fonts/truetype/winfonts/ sudo chmod 644 /usr/share/fonts/truetype/winfonts/*

如果手头没有 Windows 机器,也可以用开源字体替代。文泉驿系列、思源系列都是不错的选择:

sudo apt install -y fonts-wqy-zenhei fonts-wqy-microhei fonts-noto-cjk

fonts-noto-cjk是 Google 和 Adobe 合作的开源中文字体,覆盖率高,字形也不错。装完之后 WPS 里把默认字体映射到 Noto Sans CJK 也能用,就是和 Windows 文档的排版会有细微差异。

提示:从 Windows 拷贝字体涉及版权问题,个人使用一般没人管,但别用于商业分发。开源字体没这个顾虑,长期用建议逐步迁移到思源或 Noto。

4.3 fontconfig 映射配置

光有字体文件还不够,WPS 里文档指定的“宋体”得能映射到实际存在的字体上。这就需要写 fontconfig 规则。

在/etc/fonts/local.conf里加映射:

<?xml version="1.0"?> <!DOCTYPE fontconfig SYSTEM "fonts.dtd"> <fontconfig> <match target="pattern"> <test name="family"><string>SimSun</string></test> <edit name="family" mode="assign" binding="strong"> <string>Noto Serif CJK SC</string> </edit> </match> <match target="pattern"> <test name="family"><string>宋体</string></test> <edit name="family" mode="assign" binding="strong"> <string>Noto Serif CJK SC</string> </edit> </match> <match target="pattern"> <test name="family"><string>SimHei</string></test> <edit name="family" mode="assign" binding="strong"> <string>Noto Sans CJK SC</string> </edit> </match> <match target="pattern"> <test name="family"><string>黑体</string></test> <edit name="family" mode="assign" binding="strong"> <string>Noto Sans CJK SC</string> </edit> </match> </fontconfig>

这段配置的意思是:当程序请求“SimSun”或“宋体”时,fontconfig 自动把它替换成“Noto Serif CJK SC”。binding="strong"表示强制替换,优先级最高。

如果你装了 Windows 字体,映射目标改成SimSun本身就行,或者干脆不写映射,让 fontconfig 自己找。

4.4 重建字体缓存并验证

配置写完,重建缓存:

sudo fc-cache -fv

-f强制刷新,-v显示详细过程。跑完会看到扫描了多少字体目录、缓存了多少字体。

验证字体是否被识别:

fc-list | grep -i "noto.*cjk" fc-list :lang=zh | head -20

第一条看 Noto CJK 在不在,第二条列出所有支持中文的字体。如果列表是空的,说明字体没装对或者缓存没建好。

再验证映射规则:

fc-match "宋体" fc-match "SimSun"

正常应该输出NotoSerifCJK-Regular.ttc: "Noto Serif CJK SC"之类的结果。如果输出的是DejaVuSans.ttf这种不含中文的字体,说明映射没生效,检查local.conf的语法和路径。

全部搞定后重启 WPS,中文应该就正常了。

5. 常见问题排查与实操避坑

5.1 问题速查表

把我在树莓派4B上遇到过的典型问题整理成表,方便对照排查。

现象可能原因排查命令解决方式
装完找不到 wps 命令安装未完成或路径未加入dpkg -L wps-office | grep bin重新dpkg -i并apt install -f
启动闪退无提示图形库缺失或 DISPLAY 未设echo $DISPLAY补装 libgtk-3-0 等,检查 X11
界面中文全是方块中文字体缺失fc-list :lang=zh装 Noto CJK 或拷贝 Windows 字体
文档中文正常但菜单乱码WPS 内置字体映射问题查看~/.config/Kingsoft/配 fontconfig 映射,重建缓存
打开大文档卡死内存不足或交换分区小free -h加 swap,或换 8GB 版树莓派
输入法无法输入中文fcitx/ibus 未配置im-config -l装 fcitx5 + 中文输入法引擎
打印乱码CUPS 字体路径问题lpstat -t配置 CUPS 使用系统字体
保存后排版跑版字体替换导致度量差异对比原文档尽量用相同字体,或接受差异

5.2 输入法配置这个隐藏坑

WPS 装好了、字体也修了,结果发现中文打不进去——这是很多人卡住的下一步。树莓派 Ubuntu 默认可能没装中文输入法框架。

装 fcitx5 和拼音引擎:

sudo apt install -y fcitx5 fcitx5-chinese-addons fcitx5-frontend-gtk3 fcitx5-frontend-qt5

然后配置环境变量,编辑~/.pam_environment或/etc/environment:

GTK_IM_MODULE=fcitx QT_IM_MODULE=fcitx XMODIFIERS=@im=fcitx

注销重登,fcitx5 应该就起来了。托盘里能看到图标,Ctrl+Space切换中英文。

WPS 是 Qt 应用,所以QT_IM_MODULE=fcitx这条特别关键。少了它,WPS 里就是打不出中文。

5.3 性能调优的几个实操心得

树莓派4B性能有限,WPS 跑起来想流畅,有几个地方可以调。

关掉动画和特效。WPS 设置里找“皮肤和外观”,把动画效果关掉。Ubuntu 桌面本身的动画也建议关,用 GNOME Tweaks 把窗口动画调成最简。

加大 swap。4GB 内存的树莓派,开 WPS 加浏览器容易爆内存。加个 2GB 的 swap 文件:

sudo fallocate -l 2G /swapfile sudo chmod 600 /swapfile sudo mkswap /swapfile sudo swapon /swapfile echo '/swapfile none swap sw 0 0' | sudo tee -a /etc/fstab

用 zram 代替传统 swap。zram 在内存里做压缩交换,比磁盘 swap 快得多,对树莓派这种 SD 卡设备尤其友好:

sudo apt install -y zram-tools

装完默认就启用了,swapon --show能看到 zram 设备。

超频。树莓派4B 可以超到 2.0GHz,编辑/boot/firmware/config.txt(Ubuntu 22.04 路径)或/boot/config.txt(旧版):

over_voltage=6 arm_freq=2000

超频有风险,散热得跟上。没装风扇或散热片的话别超,会降频反而更慢。

注意:超频导致的稳定性问题(随机死机、文件系统损坏)不在保修范围。SD 卡上的系统尤其怕突然断电,超频前先备份重要数据。

5.4 版本选择与更新策略

社区移植包版本更新慢,这是事实。我的建议是:能用就别乱升。办公软件稳定压倒一切,新版本带来的新功能在树莓派上意义不大,反而可能引入新的依赖问题。

如果确实需要新版本,先在一个独立环境里测试,确认没问题再替换生产环境。测试方法:把新 deb 装到另一张 SD 卡上,或者用 Docker 容器模拟(虽然 WPS 在容器里跑图形界面比较麻烦)。

另外,WPS 会提示升级,别点。ARM 版没有官方升级通道,点了要么失败,要么把现有版本搞坏。

6. 这套方案的实际体验与边界

我在树莓派4B 8GB 版 + Ubuntu 22.04 上跑了大概三个月,日常处理文档、表格、偶尔做点简单演示,整体可用。打开 20 页以内的文档基本秒开,50 页以上的会卡顿几秒,复杂表格滚动有轻微掉帧。输入法配好之后中文输入流畅,字体显示正常,和 Windows 上的排版差异在可接受范围内。

但它有明确的边界。别指望它替代主力办公机。宏、VBA、复杂图表、大文档协作这些场景,树莓派4B 的性能和 ARM 版 WPS 的兼容性都撑不住。它适合的是:轻量文档处理、应急修改、学习 Linux 桌面环境、以及作为备用终端。

最后分享一个我踩过的坑:有次系统更新后 WPS 突然打不开了,排查半天发现是libfreetype6被升级到了不兼容的版本。解决办法是锁定版本:

sudo apt-mark hold libfreetype6

apt-mark hold让这个包不再自动升级。类似的,libc6、libglib2.0-0这些核心库如果升级后出问题,也可以用这招回退。升级前先apt-mark showhold看看有没有被锁的包,心里有数。

这套流程走下来,树莓派4B 上跑 WPS 这件事就算落地了。核心就三块:选对系统、装对包、修好字体。每一块都有坑,但坑都不深,耐心点都能过。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/9/25 4:25:06

微信聊天记录解密导出:SQLCipher密钥派生与Python实现全解析

简介&#xff1a;chatlog 是一款用于导出微信聊天记录的本地化工具源码&#xff0c;GitHub 原仓库已下架&#xff0c;这份资源相当于完整源码备份。面向需要离线解析微信数据库、进行二次开发或研究本地数据提取技术的开发者&#xff0c;可在 Windows、macOS 或 Linux 环境自行…

作者头像 李华
网站建设 2026/9/25 4:24:43

生产级Agent沙箱设计:选型、持久化与执行协议全解析

1. 为什么本地跑通的沙箱&#xff0c;一上生产就翻车先说个我们踩过的场景。最开始做 Agent 的时候&#xff0c;团队里每个人都在自己电脑上跑代码沙箱&#xff0c;主要就是拿 Docker 跑个容器&#xff0c;把 LLM 生成的代码丢进去执行&#xff0c;本地看起来一切正常。但等到要…

作者头像 李华
网站建设 2026/9/25 4:24:15

开源电视直播方案:my-tv壳源分离原理与M3U直播源配置维护指南

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华
网站建设 2026/9/25 4:23:21

Keil5 MDK/C51/C251并行安装核心原理与避坑指南

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华
网站建设 2026/9/25 4:23:19

Linux USB协议栈核心框架:从枚举到URB的驱动开发实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华