使用多个包管理器是否存在缺陷?我可以同时使用Redhat的yum和Debian的才能吗?
我遇到了this article这个信息图 -
我倾向于选择Debian,但是快速的VM安装表明内核在稳定的回购中尚未升级到3.2。所以我打算转移到Archlinux,但是信息图表对软件包可用性的评价很低,我想知道我是否可以从Fedora或Ubuntu存储库安装.deb或.rpm文件。
答案 0 :(得分:8)
简短的回答是,是的,你可以,但你真的不应该。
以下是交叉分发安装时要考虑的事项列表(无特定顺序):
首先存在yum / apt / yast之类的主要原因是为了避免所谓的dependency hell。通过使用来自其他系统的软件包,您可以放弃已经放入软件包中的工作。
辅助包管理器希望满足自己的依赖关系,并安装一堆已安装的东西。这意味着您必须一次安装一个软件包,这样就不会覆盖主软件包管理器中已安装的软件包,并且会出现各种问题。
如果他们这样做,您甚至可以直接安装它,但您可能会遇到依赖性问题或包冲突。如果他们不这样做,你可以用各种工具提取包,然后将二进制文件放到文件系统上(看看外星人,或this post about extracting .rpm and .deb files)。
这将为您提供系统上的文件,但不保证它可以开箱即用。可能(并且通常是)需要一些额外的手动狩猎。
如果是这样,问题发生的可能性就会降低。两个发行版的基础软件包之间的进一步区别,您运行的发行版中缺少共享库的可能性越大,因为版本不同且文件名与二进制文件不匹配寻找。
从技术上讲,您也可以从其他发行版中提取基本依赖项,并将它们放在文件系统上,但如果您需要从源代码编译内容,那肯定会让您感到痛苦。想象一下gcc会有多混乱。
我能说清楚这一点的最好方法是我现在看到的从网络主机购买虚拟机的常见问题;你有自己的xen或virtuozzo内核品牌,iptables不能直接工作,因为netfilter在内核中并且ABI已经改变了。让它再次运行可能会让人头疼,这个问题不仅限于iptables。我最好的建议是在自己的基础存储库中选择包含所需内核的发行版。
毫无疑问,如果你想深入了解其他系统的软件包,你就必须这样做。由于各种发行版以不同的方式设置其构建环境,因此您将花费一半的时间来计算路径和其他配置问题。