「龙蜥开发者说」第 16 期来了!开发者与开源社区相辅相成,相互成就,这些个人在龙蜥社区的使用心得、实践总结和技术成长经历都是宝贵的,我们希望在这里让更多人看见技术的力量。本期故事,我们邀请了龙蜥社区开发者 Funda Wang 来分享「 为爱发电!当一个龙蜥社区打包 Contributor 是怎样的体验?」。
欢迎阅读上期故事《6 年前打开的开源“潘多拉盲盒”,如今都解了哪些未知数》。开发者说系长期活动,对于积极投稿、多次分享的童鞋,我们还有神秘大礼鼓励!诚邀开发者们分享真实体验,以文会友、共同学习、一起进步。
本期故事主角:Funda Wang,龙蜥社区贡献者,在社区进行 RPM 打包工作,帮助 Anolis OS 23 成为真正意义上的自包含原生社区发行版。
和大多数开发者一样,我也是从大学的时候开始接触 Linux 及其他开源软件的。在我大四的时候,一边做着大量开源软件的翻译工作,一边搞着我的毕业课题“基于 Delphi 的 Gettext 实现”。不用搜索就知道这两个名词是什么意思的人,大多已经实现了财务自由,我最终只是选择了去一所与专业关系不大的学校工作。
在学校的工作,又不具体参与教学,下班之后的自由度很高。做开源软件翻译的时间长了,就会和软件开发者的交流频繁起来。那个时候我才真正体会到,软件开发者大多数时候并不直接接触用户,中间有很多人来帮助软件从代码交付到客户。而将源代码编译打包成为二进制包,这个工作在开源软件界已经细分成为了一个专门的工种。自此之后,我的工作兴趣和重心逐渐转移到了二进制包的打包,并先后在两个 Linux 发行版持续进行了五六年的打包工作。
RPM 软件打包,主要内容是编写一个 SPEC 文件,将软件的源代码编译成二进制文件,然后交付给软件仓库。这个过程说起来简单,其实涉及的内容很多很杂。绝大多数时候,我们对于软件内部一无所知,这和技术 SIG(Special Interest Group)还是有区别的。我经手的软件包,少说也有二三百个,构建系统也是多种多样,不可能全部都明白是怎么回事。对于打包工程师来说,我只要知道软件开发者的编译文档是怎么写的,然后根据我的理解,将其转化为正确的 SPEC 文件,编译安装成功就可以了。当然,在打包过程中,我也发现开发者在构建系统方面的理解和使用水平参差不齐,和他们反复沟通就成为了不可避免的事情,毕竟我们需要共同努力协作才能给社区交付高质量的软件包。
2022 年,随着国内 Linux 社区的再次兴起,我沉寂已久的心又激动起来。龙蜥社区背靠多家国内外主流的操作系统厂商、芯片厂商、云计算公司,有望成为 Linux 社区的标杆。在参与过程中,我凭借多年的打包经验,迅速加入到 Anolis OS 23 的构建工作中来。社区里现有的小伙伴,可能年纪很轻,尤其对打包缺乏经验,那么我们大家就互相帮助,解决问题。
2023 年寒假期间,我按学校要求减少外出,在家有很多时间更新软件包,龙蜥社区的全职工程师利用春节休假也和我一起频繁审核仓库的合入请求,我们经常工作到深夜。前几天,我们几个核心打包骨干,在 OpenSSL、OpenSSH 等发行版核心加密组件的打包管理上,进行了多次富有成效的讨论,促使打包工作更加有序的进行下去。规划中的 Anolis OS 23 是完全自包含的原生 Linux 发行版,所以在打包工作上需要大量的人力和精力投入。
也许有些人会想问,志愿者与全职工程师有什么区别。我觉得最重要的区别是,志愿者真的是为爱发电。如果我累积的知识能够为一个有用的项目做出贡献,我的内心是有强烈满足感的,根本不会在乎物质上的报酬。
人人参与开源,不是一句口号,而是一种行动。或者更直白的说,反正大多数人都不懂打包,你如果懂了,你就是这个领域的大牛。最近很多小伙伴积极参与「人人都可以参与开源」活动中的随机试炼,发现了打包的很多问题,我也希望其中有一些人能够从发现问题变成参与解决问题,共同推动社区向更好的目标发展。
注*因作者自身工作情况限制,无法披露作者个人信息。作者是以个人身份参与龙蜥社区,并做出贡献。
相关链接地址:
龙蜥社区 SIG 主页:
「人人都可以参与开源」活动链接:
—— 完 ——
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。