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 -1Ubuntu 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-02.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/postinstpostinst是安装后执行的脚本,正常的话就是建软链接、更新桌面数据库、刷新字体缓存这些。如果里面出现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.debdpkg装完大概率会报依赖错误,这是正常的,因为 deb 包声明的依赖可能和你的系统对不上。接着跑:
sudo apt install -f让apt自动补齐缺失的依赖。这一步会联网下载,确保网络通畅。
装完之后验证一下:
which wps which wpp which etwps是文字,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-cjkfonts-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 libfreetype6apt-mark hold让这个包不再自动升级。类似的,libc6、libglib2.0-0这些核心库如果升级后出问题,也可以用这招回退。升级前先apt-mark showhold看看有没有被锁的包,心里有数。
这套流程走下来,树莓派4B 上跑 WPS 这件事就算落地了。核心就三块:选对系统、装对包、修好字体。每一块都有坑,但坑都不深,耐心点都能过。