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

news2024/12/23 10:42:14

环境说明

操作系统:华为欧拉操作系统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.xz

wget -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.xz

tar 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转换为pdf

soffice --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安装教程
  • 华为云论坛_云计算论坛_开发者论坛_技术论坛-华为云

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1135983.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

超全整理,服务端性能测试-docker部署tomcat/redis(详细步骤)

目录&#xff1a;导读 前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结&#xff08;尾部小惊喜&#xff09; 前言 1、docker部署tom…

全电注塑机硬件选型

电机选型&#xff08;方法&#xff09; 在伺服电机选型计算当中其主要数据包括&#xff1a;负载/ 电机惯量比&#xff0c;加减速力矩&#xff0c; 负载转矩&#xff0c;连续过载时间等。选择原则是&#xff1a;首先根据转矩&#xff0d;速度特性曲线检查负载转矩&#xff0c;加…

解决photoshop中不能输入蒙文的方法(附所有软件、字体)

效果预览&#xff1a; ps版本&#xff1a;Adobe Photoshop 2020 windows版本&#xff1a;windows 11专业版 蒙文字体选用&#xff1a;Menk Garqag Tig 蒙文输入法&#xff1a;蒙科立智能输入发下载地址&#xff1a;蒙科立-蒙古文AI&#xff08;人工智能&#xff09;引领者 …

跨境电商测评方式有哪些?

对于做跨境电商平台的卖家来说&#xff0c;如果想要提高销量&#xff0c;测评是一个必不可少的环节&#xff0c;因为前期自然流量很难带来什么销售额&#xff0c;所以很多卖家选择进行测评来提升产品的排名、权重和销量&#xff0c;并增加订单量、点赞、店铺评价和产品评价等指…

Studio One6.5版本要不要更新?哪些人需要更新?更新了哪些内容

对于声卡调试Studio One6.5版本&#xff0c;是否需要更新&#xff1f;这是一个需要考虑的问题。各位好&#xff0c;我是coco玛奇朵。 关于Studio One6.5版本要不要更新&#xff1f;哪些人需要更新&#xff1f;更新了哪些内容&#xff1f;对于这些问题&#xff0c;今天我们来详…

Redis快速上手篇(二)(操作与数据类型)

Key 默认 16 个数据库&#xff0c;类似数组下标从 0 开始&#xff0c;初始默认使用 0 号库 config get databases 查询数据库总数量 dbsize 查看当前数据库的 key 的数量 flushdb 清空当前库 flushall 通杀全部库 keys * 获取当前库中的所有key select 0 选择第一个库 move ke…

VS2022 C# 读取 excel 2023年

今天是2023年6月26日&#xff0c;我有一个excel表要读数据&#xff0c;然后放到winform程序来处理&#xff0c;网上的资料太旧&#xff0c;很多用不起来&#xff0c;试了一个可以使用&#xff0c;记录一下&#xff1a; 一、excel文件后缀需要小写。 二、用VS2022建一个winform…

关于腾讯云轻量应用服务器性能测评,看这一篇文章就够了

腾讯云轻量应用服务器性能如何&#xff1f;为什么便宜是不是性能不行&#xff1f;腾讯云百科txybk.com从轻量应用服务器的CPU型号、处理器主频、内存、公网带宽、月流量和系统盘多方面来详细测评轻量性能&#xff0c;轻量应用服务器性价比高&#xff0c;并不是性能不行&#xf…

rk3588 SD 卡镜像扩容

先用一个卡复制镜像 Win32DiskImager 操作: https://blog.csdn.net/FL1623863129/article/details/118945754 复制之后镜像正常工作 但是仍旧只能显示32G 扩容 下载安装gparted https://blog.csdn.net/weixin_44589540/article/details/121580883 resize 拖过来就完了…

如何实现Android视音频数据对接到GB28181平台(SmartGBD)

为什么要开发Android平台GB28181&#xff1f; 在做Android平台GB28181接入模块之前&#xff0c;我们在RTMP推送播放、RTSP轻量级服务、转发、播放这块&#xff0c;已经有很多年的经验&#xff0c;这意味着&#xff0c;我们不需要重复造轮子&#xff0c;已有屏幕、摄像头或编码…

