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