页面

新浪微博

过去的日志

音乐

Here is the Music Player. You need to installl flash player to show this cool thing!

(转载)RPM建包原理

2010-2-20 00:57 copy from  http://www.linuxfans.org/bbs/thread-86980-1-1.html
rpm 建包原理(20090829 更新)

为什么要打包?
制作 rpm 不仅仅是打包,更可以解决菜单创建、打补钉、完成大量预配置、与其他软件包互动等操作。使用源代码安装要求用户了解基本的编译过程、能够应付各种不能编译 的意外、必须自己完成抽象的配置、甚至懂得软件开发,能够自己打补钉,……对非计算机专业的用户而言简直就是天方夜谭。这是把软件开发的最后一步抛给了用 户,作为发行版,这是极不负责任的!也是不现实的,除非用 lfs,但那是一本菜谱,不是真正的发行版。

软件作者发布源代码是正确的,负责的作者一般都同时提供 rpm 和 deb 包以及它们的源代码包。除非他们不会制作。愿意使用什么,那是个人的自由,但对外就不能只想到自己。GNU 精神是一种公益精神,没有奉献精神,在自由软件领域是要遭唾弃的!

直接使用其他发行版的 rpm 常常是不行的。不知道大家看没看“恼人的依赖关系”这个帖子。可以在技术支持区搜索一下。任何两个发行版本在二进制上都是不能兼容的!他们实际是不同的操 作系统。不仅使用的库文件不同,配置也迥异。特别是同一个发行版的不同版本更不兼容。任何包都必须在本地重新编译,而且不一定通得过,因为还有 spec 宏的兼容问题!如果要在别的发行版上使用,必须用源码编译,这是常识。考虑文件布局和配置问题,有时直接编译也是不够的,必须修改 spec,甚至自己打补丁。

如何创建 rpm 包?
rpm 建包原理其实不复杂。写 spec 相当于一种脚本编程,主要是在 spec 里提供一些软件相关信息,以及安装、卸载前后要执行的脚本,然后展开压缩的源代码包,打上补丁,执行编译,然后利用 make install 可以重新指定安装目的地的特性,把编译好的文件安装到指定的虚拟根目录下的指定位置里,一般是虚拟的 /usr 里,然后把这些目录、信息和脚本打成一个压缩包,即 rpm 包。同时可选地生成源码包 src.rpm。当然有很多具体细节问题。您应该首先阅读软件的 readme 和 INSTALL 文件。

打包原则
1. 任何人都应该在系统现有 src.rpm [...]

看来,MagicLinux还是我的最佳选择!

这么多年,来来回回地用了好多版本德鄂Linux,但是永远没有MagicLinux用着这么顺手。可能有的时候会出现一些问题,但是总的来说,无论从软件准备还是中文支持上面来说,还没有任何一个版本可以比得过MagicLinux.

最近看到了深入的Deepin Linux和雨林木风的YLMF Linux,看到他们从原来的“地下活动”转投开源,很是高兴,但是唯一遗憾的是两个团队都采用的是现有发行版改造的方法。MagicLinux最开始是基于Fedora制作的,不过现在已经完全成为了一个独立的版本了。最后,还是希望那两个组织能够像Magic团队一样做出一个令人骄傲的China Linux!

MagicLinux 2.5 RC2 KDE4 ver.

有QQ for linux!

http://files.blogbus.com/skyerce.blogbus.com/files/s/12174127550.jpg