依赖一个 RPM 来制作新的 RPM
项目中有这样一个场景:A 软件通过 rpm 包发布,B 软件严重依赖 A 软件,但在它的基础上有一些业务逻辑的添加和修改。A 软件是公司一个历史悠久的产品,且保持频繁的更新,B 软件是我在维护。
在开发的时候,很简单,先把某一个稳定版本的 A 软件安装到开发机上,然后直接进行业务逻辑的开发就可以了。但在发布的时候肯定就不能这么做了,你很难要求运维先去发布服务器上下载一个 A 软件的 rpm 包,安装或更新完后,再去发布服务器上下载一个 B 软件的业务逻辑包,再进行相关的配置。所以,我需要做出一个 B 软件的独立的 rpm 包,用这个 rpm 包安装或更新后,直接能进行相关的配置。
再来澄清一下需求:B 软件既要严重依赖 A 软件,但要在 A 软件上添加很多业务逻辑。但要求在发布的时候脱离对 A 软件 rpm 包的依赖。
最简单的方法,当然是先把 A 软件的代码库做一个分支,或者拷贝出一个新的代码库,在上面进行开发,将 B 软件与 A 软件独立开来。这样发布的时候当然就是一个独立的包了。但如前所属,A 软件更新频繁,生命力旺盛,我可不想时时来在同步上花时间。