libreoffice24.2--arm环境源码编译--构建RPM包

1、下载源代码地址:https://zh-cn.libreoffice.org/download/libreoffice/

 

2、构建环境,使用docker容器,在容器内编译,使用的基础镜像是:fedora:latest,

 使用过centos9和centos10,centos9 gcc版本不够;centos10安装fakeroot包有问题,无法构建rpm包。

3、在解压后的libreoffice-24.2.5.2目录下创建一个编译参数文件:autogen.input,内容如下

#安装路径
 
--prefix=/opt/libreoffice24.2
 
#禁用帮助
 
--without-help
 
--without-helppack-integration
 
#启用简体中文用户界面
 
--with-lang=zh-CN

#禁用与JUnit有关的测试
 
--without-junit
 
#启用libreoffice内置的字体
 
--with-fonts
 
#若编译好之后您需要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

4、安装编译需要的依赖

dnf -y install perl automake autoconf which fakeroot cups-devel fontconfig fontconfig-devel gperf rpm-build libxslt libxslt-devel nss nspr nss-devel nspr-devel libICE-devel libSM-devel libXrandr-devel libX11-devel  bison flex gtk3 gtk3-devel glib2 glib2-devel cairo-devel atk-devel gstreamer1 gstreamer1-plugins-base gstreamer1-devel gstreamer1-plugins-base-devel

5、开始编译打包

./autogen.sh  && make && make install

6、编译完成后rpm包在这个目录下:libreoffice-24.2.5.2/workdir/installation/LibreOfficeDev/rpm/install

 LibreOfficeDev_24.2.5.2_Linux_aarch64_rpm.tar.gz可直接迁移使用

7、经验证,用fedora:latest新启动一个容器后,安装LibreOfficeDev_24.2.5.2_Linux_aarch64_rpm.tar.gz后,libreoffice仍无法工作,需要安装依赖包

dnf -y install libXinerama dbus-devel nss-devel cairo cups libX11-devel  gtk3-devel 
#离线环境,可以先下载依赖包,再拷贝后安装
#其中procps net-tools telnet分别对应容器里的ps、netstat、telnet命令,可不安装
dnf -y install libXinerama dbus-devel nss-devel cairo cups libX11-devel gtk3-devel procps net-tools telnet --downloadonly --downloaddir=/tmp/dependents_package

8、至此就拿到了离线环境使用的所有依赖包,包括:LibreOfficeDev_24.2.5.2_Linux_aarch64_rpm.tar.gz和dependents_package.tar.gz

9、还需要一个字体文件:simsun.ttf,搜一下自行下载吧。

9、编写Dockerfiile,制作libreoffice的arm版本镜像

FROM fedora
ADD LibreOfficeDev_24.2.5.2_Linux_aarch64_rpm.tar.gz /tmp
ADD dependents_package.tar.gz /tmp/LibreOfficeDev_24.2.5.2_Linux_aarch64_rpm/RPMS
RUN rpm -ivh /tmp/LibreOfficeDev_24.2.5.2_Linux_aarch64_rpm/RPMS/*.rpm
COPY simsun.ttf /usr/share/fonts/chinese/
ENV PATH=/opt/libreofficedev24.2/program:$PATH
CMD ["/bin/bash","-c","soffice --headless --accept='socket,host=0.0.0.0,port=8100;urp;' --nofirststartwizard"]
EXPOSE 8100

10、根据dockerfile构建镜像

posted @ 2024-09-05 18:38  NorthFeng  阅读(558)  评论(0编辑  收藏  举报