在OERV也可以玩MC(下)

news/2025/1/15 17:34:36/文章来源:https://www.cnblogs.com/ChebyshevTST/p/18673509

  话接上回,上期讲述了在OERV安装HMCL的历程,这期讲讲HMCL的打包。

  Show openEuler:24.09 / HMCL - 开源软件构建与测试。在这个网站里,可以看到有好几个文件,这些都跟HMCL打包有关。 第一个是_service文件,这个文件用于从特定仓库里面拉取代码文件到当前平台,可以看见每个文件都有特定前缀,这些都是拉取过来之后平台自动加的。

  如果想自己动手进行打包,只需要把url的git仓库换掉就行。然后上传_service文件,相应的仓库就拉取过来了。

  此外还可以看到有spec文件和一个压缩包,其它的可以暂时不用关注。spec文件用于编写打包脚本,包括包的编译依赖、运行依赖以及编译行为等。压缩文件是源码包文件,从包对应的官方网站下载。接下来重点关注spec文件的编写过程。

  如果对spec文件的规范不熟悉,可以先看这篇:软件包引入前置基础知识(RPM/SPEC/DNF) | openEuler社区。

  这么简洁,我一开始也没想到。甚至在编译阶段都不需要写任何脚本,只需要在下载阶段进行相应的文件拷贝和处理就行。BuildRequires是编译依赖,主要用于编译过程,在下载阶段需要通过desktop-file-validate以及desktop-file-install对desktop文件处理。而Requires是运行时依赖,如果编译好HMCL,想要安装则需要jdk17的加持,可以看到上期我为了安装jdk17也是费了不少心思。BuildRequires和Requires填写的包都需要obs平台事先编译过,不然平台会显示unresolvable。

  %files阶段其实和%install阶段差不多,%build和%install都是在临时环境中运行的,为了防止破坏系统,到了%files阶段则列出rpm包里的文件有哪些,下载了之后就可以见到这些文件了,这个阶段是指明文件最终的安装路径的。至于要写哪些文件,则需要自己打开压缩包查看,需要对软件包本身比较熟悉(往往很多时候都是看到编译失败再来改改spec文件,一次性完整写好我做不到😭)

  压缩包只有这三个文件,所以上面%files阶段也只有三个文件。

  另外,编写spec文件过程运用到了大量的宏,这样可以保证跨平台性,在openEuler 24.09的仓库当中,HMCL的打包算是比较简洁的了,恰好MC又是一款有趣的游戏,打包也简单。

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

JS-38 对象概述

什么是对象?对象(object)是JavaScript语言的核心概念,也是最重要的数据类型 简单说,对象就是一组“键对值”(key-value)的合集,是一种无序的复合数据集合 var user={ name:zifuchuan, age:13 };对象的每一个键名又称为属性(property),它的“键值”可以是任何数据类型…

第八届工业信息安全技能大赛全国复赛snake_wp

pwn题 snake writeup多少有点不自信,太久没做题,看到题都有点怕怕的这个程序是一个贪食蛇游戏,主程序如下: __int64 __fastcall main_4015A5(__int64 a1, __int64 a2) {int v2; // edxint v3; // ecxint v4; // er8int v5; // er9int v7; // [rsp+Ch] [rbp-4h]sub_400B6D()…

初识Spring -2025/1/12

bean的生命周期初始化容器1.创建对象(内存分配) 2.执行构造方法 3.执行属性注入(set操作) 4.执行bean初始化方法使用bean1.执行业务操作关闭/销毁容器1.执行bean销毁方法(3)关闭容器的两种方式:ConfigurableApplicationContext是ApplicationContext的子类close()方法 registerS…

Linux命令【date】格式化

作用:显示或设定系统的日期与时间 格式化

高效协作与工时优化的结合点在哪里

在信息化高速发展的今天,如何提升团队的协作效率、优化工时管理,已经成为每个企业面临的挑战。在线文档协作工具因其实时共享、多端同步、权限控制等功能,成为现代企业数字化办公的重要一环。本文将分析在线协作工具如何助力办公室团队优化工时管理,从而实现高效办公。一、…

easyexcel doRead bug

public class CarOilingRecordImportVO { /** * 油卡号 */ @ExcelProperty(value = "卡号/客户编号") @NotNull(message = "卡号/客户编号不能为空") private String cardCode; /** * 车牌号 */ @ExcelProperty(value =…

为什么人工智能会导致更大的社会不平等……至少在开始时如此

为什么人工智能会导致更大的社会不平等……至少在开始时如此 一次巨大变革的不对称性来源:作者使用GPT-4o撰写虽然每一次技术革命都创造了比毁掉的工作岗位更多的就业机会,人工智能也不会例外。然而,我们正迎来向那个世界转变的一个极其复杂的阶段。 简单来说,未来几年人工…

(二)C#同一个项目窗体应用程序复制粘贴窗体文件出现各种bug正确解决办法

事情是这样的,如上图所示,因为一个系统里面有好几个子系统,有些子系统之间的“增删查改”又是相通的,于是想通过复制相同的窗体到另外一个文件夹的时候,如果不正确引用“新项目”将会出现以上各种错误。在网上搜索了各种方式,尝试了各种办法,最后找到下面这种亲测有效的…

进度追踪与任务管理:提升团队效率的核心利器

一、高效协作管理工具的定义与重要性 高效协作管理工具是指能够支持团队成员之间顺畅沟通、任务高效分配、进度实时跟踪、工作流程协同的工具。这些工具通常具备任务管理、文件共享、日程安排、团队沟通、进度追踪等功能,旨在帮助团队更好地合作、提高效率。 在快速发展的商业…

3个开源Cron计划任务可视化应用

Cron是Linux、BSD等Unix类型操作系统中的自动任务调度程序。Cron用于按计划的时间间隔(每分钟、每小时、每天、每周或者每月)自动执行脚本或命令。可以自动在后台执行脚本任务,实现对系统必要的维护或者执行一些重复性的操作。 Cron Jobs可以用来做什么? Cron作业用途广泛,…

JS-37 函数

函数是一段可以反复调用的代码块 1、函数的声明 function命令:function命令声明的代码区块,就是一个函数。function命令后米娜是函数名,函数名后面是一对圆括号,里面是传入函数的参数。函数体放在大括号里面。 function print(s){ console.log(s); }2、函数名的提升 Java…