CentOS 8 ARM 源码编译libreoffice并生成rpm包 —— 筑梦之路

背景说明:

arm架构的操作系统上有很多软件包没有做适配,比如libreoffice,依赖很多,如果想要从yum源里面安装,版本太低,不满足环境要求,这里介绍从源码编译生成rpm包的方法。

安装编译所需依赖包:

dnf install epel-release
dnf install cups cups-devel gperf gperf-devel java-11-openjdk libxslt libxslt-devel libICE-devel libSM-devel libXt-devel gtk3-devel gstreamer* fontconfig-devel gtk2 gtk2-devel gtk2-devel-docs gtk3 gtk3-devel

准备编译所需源码包:

wget https://ftp.kaist.ac.kr/tdf/libreoffice/src/7.5.0/libreoffice-7.5.0.1.tar.xz

wget https://ftp.kaist.ac.kr/tdf/libreoffice/src/7.5.0/libreoffice-translations-7.5.0.1.tar.xz

xz -d libreoffice-7.5.0.1.tar.xz

xz -d libreoffice-translations-7.5.0.1.tar.xz

tar -xf libreoffice-7.5.0.1.tar

tar -xf libreoffice-translations-7.5.0.1.tar

编写配置编译选项输入文件:

在源代码目录下建立 autogen.input 文件, 在执行autogen.sh会自动加载input文件,内容如下

#安装路径

--prefix=/opt/libreoffice

#禁用帮助

--without-help

--without-helppack-integration

#启用简体中文用户界面

--with-lang=zh-CN

#在线更新及崩溃报告功能禁用

--disable-online-update--disable-breakpad

#禁用与JUnit有关的测试

--without-junit

#启用libreoffice内置的字体

--with-fonts

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

--disable-odk--without-doxygen

#若编译好之后您需要rpm (或deb)包,则需要启用下列两项,默认不启用:

--enable-epm

--with-package-format=rpm

#编译之间共享external_tarballs第三方源代码包,为加快编译速度,可以预先在国内镜像下载(https://go.suokunlong.cn:88/dl/libreoffice/external_tarballs/)。

#设置--with-external-tar选项指定第三方源代码包路径:


--with-external-tar=

#禁用自带java

--without-java

#需要用到firebird数据库则要启用,默认不启用

--enable-firebird-sdbc

--without-system-firebird

--enable-python=internal

开始编译:

autogen.sh && make && make install

tips:

  编译大概需要1个小时左右,取决于机器的cpu性能。
  在执行autogen.sh时,会提示缺少包,可按提示安装。
  一定要配置JAVA_HOME环境变量,不然编译无法通过
  用非root用户编译,或修改Makefile文件不检测用户权限


编译过程中也碰到过很多,但基本都是缺少包,值得记录的是国产化操作系统,编译无法识别其版本报错:

​file libreoffice-7-1/workdir/UnpackedTarball/python3/LO_lib/_sysconfigdata__linux_aarch64-unknown-linux-gnu.py does not exist in the tarball

解决办法把其文件改名即可。

扫描二维码关注公众号,回复: 14563466 查看本文章

参考资料:

Libreoffice 7.2.2编译安装_51CTO博客_libreoffice安装教程

猜你喜欢

转载自blog.csdn.net/qq_34777982/article/details/128482591