8. 如果需要描述某个技术过程,那么语言一定要自信张扬,潇洒飘逸。能用简称泽不用全称,能用术语就不用正常语言,能用英语就不用中文。
例(改编自真实对话):
师妹:假如我就是想用 MySQL community,为了避免类似 Fedora 那样其他很多软件包依赖 MariaDB Client 的情况,应该如何弄?
师兄:你问这问题在打包上非常好实现。MariaDB 和 MySQL Community 的 spec 里都添加一条 Provides: mysql,并保持两者 devel library 包名都为 libmysqld-devel,然后在所有要用 mysql 数据格式的其它软件包里都直接 BuildRequires: libmysqld-devel。接下来如果两者在一个 repo 里,编译可能会出现提示说有两个同样的软件包提供了相同的 so,你必须手选一个。而两者包名相同,你手选不了。OBS 是使用 %define prefered 来控制服务器的,MariaDB 是 1,Community 是 0,所以优先用 MariaDB 来编。Koji 如果想实现的话可以把 community 放在另一个 repo 比如 non-free 里面,做 DVD 的时候确保把两者都灌进去就行。至于用户就完全分辨不出来了,因为 zypper 的机制是优先使用已有 lib 和已有 lib 的 devel 包,除非版本号大或者你手装 community 的 client 才会被替换(一般不架设 LAMP 不需要 server 只要 client,基本都已经装好了你也注意不到)。而 yum 应该可以人为的把 release 号弄小一号实现优先安装 MariaDB 提供的 libmysqld-devel。另外 Provides 的作用就是说你可以 yum install mysql-client。会提示你选一还是选二,你连名字都不用记住。