多个软件包管理器

12

使用多个软件包管理器有什么陷阱?我可以同时使用Redhat的yum和Debian的aptitude吗?

我看到了这篇文章和这张信息图 - 2011 Linux Distro comparison result

我倾向于选择Debian,但快速安装虚拟机后发现内核还未升级至3.2版本。所以我计划转投Archlinux,但信息图显示它在软件包可用性方面评分较低,我想知道是否能够从Fedora或Ubuntu的存储库中安装.deb或.rpm文件。


1
我想知道他是否使用了Linux精神中的GIMP来创建这些图形。 - John Riselvato
1
请投票关闭:有权限的人能否将此移动到正确的论坛?例如unix.stackexchange.com? - Lord Loh.
1
我建议您查看Bedrock Linux - Amint
1个回答

14
短答案是:可以,但真的不应该这样做。
以下是需要考虑跨发行版安装时需要考虑的事项(无特定顺序):
- 依赖地狱
像yum/apt/yast等系统的主要存在目的是为了避免所谓的依赖地狱。通过使用其他系统的软件包,你放弃了已经安装干净的软件包所需的工作。
辅助软件包管理器会想满足自己的依赖关系,并安装一堆已经安装过的东西。这意味着你必须逐个安装软件包,以便不覆盖主要软件包管理器中已经安装的软件包,并避免出现各种问题。
- 它们是否使用相同的软件包管理器?

如果有的话,你甚至可以直接安装它,但你可能会遇到依赖问题或软件包冲突。如果没有提供安装包,则可以使用各种工具提取软件包,并将二进制文件放置在文件系统上(请参阅alien,或者这篇文章关于提取.rpm和.deb文件)。

这样可以将文件放置在系统上,但不能保证它能够开箱即用。通常需要进行一些额外的手动操作。

  • 基本软件包(如glibc)的版本是否相同或非常接近?

如果是这样,那么出现问题的机会就较小。两个发行版之间的基础软件包差异越大,你在运行的发行版中可能会缺少共享库,因为版本不同且文件名与二进制文件正在寻找的内容不匹配。

从技术上讲,你也可以从其他发行版中提取基本依赖项,并将它们放置在文件系统上,但如果你需要编译源代码,这肯定会给你带来痛苦。想象一下gcc会变得多么困惑。

  • 你安装的软件包是否需要特定的内核模块?

我能够清晰地表达这个问题,这是最近从网络主机购买虚拟机时经常遇到的问题:他们提供自己品牌的Xen或Virtuozzo内核,iptables不能直接工作,因为netfilter在内核中,而ABI已经改变。让它再次工作可能会非常麻烦,而且这个问题不仅限于iptables。我的最佳建议是选择那些在其自己的基础软件库中具有所需内核的发行版。

  • 从源代码编译

毫无疑问,如果您深入想要来自其他系统的软件包,您将不得不这样做。由于各种发行版设置了不同的构建环境,您将花费一半的时间来解决路径和其他配置问题。


2
非常感谢 :-) 这是一个非常好的答案。我希望这个问题被移动而不是关闭。 - Lord Loh.

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接