ARM 架构银河麒麟 v10 编译 LibreOffice 7.1.8.1

在公司我负责开发的报表引擎项目中,使用 LibreOffice 将 word 文档转换成 pdf,由于麒麟的 LibreOffice rpm 版本比较老,所以需要在银河麒麟 v10 系统上编译较新的 LibreOffice。

环境信息

架构:ARM
操作系统:4.19.90-52.22.v2207.ky10.aarch64
LibreOffice 版本:7.1.8.1
LibreOffice 源码下载链接:http://download.documentfoundation.org/libreoffice/src/7.1.8/

安装依赖

1
2
3
4
5
6
yum install -y automake autoconf cups-devel fontconfig-devel \
gperf libxslt-devel python3-devel libXext-devel libICE-devel \
libSM-devel libXrender-devel xorg-x11-xauth x11* libX11 \
libXrandr-devel cairo-devel gtk3-devel gstreamer-devel \
gstreamer-plugins-base gstreamer1-* gstreamer* \
glibc-headers gcc-c++ fakeroot

创建用户

libreoffice 不允许使用 root 用户编译,所以需要建立一个新的用户。

1
useradd libreoffice

上传源码包

将 libreoffice 源码包上传到 /opt/ 目录下并解压。这一步我使用麒麟系统的 tar -xf 命令未解压成功,忘记截图了,我是在 mac 上解压并重新压缩后上传的。

更改文件夹所有者

1
chown -R libreoffice:libreoffice /opt/libreoffice-7.1.8.1

配置编译参数

/opt/libreoffice-7.1.8.1 目录下新建 autogen.input 文件,写入以下内容,并根据实际情况修改。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
# 禁用帮助
--without-help
--without-helppack-integration

# 启用简体及繁体中文用户界面
--with-lang=zh-CN zh-TW

# 禁用在线更新和崩溃报告
--disable-online-update
--disable-breakpad

# 禁用 Office Development Kit。若启用 ODK,则额外需要 doxygen 依赖项。
--disable-odk
--without-doxygen

# 若编译好之后您需要 rpm (或 deb) 包,则需要启用下列两项:
--enable-epm
--with-package-format=rpm

# 禁用 java
--without-java

--enable-python=internal

开始预编译

1
2
cd /opt/libreoffice-7.1.8.1
./autogen.sh

开始编译

1
make

编译过程中需要联网下载依赖包,服务器在国外,下载有些慢,耐心等待。编译时间由机器性能决定。编译成功信息:

编译好的 LibreOffice 在 /opt/libreoffice-7.1.8.1/instdir 目录。

验证

进入 /opt/libreoffice-7.1.8.1/instdirm 目录执行 ./soffice --version 命令,如果出现版本号就没问题了。

FAQ

make 编译过程中出现_sysconfigdata__linux_aarch64-unknown-linux-gnu.py does not exist in the tarball 错误。

解决方法:

1
2
cd /opt/libreoffice-7.1.8.1/workdir/UnpackedTarball/python3/build/lib.linux-aarch64-3.8
cp _sysconfigdata__linux_aarch64-linux-gnu.py _sysconfigdata__linux_aarch64-unknown-linux-gnu.py

参考资料

https://www.libreofficechina.org/how-to-build-libreoffice-zh-cn/
https://blog.csdn.net/weixin_58090109/article/details/122274942?spm=1001.2014.3001.5502
https://bbs.huaweicloud.com/forum/thread-178626-1-1.html

特别说明

本人对编译相关的工作并不熟悉,非专业人员,本文仅作记录,资料是从网络上收集的。


ARM 架构银河麒麟 v10 编译 LibreOffice 7.1.8.1
https://cui.cc/bf2db5a6c4f9/
作者
南山崔崔
发布于
2023年6月27日
许可协议