【问题标题】:Multiple package manager [closed]多个包管理器[关闭]
【发布时间】:2012-04-23 18:53:02
【问题描述】:

使用多个包管理器是否存在缺陷?可以同时使用 Redhat 的 yum 和 Debian 的 aptitude 吗?

我遇到了this article 和这张信息图 -

我倾向于选择 Debian,但快速 VM 安装显示内核尚未在稳定存储库中升级到 3.2。所以我计划迁移到 Archlinux,但信息图表认为它的软件包可用性很低,我想知道我是否可以从 Fedora 或 Ubuntu 存储库安装 .deb 或 .rpm 文件。

【问题讨论】:

  • 我想知道他是不是本着 linux 的精神使用 gimp 来创建这些图形。
  • 投票结束:有权威的人能把这个移到正确的论坛吗? unix.stackexchange.com ?
  • 我建议你看看Bedrock Linux

标签: linux yum package-managers aptitude distro


【解决方案1】:

简短的回答是,是的,你可以,但你真的不应该

以下是交叉分发安装时要考虑的事项列表(无特定顺序):

  • 依赖地狱

yum/apt/yast 之类的东西首先存在的主要原因是避免所谓的dependency hell。通过使用来自其他系统的软件包,您将失去已投入软件包中的工作,无法进行干净安装。

二级包管理器会想要满足它自己的依赖,并安装一堆已经安装的东西。这意味着您必须一次安装一个包,这样您就不会从主包管理器中覆盖已安装的包,并遇到各种问题。

  • 他们使用相同的包管理器吗?

如果他们这样做,您甚至可以直接安装它,但您可能会遇到依赖问题或包冲突。如果没有,您可以使用各种工具提取软件包,然后将二进制文件放到文件系统中(看看外星人,或this post about extracting .rpm and .deb files)。

这将为您获取系统上的文件,但不能保证它会开箱即用。可能(并且通常)需要一些额外的手动搜索。

  • glibc 等基础包的版本是否相同或非常接近?

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

从技术上讲,您还可以从其他发行版中提取基本依赖项并将它们也放在文件系统上,但是如果您需要从源代码编译东西,那肯定会给您带来痛苦。想象一下 gcc 会有多混乱。

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

我能表达的最佳方式是我最近从网络主机购买虚拟机时看到的一个常见问题;您获得了他们自己品牌的 xen 或 virtuozzo 内核,而 iptables 无法完全正常工作,因为 netfilter 在内核中并且 ABI 已更改。让它再次工作可能非常令人头疼,而且这个问题不仅限于 iptables。我最好的建议是选择在其自己的基础存储库中具有所需内核的发行版。

  • 从源代码编译

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

【讨论】:

  • 非常感谢 :-) 这是一个非常好的答案。我希望这个问题已经被移动而不是被关闭。
猜你喜欢
  • 2022-01-09
  • 1970-01-01
  • 2010-12-16
  • 1970-01-01
  • 2018-07-07
  • 2016-11-29
  • 1970-01-01
  • 2014-01-15
  • 2011-10-27
相关资源
最近更新 更多