首页 > 编程语言 >libreoffice24.2--arm环境源码编译--构建RPM包

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

时间:2024-09-05 18:36:17浏览次数:9  
标签:tar -- 24.2 devel 源码 libreoffice libreoffice24.2 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

#离线环境,可以先下载依赖包,再拷贝后安装
dnf -y install libXinerama dbus-devel nss-devel cairo cups libX11-devel  gtk3-devel  --downloadonly --downloaddir=/tmp/dependents_package

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

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
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

标签:tar,--,24.2,devel,源码,libreoffice,libreoffice24.2,rpm
From: https://www.cnblogs.com/sunnytomorrow/p/18399028

相关文章

  • 填坑 Plugin 'mysql_native_password' is not loaded
    数据库从mysql5.7升级到mysql8.4,部分场景出现以下错误提示:Plugin'mysql_native_password'isnotloaded原因是:mysql_native_password插件(模式)在新版本中被弃用了,新模式为caching_sha2_password,需要启用一下旧模式。解决步骤:1.连接到数据库后,用命令SHOWPLUGINS查看插......
  • icetea sol2
    iceteasol2sol1省流:建立线段树,在每一个节点上维护\(f_u(x)\)表示父节点冰红茶有\(x\)个单位,\(u\)的子树内所有边权值和加上\(u\)到父亲边权的最小值.这样根节点两个子节点的\(f\)之和的最小值即为答案.\(f\)的合并方式不再叙述.为了方便表述,我们记线段树上节点\(u\)的子树......
  • Opencl从零实战(一)--windows搭建开发环境
    系统win11visualstudio2022opencl3.0库:Releases·KhronosGroup/OpenCL-SDK(github.com)在新建的解决方案中项目->[项目名称]和属性点选c/c++->常规->附件包含目录->编辑,将自己下载的oepnclsdk的include路径填进去,作为头文件的引用目录点选链接器->常规->附加库......
  • VScode远程连接报错 Resolver error: Error: Connecting with SSH timed out
    0、引言 导致VScode连接失败的原因有很多。该方法仅针对超时引起的报错。 1、报错内容: [18:01:33.071]Runningscriptwithconnectioncommand:"C:\Windows\System32\OpenSSH\ssh.exe"-T-D53443"docker_sys"bash[18:01:33.072]Terminalshellpath:C:\Window......
  • Android BLE & BluetoothGattCallback.onServicesDiscovered不回调或部分回调解决
    A.如题,调用BluetoothGatt.discoverServices()返回true了,但是一直没走到onServicesDiscovered回调中,用Ble调试蓝牙助手测试了,也是一样的情况,所以应该是外设的问题,但是ios的没问题,蓝牙处理还是有差别,网上有一种方式说是延迟去多discoverServices几次,可能可以找到,尝试了一下还是不行......
  • laravel singleton 单例模式使用
    laravelsingleton单例模式使用1、简介在Laravel中,singleton是用于将一个类注册为单例模式的服务,也就是说,整个应用程序生命周期内,Laravel只会实例化一次该服务。这个服务可以在多个地方共享同一个实例,而不是每次请求时都创建一个新的实例。2、使用场景当你希望某个类只......
  • 基于阿里云函数计算(FC)x 云原生 API 网关构建生产级别 LLM Chat 应用方案最佳实践
    作者:计缘LLMChat应用大家应该都不陌生,这类应用也逐渐称为了我们日常的得力助手,如果只是个人使用,那么目前市面上有很多方案可以快速的构建出一个LLMChat应用,但是如果要用在企业生产级别的项目中,那对整体部署架构,使用组件的性能,健壮性,扩展性要求还是比较高的。本文带大家了解一......
  • OpenAPI definition(示例)
    OpenAPI规范(中文版)(apifox.cn)OpenAPIdefinition-CSDN博客 简介:OpenAPIdefinitionHOST:http://192.168.41.191:8902/api/v1/user联系人:Version:v0接口路径:/user/v3/api-docs[TOC]学校管理获取学校列表接口地址:/user/schools请求方式:GET请求数据类型:appli......
  • 【商城源码二次开发】
    前言商城源码二开指的是在原始商城源代码的基础上进行再次开发,以扩展或改进功能、改善性能、提升安全性或增加个性化特性。这个过程通常涉及对商城系统的深度理解,包括其架构、使用的技术栈、业务逻辑等。二开的过程可以简单分为以下几个步骤:一、需求分析确定需要进行哪......
  • Vue3 中的状态管理:Vuex vs Pinia 深度分析
    Vue3中的状态管理:VuexvsPinia深度分析在现代前端开发中,状态管理是一个至关重要的方面。尤其是在大型应用中,如何高效、清晰地管理状态不仅影响着代码的可读性和可维护性,还对应用的性能有直接的影响。在Vue3中,Vuex和Pinia是两种主要的状态管理库,这两者各有不同的设......