使用多个软件包管理器有什么陷阱?我可以同时使用Redhat的yum和Debian的aptitude吗?
我看到了这篇文章和这张信息图 -
我倾向于选择Debian,但快速安装虚拟机后发现内核还未升级至3.2版本。所以我计划转投Archlinux,但信息图显示它在软件包可用性方面评分较低,我想知道是否能够从Fedora或Ubuntu的存储库中安装.deb或.rpm文件。
使用多个软件包管理器有什么陷阱?我可以同时使用Redhat的yum和Debian的aptitude吗?
我看到了这篇文章和这张信息图 -
我倾向于选择Debian,但快速安装虚拟机后发现内核还未升级至3.2版本。所以我计划转投Archlinux,但信息图显示它在软件包可用性方面评分较低,我想知道是否能够从Fedora或Ubuntu的存储库中安装.deb或.rpm文件。
如果有的话,你甚至可以直接安装它,但你可能会遇到依赖问题或软件包冲突。如果没有提供安装包,则可以使用各种工具提取软件包,并将二进制文件放置在文件系统上(请参阅alien,或者这篇文章关于提取.rpm和.deb文件)。
这样可以将文件放置在系统上,但不能保证它能够开箱即用。通常需要进行一些额外的手动操作。
如果是这样,那么出现问题的机会就较小。两个发行版之间的基础软件包差异越大,你在运行的发行版中可能会缺少共享库,因为版本不同且文件名与二进制文件正在寻找的内容不匹配。
从技术上讲,你也可以从其他发行版中提取基本依赖项,并将它们放置在文件系统上,但如果你需要编译源代码,这肯定会给你带来痛苦。想象一下gcc会变得多么困惑。
我能够清晰地表达这个问题,这是最近从网络主机购买虚拟机时经常遇到的问题:他们提供自己品牌的Xen或Virtuozzo内核,iptables不能直接工作,因为netfilter在内核中,而ABI已经改变。让它再次工作可能会非常麻烦,而且这个问题不仅限于iptables。我的最佳建议是选择那些在其自己的基础软件库中具有所需内核的发行版。
毫无疑问,如果您深入想要来自其他系统的软件包,您将不得不这样做。由于各种发行版设置了不同的构建环境,您将花费一半的时间来解决路径和其他配置问题。