openSUSE:New maintainer guide

跳转至: 导航, 搜索
本文介绍了成为一个合格的 openSUSE 维护者所需的一些必备品德、技能以及快速取得技能的途径。本文目前的重点在开发方面,后续可能会加入诸如翻译、推广方面的内容。:-)

品德

勤劳、勇敢、负责

好奇却又不贪心

热情与奉献

能力

要成为一个合格的 openSUSE 维护者,你需要储备一些知识。大体可以分为以下方面:

注意: 这里所谈的能力其实是均衡发展的,既不是按部就班,也不是在某个方面一定要做到最棒。比如并不是说你英文要先过专八才能想其它的,也并不是说你命令行脚本一定要会写函数写 loop 才可以开始学打包。

英文

英文是程序员的工作语言。当然也有一些易语言、草泥马语言是用中文或拼音的,但并不入流,也不能成为 openSUSE 的组成部分。因为一门编程语言若想被某个 Linux 发行版所采纳,那么它至少要有一个对应的开源编译器,而它们没有。

阁下的英文至少要能看懂提示。你甚至可以看不懂 manpage 中大段的英文文档,但你至少要能够在一台有网的电脑上配合 google translate 读懂简单的文章。

大局观

没有人能面面俱到。但你至少应该有一个宏观的框架,这个框架决定了你在 openSUSE 发行版开发中所处的位置。比如你至少要了解两点:Linux 的引导流程、Linux 中什么属于底层而什么又属于上层。同时知道 openSUSE 的选择是什么,比如我的着眼点在于桌面环境和应用程序,那么底层除了桌面环境运行必须的库(library),其它我根本不会去花时间了解,比如 openssl 和 gnutls 分支的 curl 有什么区别。但同时我对底层又需要有一个基本面的了解,比如 openSUSE 使用的是 systemd 还是 sysvinit?我们使用的是 systemd,那么在打包应用程序时我就不会去费太多心思编写 sysvinit 启动脚本,同时在缺少 systemd 服务的时候我又会去尽力补全它。再比如 openSUSE 的输入法自启动使用的是 xinput 还是 xim?使用的是 xim,那么我就不会提供 xinputrc 配置文件。

打包知识

这是绝大部分 openSUSE 开发者应知应会的技能。即便你是一个 YaST 开发者,你在必要的时候也还是要打包的。除非你是一个网站前端,但 openSUSE 的基础设施其实是由 SUSE 来维护的,当然并不是说前端无用,只是前端参与开发的其实是一些围绕社区的工具比如 OBS,而非系统本身。

由于打包是我比较专精的方面,所以各方面的知识库储备还算比较丰富。基本上你先要:

  • 找一个自己喜欢的文本编辑器(图形界面和命令行都要有)和一个自己喜欢的终端。
  • 看视频上手
  • 看打包专题和 OBS 专题中精选的几篇文章
  • 大量实践。通过提交合并请求、论坛提问和阅读 wiki 文档来提高自己。

由于 openSUSE 系统开发的 60% 都在打包,所以其它技能的需求和获取也完全围绕着它来进行。

终端文本编辑器的使用

vi 是必须要会的,即使你选择的可能是 nano。因为多数 Linux 发行版默认的都是 vi。

你可以通过一个小游戏来学习它:http://vim-adventures.com/

也可以看一下论坛中的小教程:https://forum.suse.org.cn/viewtopic.php?f=28&t=662

编译流程

注意这里说的并不是计算机专业那本厚厚的《编译原理》,而是你要了解 Linux 下常见编程语言写成的软件的安装方式,比如纯 C 可能是 configure && make && make install,CPP/QT 可能是 cmake/qmake,python 可能是 python setup.py install 等。不然打包无从谈起。

该技能的获取也不是死记硬背的,而是通过打包实践、参考别人同类软件的 specfile 和上游提供的安装说明来取得的。

常见编程语言的排错

比如 rpm 少了依赖啊,C 语言少了头文件啊等等。这需要你有强烈的好奇心,而不再是像一个用户那样:哦,装/编不了,算了。而是自发地想要去了解为什么自己下了一番功夫写出的东西过不了编译,去主动地阅读 log,从而识别出 error 是什么,去 google/请教解决方案,并且在下次不会再犯同样的错误的同时学会举一反三去解决类似的错误。当然这个方面已经会编程的人会容易得多,但不会编程的人也不是完全做不了,冲分快慢而已。

常见编程语言的学习资料见参考资料

命令行脚本

参考资料