Rpm 打包原理详解 为什么要打包
制作 rpm 不仅仅是打包,更可以解决菜单创建、打补钉、完成大量预配置、与其他软件包互动等操作
使用源代码安装要求用户了解基本的编译过程、能够应付各种不能编译的意外、必须自己完成抽象的配置、甚至懂得软件开发,能够自己打补钉,„„对非计算机专业的用户而言简直就是天方夜谭
这是把软件开发的最后一步抛给了用户,作为发行版,这是极不负责任的
也是不现实的,除非用 lfs,但那是一本菜谱,不是真正的发行版
软件作者发布源代码是正确的,负责的作者一般都同时提供 rpm 和 deb 包以及它们的源代码包
除非他们不会制作
愿意使用什么,那是个人的自由,但对外就不能只想到自己
GNU 精神是一种公益精神,没有奉献精神,在自由软件领域是要遭唾弃的
直接使用其他发行版的 rpm 常常是不行的
不知道大家看没看“恼人的依赖关系”这个帖子
可以在技术支持区搜索一下
任何两个发行版本在二进制上都是不能兼容的
他们实际是不同的操作系统
不仅使用的库文件不同,配置也迥异
特别是同一个发行版的不同版本更不兼容
任何包都必须在本地重新编译,而且不一定通得过,因为还有 spec 宏的兼容问题
如果要在别的发行版上使用,必须用源码编译,这是常识
考虑文件布局和配置问题,有时直接编译也是不够的,必须修改 spec,甚至自己打补丁
如何创建 rpm 包
rpm 建包原理其实不复杂
写 spec 相当于一种脚本编程,主要是在 spec 里提供一些软件相关信息,以及安装、卸载前后要执行的脚本,然后展开压缩的源代码包,打上补丁,执行编译,然后利用 make install 可以重新指定安装目的地的特性,把编译好的文件安装到指定的虚拟根目录下的指定位置里,一般是虚拟的 /u sr 里,然后把这些目录、信息和脚本打成一个压缩包,即 rpm 包
同时可选地生成源码包 src