我知道在关于Moblin和Maemo合并的各种论坛和新闻组中,关于这个主题有很多模糊。我想知道stackoverflow-fellows对此的看法。 RPM包装比DEB有什么好处,可以为MeeGo提供更好的选择?
答案 0 :(得分:12)
RPM被指定为Linux Standard Base的包装格式。
...
好吧,我承认,即使对我来说,这也是一个答案。 RPM和DEB包的基本目的没有太大区别;他们每个人都有自己独特的能力,但最终他们都是一包文件和元数据。
答案 1 :(得分:5)
这两种包格式之间存在一些重要的差异,它们不仅仅是技术上的区别。
首先,创建和使用debs的APT(高级包装系统)是一个完整的包装系统,传统上对依赖性跟踪有更好的支持。这很重要,因为在安装软件包时,通常需要安装一些软件包所依赖的其他软件包。如果不这样做,通常您的包裹将无法运行。这种依赖性解析是deb打包格式的优势之一。 rpm对此的支持很少,因此其他工具(yum,zypper)已经长大,试图复制解决该APT的复杂依赖关系。
其次,Debian是一种“参考”平台。它主要称之为“通用操作系统”,但它有一些道理。 Debian的社会契约和自由软件的支持意味着它不受单个实体或公司的控制。这意味着实施是开放的,可以不断改进,并且更容易集成软件。结果是你有一个正式运行在8个芯片架构上的操作系统和非正式运行的其他一些操作系统,因此deb软件包将安装在rpm甚至不能运行的许多不同类型的硬件上。由于Debian是perl编程语言和R统计编程语言之类的参考平台,这意味着你的deb可能能够将它所需的依赖关系轻松集成到你的系统中。 Debian还有许多被其吸引的主题专家,因为他们能够根据自己的兴趣和能力工作,并且不会被迫考虑损益表。
这意味着deb在技术上通常不仅仅是因为它的包规范,而且还因为它插入的开发人员的生态系统。
答案 2 :(得分:3)
我对 Moblin 和 Maemo 一无所知,但我做了很多软件包装。我倾向于选择rpm over deb作为我选择的任何操作系统的文件格式。在 apt 存在rpm之前,我非常喜欢debian而不是redhat派生系统。 yum 几乎与 apt 一样好。当我学习两种包装系统时,我宁愿提供 rpm 而不是 deb 。
(1)对于二进制数据, rpm 使用 cpio , deb 使用 ar 。 cpio 是选择作为默认POSIX归档程序的更多跨平台选择。 ar 是传统的归档。
(2)对于源数据, srpm (一种特殊类型的rpm)使用 cpio 和一个特殊文件来自动化该过程构建 rpm ,并在从源正确构建 rpm ,时生成。另一方面, deb 使用多种压缩系统,因为支持原始源供应商输入格式,可选还有一系列补丁文件,以及3种魔术文件,每种文件具有不同的文件格式。
(3)根据我的经验,制作功能 rpm 包比制作 deb 文件更容易。
(4)在基于 rpm 的系统中创建功能 chroot 是标准的 rpm 命令,而在 deb 中基于系统,它是一个名为 debootstrap 的专用脚本。
只有来自debian阵营的 apt 似乎比redhat阵营的 yum 更有用,所有上游QA工具似乎都来自Redhat Camp。我建议制作一个 rpm 并不是一种神奇的艺术,只需要培训一些人。
(1)存储库构建器: createrepo 是一个易于使用和理解的工具。 mini-dinstall , dpkg-scanpackages 或 dak(Debian Archive Kit)或 mini-dak 或 reprepro 或 debarchiver 或 debpool 或 DebMarshal 或 apt-ftparchive 或 dpkg-scansources 要么复杂,要么记录不清,或者缺少一个关键特征,有时候都是三个。
(2)“Source deb”不是单个文件,如 srpm 是单个文件,因此需要使用特殊工具来移动它们。
(3)在文档中每周的每一天构建服务器: Koji 击败 pbuilder 。必须说, pbuilder 很安静。
我很惊讶没有明确的最佳工具来存在基于 deb 的回购。我尝试的那些人很穷。没有我尝试过的几乎和 createrepo 一样好。 ( reprepro 几乎与来自rpm的 createrepo 一样好,但它不允许在单个存储库中允许同一个软件包的多个版本,因此将其排除在大多数连续部署系统之外。 / p>
我认为选择 rpm 工具链对他们来说更好。 Just as the interesting link by Charles Stewart声明了重要的工具。
答案 3 :(得分:1)
决定放弃针对Meego和其他类似机构的RPM的DEB纯粹是政治和商业。技术意见被忽略了。你的问题(作为问题)在一般情况下是有效的,但在Meego案例中,它似乎是为了证明之后已经完成的步骤。尽管如此,我们永远不会知道技术优点和反对 - Meego现在已经采用了不同的方式,其中deb-vs-rpm竞争被排除在外。
答案 4 :(得分:1)
此时,我想这应该是一个Linux& Unix问题。
Meego从APT(即.deb)切换到RPM是不正确的。相反,Meego是APT使用Maemo和使用RPM的Moblin的合并。 Robin Burchill在去年2月的博客中表示 - http://blog.rburchell.com/2010/02/meego-rpm-vs-deb-debate.html - 因为Moblin在Meego中决定了更多的架构选择,所以更容易使用RPM,而且重构Maemo更容易。