在OERV也可以玩MC(下)
话接上回,上期讲述了在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又是一款有趣的游戏,打包也简单。
在OERV也可以玩MC(下)的更多相关文章
- 玩了下opencv的aruco(python版)
简单的玩了下opencv里头的aruco,用的手机相机,手机装了个 ip摄像头,这样视频就可以传到电脑上了. 首先是标定,我没打印chessboard,直接在电脑屏幕上显示,拍了17张,大概如下: 又 ...
- 最近玩了下linux下的lampp注意一些使用
最近玩了下linux下的lampp注意一些使用 1 配置文件 /opt/lampp/etc 2 一些命令 mysql命令 /opt/lampp/bin/mysql php命令 /opt/lampp/b ...
- 一步步玩pcDuino3--mmc下的裸机流水灯
第一部分是玩pcduino3下的裸机.这个过程能够让我们更好的理解嵌入式系统,熟悉我们使用的这个平台. 首先介绍下开发环境: 虚拟机:VMware® Workstati ...
- 只是想虐下春丽,一不当心玩了下serverless...感觉还不错哟!
事情是这样的-- 前天下午天太热,我在家看电视,换台突然就看到了正在播<西游记>,窗外蝉声特别响,我一下就有种穿越回小学暑假的感觉.当时,我就特别想把我那台小霸王翻出来,玩两盘街霸--虐一 ...
- 玩了下STM8单片机
偶然的机会,发现STM8真是又便宜又好用啊,哈哈! 买了一个STM8S103F3的小板子,再加一个ST-Link调试器,总共才35块钱!对于我们这种玩习惯了动辄上千上万的FPGA开发板的人来说,就是白 ...
- 一步步玩pcDuino3--uboot下的ping,加入命令能够接受来自host的ping
uboot是一个很优秀的开源项目.不只能够学习bootloader.嵌入式,各种总线协议. 还能够了解网络协议栈.在嵌入式开发中,常常使用uboot的tftp和nfs来加快开发的效率.那么在tftp能 ...
- 一步步玩pcDuino3--mmc下的bootloader
pcDuino3下支持mmc启动.官方的Uboot是採用SPL框架实现的,由于内部的SRAM空间达到32K,我们全然能够在这32K空间内编写一个完整可用小巧的bootloader来完毕引导Linux ...
- MinHook测试与分析(x86下 E8,E9,EB,CALL指令测试,且逆推测试微软热补丁)
依稀记得第一次接触Hook的概念是在周伟民先生的书中-><<多任务下的数据结构与算法>>,当时觉得Hook的本质就是拦截,就算到现在也是如此认为. 本篇文章是在x86下测 ...
- [原创]MinHook测试与分析(x64下 E9,EB,CALL指令测试,且逆推测试微软热补丁)
依稀记得第一次接触Hook的概念是在周伟民先生的书中-><<多任务下的数据结构与算法>>,当时觉得Hook很奇妙,有机会要学习到,正好近段日子找来了MiniHook,就一 ...
- 用Python来玩微信跳一跳
微信2017年12月28日发布了新版本,在小程序里面有一个跳一跳小游戏,试着点一点玩了下.第二天刚好在一篇技术公众号中,看到有大神用Python代码计算出按压时间,向手机发送android adb命令 ...
随机推荐
- 根据docker镜像反推dockerfile
Dockerfile 是一个文本文件,其中包含我们为了构建 Docker 镜像而手动执行的所有命令. Docker 可以从 Dockerfile 中读取指令来自动构建镜像.我们可以使用 docker ...
- IPC-7711/7721D-中文版 CN 2024 电子组件的返工、修改和维修标准
IPC-7711D-7721D-中文版 CN 2024 电子组件的返工.修改和维修标准 链接:https://pan.baidu.com/s/1r5dm9vsj4-Oj2Jw0HgeTHw?pwd=1 ...
- php yield使用
在循环一个大数组的时候yield非常好用能节省内存. 比如有个大文件需要读取并处理,如果全部读出来太耗费内存,就可以这样做 <?php function getRows($file) { $ha ...
- vue标签页tabs和codemirror一起使用
vue标签页tabs和codemirror一起使用时, codemirror 会变形 要注意tab切换时,codemirror必须刷新配置 <el-tabs v-model="conf ...
- java——棋牌类游戏五子棋(singlewzq1.0)之二
package basegame; import java.awt.Cursor; import java.awt.Graphics; import java.awt.Image; import ja ...
- mysql5.7之JSON数据类型
1.json对象 1.1.方法 使用对象操作的方法进行查询:字段->'$.json属性' 使用函数进行查询:json_extract(字段, '$.json属性') 获取JSON数组/对象长度: ...
- Tornado框架之应用安全(四)
知识点 Cookie操作 安全Cookie 跨站请求伪造原理 XSRF保护 模板 请求体 HTTP报文头 用户验证 authenticated装饰器 get_current_user()方法 logi ...
- 2023-05 多校联合训练 HZNU站
我想要原石 然而,由于提瓦特大陆实在是太大了,游戏中设置了许多传送锚点.众所周知,每个传送锚点附近都有若干个原石(其实并没有),曾经有一位丰富经验的旅行者开辟了 \(n−1\) 条路和 \(n\) 个 ...
- uni-app 简单上手
1.前言 uni-app 是一个使用 Vue.js 开发所有前端应用的框架,开发者编写一套代码,可发布到iOS.Android.Web(响应式).以及各种小程序(微信/支付宝/百度/头条/QQ/钉钉/ ...
- E. Photoshoot for Gorillas
题意 给定一个整数 \(T\),代表共有\(T\)组测试用例,对于每组测试用例: 给定四个整数 \(n,m,k和w(1 \leq n,m \leq 2 * 10^5, 1 \leq w \leq n ...