openEuler 22.03 LTS编译安装libreoffice并制作rpm包——筑梦之路

本文主要是介绍openEuler 22.03 LTS编译安装libreoffice并制作rpm包——筑梦之路,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

环境说明

操作系统:华为欧拉操作系统openEuler 22.03 lts  x86_64

libreoffice版本:当前最新版本7.6

编译安装过程

1. 安装编译工具和依赖包

sudo yum install -y snappy snappy-devel autoconf automake libtool git gcc gcc-c++ gcc-objc++ make cmake openssl openssl-devel zlib zlib-devel bzip2 bzip2-devel bzip2-libs readline readline-devel bison zip unzip tar tcl java-1.8.0* bison* ncurses* wget libyaml libyaml-devel python-setuptools libcurl-devel gmp gmp-devel mpfr mpfr-devel libmpc libmpc-devel libpcap-dev* cups-devel fontconfig pkg-config fontconfig-devel gperf libxslt libxslt-devel gtk2 gtk2-devel libICE libICE-devel libSM libSM-devel gtk3 gtk3-devel dbus-glib dbus-glib-devel gstreamer* perl* nss-devel nspr-devel libatomic_ops libatomic_ops-devel fakeroot  rpm-build  flex

2. 获取源码

wget  -c  http://download.documentfoundation.org/libreoffice/src/7.6.2/libreoffice-7.6.2.1.tar.xzwget -c http://download.documentfoundation.org/libreoffice/src/7.6.2/libreoffice-translations-7.6.2.1.tar.xz

3. 解压源码

tar xf  libreoffice-7.6.2.1.tar.xztar xf  libreoffice-translations-7.6.2.1.tar.xz

4. 创建输入文件autogen.input

# 切换目录cd  libreoffice-7.6.2.1# 创建文件vim  autogen.input
# 指定安装路径,不指定情况下默认安装在/usr/local/lib/libreoffice/路径下:
--prefix=/opt/libreoffice-7.6# 一般直接在线浏览帮助文档,因此将帮助禁用:
--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# 若需要在多个不同版本的编译之间共享external_tarballs第三方源代码包或系统无法联网情况下,则可设置下列选项(根据实际路径设置):
# --with-external-tar=<external_tarballs文件夹路径>
--with-external-tar=/home/libreoffice-external-tar# 现在很多功能已用不到java,可将其禁用:
--without-java# 需要用到firebird数据库情况,启用如下三项:
--enable-firebird-sdbc
--without-system-firebird
--enable-python=internal

5. 修改Makefile.in文件使用root账号编译权限

vim Makefile.in

1)、将“.PHONY : ”开头行中的“check-of-root”字符串删除(不同版本对应字符串不完全相同,只需删除“check-of-root”字符串,其他不变)

2)将“bootstrap: ”开头行中的“check-of-root”字符串删除

6. 编译

make

编译过程会根据download.lst文件中的内容下载依赖包保存到/home/libreoffice-external-tar目录下 

此步骤耗时比较长,耐心等待完成,若有报错,请根据报错内容处理解决。 

7. 安装

make  install

8. 检查验证

# 查看文件目录ls /opt/libreoffice-7.6/lib/libreoffice/ls /opt/libreoffice-7.6/lib/libreoffice/program/# 查看版本和帮助信息/opt/libreoffice-7.6/lib/libreoffice/program/soffice --version/opt/libreoffice-7.6/lib/libreoffice/program/soffice -h# 查看编译后sdk的二进制文件ls instdir/sdk/ls instdir/sdk/bin/ls instdir/sdk/lib/# 查看编译后的rpm包ls workdir/installation/LibreOfficeDev/rpm/install/LibreOfficeDev_7.6.2.1_Linux_x86_64_rpm/RPMS/ls workdir/installation/LibreOfficeDev_languagepack/rpm/install/LibreOfficeDev_7.6.2.1_Linux_x86_64_rpm_langpack_zh-CN/RPMS/

 

9. rpm包在其他环境中安装

rpm  -ivh  *.rpm  --nodeps# 可能会缺少依赖,可以根据报错信息安装相应的依赖包

10. 启动服务测试验证