Keil uVision 5 MDK版软件安装包下载及安装教程(最详细图文教程)

目录 一.简介 二.安装步骤 软件&#xff1a;Keil uvision5版本&#xff1a;MDKv518语言&#xff1a;中文/英文大小&#xff1a;377.01M安装环境&#xff1a;Win11/Win10/Win8/Win7硬件要求&#xff1a;CPU2.59GHz 内存4G(或更高&#xff09;下载通道①百度网盘丨64位下载链接…

【Linux】第三站:Linux基本指令(二)

文章目录 一、通配符 *二、man指令三、cp指令1.先给一个文件里面写入数据2. cp指令拷贝普通文件3.cp指令拷贝文件目录4.常用的选项总结 四、mv指令1.mv命令简介2.使用 五、一些插曲1.一些注意事项2.指令的本质3.再谈输出重定向4.追加重定向5.输入重定向 六、cat指令七、more指令…

liunx Centos-7.5上 rabbitmq安装

在安装rabbitmq中需要注意&#xff1a; 1、rabbitmq依赖于erlang&#xff0c;需要先安装erlang 2、erlang和rabbitmq版本有对应关系 可参考网页&#xff1a;https://www.rabbitmq.com/which-erlang.html 第一步&#xff0c;安装编译工具及库文件,如果服务器上已经有了&…

大事务导致数据库恢复时间长

背景 客户的一套系统从凌晨开始出现运行缓慢&#xff0c;重启SQL Server服务后一个主要的数据库一直处在正在恢复的状态&#xff0c;多次重启SQL Server服务和服务器无果后请我们协助处理。 现象 在SSMS中看到数据库是正在恢复的状态&#xff0c;而且不能被访问。 分析 启动SQ…

全球医疗产品畅销:跨境电商的生命科技

随着数字化时代的到来&#xff0c;跨境电商不仅仅是商业领域的一种革命性力量&#xff0c;更是生命科技行业的重要推动者。这一融合带来了全球医疗产品畅销的新时代&#xff0c;为世界各地的消费者带来了前所未有的便利和机会。本文将深入探讨这一跨境电商的生命科技领域&#…

C# 高级 <一>

一、 特性&#xff08;Attribute&#xff09; .NET 框架提供了三种预定义特性&#xff1a; AttributeUsageConditionalObsolete a. AttributeUsage 它描述了如何使用一个自定义特性类。它规定了特性可应用项目的类型。语法如下&#xff1a; [AttributeUsage(validon,AllowM…

万圣节倒计时:如何在TikTok上推动商品广告

万圣节是一个商机充足的季节&#xff0c;对于广告商和品牌来说&#xff0c;这是一个绝佳的机会。TikTok&#xff0c;作为一款全球短视频应用&#xff0c;提供了一个独特的平台&#xff0c;可以将商品广告巧妙地与万圣节元素结合&#xff0c;吸引年轻受众的注意力。本文将深入探…

想要完美录屏?这几款录屏大师,不容错过

在数字媒体和游戏产业的不断崛起下&#xff0c;屏幕录制技术变得越来越重要。无论是捕捉游戏精彩瞬间、创作教程视频&#xff0c;还是与朋友分享有趣时刻&#xff0c;录屏工具成为了当今数字生活不可或缺的一部分。本文将介绍三款好用的录屏大师&#xff0c;无论您是一位游戏爱…

Gartner:2024年优秀战略技术趋势

到2024年&#xff0c;人工智能将在企业中占据主导地位&#xff0c;而云服务、安全性和可持续性的影响力也将上升。 到2024年&#xff0c;人工智能将在企业中占据主导地位&#xff0c;而云服务、安全性和可持续性的影响力也将上升。 Gartner表示&#xff0c;人工智能和智能应用…

Ubuntu20.04下安装MySQL8环境

Ubuntu20.04下安装MySQL8环境 1.下载MySQL客户端和服务器2.配置MySQL3.测试MySQL4.设置MySQL服务开机自启动5.修改root密码MySQL数据库基本使用启动MySQL数据库服务重启MySQL数据库服务停止MySQL数据库服务查看MySQL运行状态设置MySQL服务开机自启动停止MySQL服务开机自启动MyS…