关于软件:龙蜥开发者说构建软件包不是构建开源每一个角落-第-20-期

114次阅读

共计 2242 个字符,预计需要花费 6 分钟才能阅读完成。

「龙蜥开发者说」第 20 期来了!开发者与开源社区相辅相成,互相成就,这些集体在龙蜥社区的应用心得、实际总结和技术成长经验都是贵重的,咱们心愿在这里让更多人看见技术的力量。本期故事,咱们邀请了龙蜥社区开发者任博来分享「构建软件包?不,是构建开源每一个角落」。

欢送浏览上期故事《亲历从基础设施构建到零碎品质保障,龙蜥将来可期》。开发者说系长期流动,对于踊跃投稿、屡次分享的童鞋,咱们还有神秘大礼激励!诚邀开发者们分享实在体验,以文会友、独特学习、一起提高。

本期故事配角:任博,龙蜥社区产品公布 SIG Contributor,2022 龙蜥社区年度优良贡献奖 - 代码之星获得者!杭州博彦信息技术有限公司测试开发工程师,次要参加产品公布 SIG,负责发行版软件包打包及相干工具开发。

自 2021 年 9 月左右退出龙蜥社区后,我就始终在产品公布小组负责软件包构建和一些工具的开发保护工作。截至目前,我不仅参加了龙蜥操作系统版本从 Anolis 8.4 到 Anolis 8.8 的公布、保护,龙芯 LoongArch 架构软件包的构建,也参加建设了像龙蜥钉钉群里答疑机器人“龙蜥小二“这样的我的项目。参加建设龙蜥一年多的工夫以来,我深深的感觉到社区我的项目没有大小之分 每个工作都有它的意义所在

还记得我刚退出社区的时候,正值 Anolis 8.4 软件包的构建 。过后因为还处于“老手阶段”,于是先被调配了几个软件包练手。尽管一度的后果是调配给我的构建问题往往很长时间都得不到解决,对于集体的信念建设很不敌对,但非常感谢过后小组成员对我的容纳和本人始终的保持,我想没有这些我很难走到明天。一人行快,众人行远!龙蜥社区近两年的倒退越来越壮大,参加到社区的小伙伴也会愈发多。 在这样一个凋谢、容纳的社区中,置信大家也会和社区一起成长。

在这里分享一个我应用 koji 的小播种 ,也心愿这个小播种能够帮忙到一些小伙伴。我感觉 koji 的 tag 和继承是很神奇的设计,应用 koji 每次触发构建时会依据构建时抉择的 tag 生成一份 mock 的配置, 因为这个 tag 和它继承的 tag 下 build 是变动的,所以每次生成的这份 mock 配置也可能是不一样的。咱们在构建过程中会碰到各种依赖问题,通过 tag 的继承优先级能够为每个包找到依赖包和适合的版本,包含 module 包的构建,即 MBS(Module Build Service),继承也在其中起着很重要的作用。module 包构建时会为一组软件包对立建设 target,在构建时能够基于此 target 来影响 module 构建过程中的依赖关系。在我刚开始的工作中,对 tag 的继承有很多疑难,也求教了我身边的小伙伴,缓缓的在解决构建依赖的途中对它有了更深的了解。

我在工作中也遇到了其余乏味的问题,在解释小版本升级和无感降级时,对于零碎中 /etc/yum.repos.d/AnolisOS-BaseOS.repo 文件中 $releasever 的值由什么决定产生了疑难。如下:

(图 / Anolis OS-BaseOS.repo 内容)

在搜寻了各种答案后,发现网上大家对于 $releasever 值的解释都不太一样,起初就本人看代码摸索了下 yum 是怎么获取这个值的。最终发现,它的取值跟 system-release(releasever) 等变量的值无关,接着我通过 yum provides‘system-release(releasever)’的返回后果,发现在 anolis-release 这个包中 provides 了该变量,如图:

(图 /system-release(releasever) 查问后果)

(图 / anolis-release.spec)

为了验证,我尝试批改 spec 文件中 system-release(releasever) 的值,通过 mock 构建出 rpm 包装置到零碎中,测试发现 $releasever 变成了我批改的值,从而验证了本人的论断。尽管是个很小的问题,然而记得过后验证胜利后感觉很兴奋。当然以上是我的集体论断,事实也有可能跟我想的不一样,如果有技术同学有不同的意见或倡议,也欢送退出龙蜥社区,和独特酷爱开源的小伙伴们一起探讨交换。

在参加软件包构建工作中,我遇到了各种大大小小的问题,好奇心驱使着我去思考和解决问题,当然傻瓜式不放弃地去查究一个问题也不好。社区中也有很多令人崇拜的“大神”,遇到本人解决不了的问题或者不懂的中央,也能够向他们求教。在参加社区工作这个过程中,我遇到了很多未曾接触的技术栈和常识,同时本人也取得了成长和乐趣,这段经验对我来说也意义粗浅。过来的一年中,我也取得了“2022 龙蜥社区年度优良贡献奖 - 代码之星”奖项。酷爱可抵岁月漫长!这份荣誉对我来说只是终点,而我将持续带着这份酷爱,投身到开源的每个角落。

开源就像是一张有形的大网,将整个互联网都分割了起来,每位开发者都会在这张网上编织属于本人的独家符号。在将来的某一天,你编织的这份独家符号,也将会帮忙千千万万个同样酷爱开源的“你”,因为这些独有的符号也会奏出最美的音响,传承万年。心愿将来能有更多的人退出开源世界,退出龙蜥,让咱们一起打造面向云时代的操作系统。

相干链接地址:

产品公布 SIG 主页:https://openanolis.cn/sig/SIG-Distro

—— 完 ——

为给大家提供更好的内容和服务,龙蜥社区诚挚地邀请大家参加问卷调研,请扫描下方二维码或点此链接填写,咱们将筛选出优质反馈,送出龙蜥周边!

正文完
 0