# 启动服务soffice --headless --accept="socket,host=0.0.0.0,port=8100;urp;" --nofirststartwizard# 测试转换# word 转换成 pdf
soffice --invisible --convert-to pdf  xxx.docx;# word 转换成 epub 
soffice --invisible --convert-to epub xxx.docx;# word 转换成 html
soffice --invisible --convert-to "html:XHTML Writer File:UTF8"  xxx.docx;# word 转换成 txt
soffice --invisible --convert-to "txt:Text (encoded):UTF8"  xxx.docx;# html转换为pdfsoffice --headless --convert-to pdf xxx.html  --outdir /home/xxx.pdf

中文字体的问题参考:centos安装中文字体_centos 安装中文字体_天空飞鸟可见的博客-CSDN博客 

在x86架构下编译比较顺利,基本上很少报错。在arm环境下编译安装可能存在以下报错:

FAQ

 1、执行make编译时报messages.po文件missing错误

【详细描述】:执行make编译时报messages.po文件missing,具体报错如下:

missing /home/libreoffice-7.6.2.1/translstions/source/zh-CN/oox/messages.po

missing /home/libreoffice-7.6.2.1/translstions/source/zh-CN/oox/messages.po

make[1]: *** No rule to make target '/home/libreoffice-7.6.2.1/translstions/source/zh-CN/readlicense_oo/docs.po', needed by '/home/libreoffice-7.6.2.1/workdir/CustomTarget/readlicense_oo/readme/readme.xrm'. Stop.

解决办法:

这步是缺少包,下载translstions源码包和libreoffice的源码放在同一个路径下,解压即可。

2. 执行make编译时报/_sysconfigdata__linux_aarch64-unknown-linux-gnu.py does not exist in the tarball错误

【详细描述】:执行make编译时报/_sysconfigdata__linux_aarch64-unknown-linux-gnu.py does not exist in the tarball错误,具体报错如下:

/home/libreoffice-7.6.2.1/external/python3/ExternalPackage_python3.mk:48: *** file /home/libreoffice-7.6.2.1/workdir/UnpackedTarball/python3/LO_lib/_sysconfigdata__linux_aarch64-unknown-linux-gnu.py does not exist in the tarball.  Stop.

make[1]: *** Waiting for unfinished jobs....

make: *** [Makefile:282: build] Error 2

解决办法:

1) 执行find . -name "*sysconfigdata*"查找sysconfigdata相关文件

find . -name "*sysconfigdata*"

./workdir/UnpackedTarball/python3/build/lib.linux-aarch64-3.8/__pycache__/_sysconfigdata__linux_aarch64-linux-gnu.cpython-38.pyc

./workdir/UnpackedTarball/python3/build/lib.linux-aarch64-3.8/_sysconfigdata__linux_aarch64-linux-gnu.py

2) 拷贝_sysconfigdata__linux_aarch64-linux-gnu.py为_sysconfigdata__linux_aarch64-unknown-linux-gnu.py(需要的文件为_sysconfigdata__linux_aarch64-unknown-linux-gnu.py,实际文件_sysconfigdata__linux_aarch64-linux-gnu.py,即aarch64和linux中间缺少-unknown字段,跟configure.guess判断逻辑有关)

cp ./workdir/UnpackedTarball/python3/build/lib.linux-aarch64-3.8/_sysconfigdata__linux_aarch64-linux-gnu.py ./workdir/UnpackedTarball/python3/build/lib.linux-aarch64-3.8/_sysconfigdata__linux_aarch64-unknown-linux-gnu.py

欢迎各路大佬批评指正!!!

参考资料:

  • LibreOffice · GitHub
  • https://documentation.libreoffice.org/zh-cn/cn/
  • https://www.libreoffice.org/
  • http://download.documentfoundation.org/libreoffice/
  • https://downloadarchive.documentfoundation.org/libreoffice/old/
  • https://www.libreofficechina.org/how-to-build-libreoffice-zh-cn/
  • Libreoffice 7.2.2编译安装_51CTO博客_libreoffice安装教程
  • 华为云论坛_云计算论坛_开发者论坛_技术论坛-华为云

