LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 921|回复: 4

rpm 和 deb 哪种格式好?rpm 究竟有没有重要的缺陷?

[复制链接]
发表于 2005-4-19 16:11:58 | 显示全部楼层 |阅读模式
想弄明白 spec 中几个命令的含义, 没地方查,搜了一天, 找到了各种各样的文章, 偏偏没有我想要的。在 linuxfans 看到的 yongq 的话,觉得很有道理,并且还想知道得更多一点。 linuxsir 的兄弟们不喜欢贴 spec, 不像 linuxfans 上面 KDE 发了好多有关的帖子。哪个论坛会有人去贴 deb rules 呢?



这些差异的出现或许有其偶然因素, 不过应该都有各自的理由, 我本来也嫌 deb 的 source package 包含太多的文件而感到不可思议:"搞这么多文件, 别人复制起来可真是麻烦!", 但事实并非我原先想象的那么简单, Debian 的开发者分布于全球各处, 合计有上千人, 他们都需要把制作好的 source 和 binary 包送到 Debian 的那一两台 server 上, 有些人的网速很慢, 传一次不容易, 如果你每次为一个小修改而上传整个 source 包就很浪费事件了, 这样 deb 的 source package 就会以一个 .orig.tar.gz 和 一些 patch 的形式出现, 当每次 revision 后只要把 patch 部分上传就行了.

再看 deb 的制作, 前面说过 deb 需要写很多个小文件, 不象 rpm 只要写一个 .spec 即可. rpm 格式的 build 基本上由 rpm 这一个程序主导(好像现在又有了 rpmbuild), 而 deb 不同, deb 主要依靠一个名为 rules(由包维护者自己提供) 的可执行文件, 它的参数是一个目标的名字, 比如 build, configure, clean 和 binary 等. 你可能想不到的是: 通常这个 rules 文件是一个 Makefile, deb 通过 make 对目标的依赖性来方便地控制 build 的流程(这给调试节省了宝贵的时间). 而且由于编写这个文件的人是你自己, 所以控制权完全在你自己手里. 在此, rpm 和 deb 的设计体现出很不相同的哲学.

Debian 是一个复杂而严谨的系统, 为了规范设计, Debian 提供了很多 Policy http://www.debian.org/devel/. 我没见过哪个 RPM based 的系统提供这些东西, 当然这跟包格式本身并不相干, 不过在 deb 包在制作出来的时候, 有相关的程序会被调用来检测 deb 包有那些不符合 Policy 之处.

另外, 你要是做过 deb 的话, 会发现 Debian 里有 tons of 相关开发工具, 如果你熟悉了这些工具, 制作 deb 就变得简单多了. 当然, 要做一个高质量的完全符合 Policy 的 deb, 你还需要好好下点工夫. 我想, 其实最对一条对做任何事情都成立.

Makefile 里面的 shell 脚本难写
spec 里面的 shell 脚本不容易搞清当前的状况
rpm 也可以只传递 spec 和 patch, 而不必传递 source
deb 是怎么处理有很多很多  patch 的情况呢?
rpm 的宏与 debian 的不相上下吧, 都很难记,但是都会自动调用的
debian 的 policy 是因为控制过于分散而导致的,众所周知 民主的效率不是很高
发表于 2005-4-19 16:22:48 | 显示全部楼层
rpm本身也有rpmlint来检查spec或srpm是否符合规范。Debian认为自己的deb很好,但事实上除了Debian以外,没有其它发行版使用deb作为包格式。

实际上,rpm跟deb没有太多的区别。只要制作人的思路清楚,用什么格式都是其次的。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2005-4-19 16:54:13 | 显示全部楼层
觉得不是那么简单
另外,我要找的东西在 ccidnet 的 《精通 RPM》连载中找到了,很不错的文章
但是还是不知道 $RPM_BUILD_ROOT 是从哪儿定义的
回复 支持 反对

使用道具 举报

发表于 2005-4-19 17:01:36 | 显示全部楼层
Post by bbbush
还是不知道 $RPM_BUILD_ROOT 是从哪儿定义的

这个好象是自己定义的吧!?
如果不定义直接拿来用也没关系,估计是默认的值!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2005-4-19 18:01:04 | 显示全部楼层
想研究的话, 转到这个版会被淹掉的
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表