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 环境
3 系统依赖安装
3.1 配置本地yum源
挂载OS镜像:
执行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本地源:
运行下面的命令,使yum源配置生效:
3.2 安装GCC等相关依赖
yum安装GCC等相关依赖:
4 编译安装
1、获取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、进入解压目录
3、在/home/libreoffice-7.1.8.1/路径下创建autogen.input文件,并添加如下内容(添加后执行:wq!保存退出)
注:如果系统不能联网,则指定--with-external-tar选项,并将相关依赖包从https://go.suokunlong.cn:88/dl/libreoffice/external_tarballs/获取后上传到指定路径,需要的依赖包及版本在源码解压路径下“download.lst”文件中描述。
4、修改Makefile和Makefile.in文件(相同修改)使能root账号编译权限
1)、将“.PHONY : ”开头行中的“check-of-root”字符串删除(不同版本对应字符串不完全相同,只需删除“check-of-root”字符串,其他不变)
修改前:

修改后:

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

修改后:

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

5、执行./autuogen.sh


6、执行make编译


7、执行make install编译安装


说明:耗时主要为download.lst依赖包下载过程,编译过程无问题情况下预计1小时内可以编译安装完成。
5 验证
1、查看编译后的文件


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

3、查看编译后的rpm包

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

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相关文件

./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判断逻辑有关)
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”字符串删除
修改前:
修改后:
注:如果不修改Makefile直接使用root编译会报“Building LibreOffice as root is a very bad idea, use a refular user.”错误而直接终止编译,如下图所示:
5、执行./autuogen.sh
./autuogen.sh
6、执行make编译
make
7、执行make install编译安装
make install
说明:耗时主要为download.lst依赖包下载过程,编译过程无问题情况下预计1小时内可以编译安装完成。
5 验证
1、查看编译后的文件
ls /opt/libreoffice-7.1.8.1/lib/libreoffice/
ls /opt/libreoffice-7.1.8.1/lib/libreoffice/program/
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
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/
4、查看编译后sdk的二进制文件
ls instdir/sdk/
ls instdir/sdk/bin/
ls instdir/sdk/lib/
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