这篇关于openEuler 22.03 LTS编译安装libreoffice并制作rpm包——筑梦之路的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/285679

相关文章

Python使用国内镜像加速pip安装的方法讲解

《Python使用国内镜像加速pip安装的方法讲解》在Python开发中,pip是一个非常重要的工具,用于安装和管理Python的第三方库,然而,在国内使用pip安装依赖时,往往会因为网络问题而导致速... 目录一、pip 工具简介1. 什么是 pip?2. 什么是 -i 参数?二、国内镜像源的选择三、如何

IDEA编译报错“java: 常量字符串过长”的原因及解决方法

《IDEA编译报错“java:常量字符串过长”的原因及解决方法》今天在开发过程中,由于尝试将一个文件的Base64字符串设置为常量,结果导致IDEA编译的时候出现了如下报错java:常量字符串过长,... 目录一、问题描述二、问题原因2.1 理论角度2.2 源码角度三、解决方案解决方案①:StringBui

Python安装时常见报错以及解决方案

《Python安装时常见报错以及解决方案》:本文主要介绍在安装Python、配置环境变量、使用pip以及运行Python脚本时常见的错误及其解决方案,文中介绍的非常详细,需要的朋友可以参考下... 目录一、安装 python 时常见报错及解决方案(一)安装包下载失败(二)权限不足二、配置环境变量时常见报错及

MySQL8.2.0安装教程分享

《MySQL8.2.0安装教程分享》这篇文章详细介绍了如何在Windows系统上安装MySQL数据库软件,包括下载、安装、配置和设置环境变量的步骤... 目录mysql的安装图文1.python访问网址2javascript.点击3.进入Downloads向下滑动4.选择Community Server5.

CentOS系统Maven安装教程分享

《CentOS系统Maven安装教程分享》本文介绍了如何在CentOS系统中安装Maven,并提供了一个简单的实际应用案例,安装Maven需要先安装Java和设置环境变量,Maven可以自动管理项目的... 目录准备工作下载并安装Maven常见问题及解决方法实际应用案例总结Maven是一个流行的项目管理工具

MySql9.1.0安装详细教程(最新推荐)

《MySql9.1.0安装详细教程(最新推荐)》MySQL是一个流行的关系型数据库管理系统,支持多线程和多种数据库连接途径,能够处理上千万条记录的大型数据库,本文介绍MySql9.1.0安装详细教程,... 目录mysql介绍:一、下载 Mysql 安装文件二、Mysql 安装教程三、环境配置1.右击此电脑

在 Windows 上安装 DeepSeek 的完整指南(最新推荐)

《在Windows上安装DeepSeek的完整指南(最新推荐)》在Windows上安装DeepSeek的完整指南,包括下载和安装Ollama、下载DeepSeekRXNUMX模型、运行Deep... 目录在www.chinasem.cn Windows 上安装 DeepSeek 的完整指南步骤 1:下载并安装

解决IDEA使用springBoot创建项目,lombok标注实体类后编译无报错,但是运行时报错问题

《解决IDEA使用springBoot创建项目,lombok标注实体类后编译无报错,但是运行时报错问题》文章详细描述了在使用lombok的@Data注解标注实体类时遇到编译无误但运行时报错的问题,分析... 目录问题分析问题解决方案步骤一步骤二步骤三总结问题使用lombok注解@Data标注实体类,编译时

python管理工具之conda安装部署及使用详解

《python管理工具之conda安装部署及使用详解》这篇文章详细介绍了如何安装和使用conda来管理Python环境,它涵盖了从安装部署、镜像源配置到具体的conda使用方法,包括创建、激活、安装包... 目录pytpshheraerUhon管理工具:conda部署+使用一、安装部署1、 下载2、 安装3

龙蜥操作系统Anolis OS-23.x安装配置图解教程(保姆级)

《龙蜥操作系统AnolisOS-23.x安装配置图解教程(保姆级)》:本文主要介绍了安装和配置AnolisOS23.2系统,包括分区、软件选择、设置root密码、网络配置、主机名设置和禁用SELinux的步骤,详细内容请阅读本文,希望能对你有所帮助... ‌AnolisOS‌是由阿里云推出的开源操作系统,旨