开发者
资源
鲲鹏环境下基于openEuler 20.03 LTS SP1编译安装Libreoffice 7.1.8.1(aarch64)指导
鲲鹏环境下基于openEuler 20.03 LTS SP1编译安装Libreoffice 7.1.8.1(aarch64)指导
发表于2023/11/08
3.5k4

1 简介

LibreOffice是一款由社区创造的自由免费办公套件,默认使用开放文档格式(OpenDocument Format , ODF), 并支持*.docx, *.xlsx, *.pptx等其他格式,内置文字处理Writer,电子表格Calc,演示文稿Impress,绘图Draw,数据库Base,数学公式Math等多个强大程序。可用于处理文本文档、电子表格、演示文稿、绘图以及公式编辑。它可以运行于Windows, GNU/Linux 以及 macOS等操作系统上,并具有一致的用户体验。

LibreOffice支持扩展功能。可以使用LibreOffice Basic, Python, C/C++, Java等多个编程语言为LibreOffice开发扩展程序,以丰富其功能。LibreOffice的扩展软件库中已经有多个扩展可用。另外,它还支持模板功能,可以使用LibreOffice模板库中已有的模板,或者创建自己的模板。

LibreOffice的前身是OpenOffice.org, 而OpenOffice.org最早是基于StarOffice。经过了许多年的开发和积累,并已被全球范围内的众多用户使用。LibreOffice是目前最活跃的OpenOffice.org代码库后继者,每6个月发布一个主要的新版本。

官方链接: https://zh-cn.libreoffice.org/

类别:办公软件

语言:C++/Python/JavaScript/C/Java

2 环境

类别

子项

版本

获取地址(方法)

硬件

CPU

Kunpeng 920

iBMC

网络

Ethernet-10GE

iBMC

存储

SATA 4T

iBMC

内存

xxG xxxMHz

iBMC

OS

openEuler

20.03 LTS SP1

cat /etc/os-release

Kernel

4.19.90-2109.1.0.0108.oe1

cat /proc/version

软件

GCC

7.3.0

参考下面安装说明 gcc -v

OpenJDK

1.8.0_272

参考下面安装说明

3 系统依赖安装

3.1 配置本地yum源

挂载OS镜像:

mount -o loop /home/openEuler-20.03-LTS-SP1-everything-aarch64-dvd.iso /mnt/iso/

执行mv /etc/yum.repos.d /etc/yum.repos.d.bak备份默认yum源,然后mkdir /etc/yum.repos.d/创建/etc/yum.repos.d/路径,执行vim /etc/yum.repos.d/local.repo文件,配置yum本地源:

[local]

name=local

baseurl= file:///mnt/iso

gpgcheck=0

enabled=1

运行下面的命令,使yum源配置生效:

yum clean all

yum makecache

3.2 安装GCC等相关依赖

yum安装GCC等相关依赖:

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

4 编译安装

1、获取libreoffice-7.1.8.1.tar.gz源码并解压

wget http://download.documentfoundation.org/libreoffice/src/7.1.8/libreoffice-7.1.8.1.tar.xz

tar xf libreoffice-7.1.8.1.tar.gz

注:如果系统环境无法联网,则手动点击http://download.documentfoundation.org/libreoffice/src/7.1.8/libreoffice-7.1.8.1.tar.xz下载libreoffice-7.1.8.1.tar.xz后传到系统/home/路径下。

2、进入解压目录

cd libreoffice-7.1.8.1/

3、在/home/libreoffice-7.1.8.1/路径下创建autogen.input文件,并添加如下内容(添加后执行:wq!保存退出)

# 指定安装路径,不指定情况下默认安装在/usr/local/lib/libreoffice/路径下:
--prefix=/opt/libreoffice-7.1.8.1

# 一般直接在线浏览帮助文档,因此将帮助禁用:
--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

注:如果系统不能联网,则指定--with-external-tar选项,并将相关依赖包从https://go.suokunlong.cn:88/dl/libreoffice/external_tarballs/获取后上传到指定路径,需要的依赖包及版本在源码解压路径下“download.lst”文件中描述。

4、修改Makefile和Makefile.in文件(相同修改)使能root账号编译权限

vim Makefile

vim Makefile.in

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

修改前:

修改后:

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

修改前:

cke_91523.png

修改后:

cke_81967.png

注:如果不修改Makefile直接使用root编译会报“Building LibreOffice as root is a very bad idea, use a refular user.”错误而直接终止编译,如下图所示:

5、执行./autuogen.sh

./autuogen.sh

cke_73134.png

cke_66429.png

6、执行make编译

make

cke_57602.png

cke_50707.png

7、执行make install编译安装

make install

cke_42068.png

cke_35727.png

说明:耗时主要为download.lst依赖包下载过程,编译过程无问题情况下预计1小时内可以编译安装完成。

5 验证

1、查看编译后的文件

ls /opt/libreoffice-7.1.8.1/lib/libreoffice/

ls /opt/libreoffice-7.1.8.1/lib/libreoffice/program/

cke_28752.png

2、查看libreoffice版本及soffice使用帮助

/opt/libreoffice-7.1.8.1/lib/libreoffice/program/soffice --version

/opt/libreoffice-7.1.8.1/lib/libreoffice/program/soffice -h

cke_20463.png

3、查看编译后的rpm包

ls workdir/installation/LibreOfficeDev/rpm/install/LibreOfficeDev_7.1.8.1_Linux_aarch64_rpm/RPMS/

ls workdir/installation/LibreOfficeDev_languagepack/rpm/install/LibreOfficeDev_7.1.8.1_Linux_aarch64_rpm_langpack_zh-CN/RPMS/

cke_12000.png

4、查看编译后sdk的二进制文件

ls instdir/sdk/

ls instdir/sdk/bin/

ls instdir/sdk/lib/

cke_3910.png

6 参考信息

7 FAQ

1、执行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.1.8.1/external/python3/ExternalPackage_python3.mk:48: *** file /home/libreoffice-7.1.8.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

收藏举报
Level 1
0
帖子
0
粉丝
0
获赞