使用多个包管理器有危险吗

使用多个包管理器有危险吗

使用其他发行版的包管理器安装程序会导致问题吗?例如:在基于 Debian 的系统上安装 rpm 软件包,或在 Red Hat 上安装 pacman 软件包。

我使用 parrot sec 并且安装了 rpm 和 snaps 包管理器。但我主要使用 apt,因为它是默认的包管理器,但 apt 作为一个出色的包管理器并不包含所有程序。

那么从其他基于发行版的包管理器安装程序会导致问题吗?

答案1

破坏某个发行版的最佳方法之一是尝试无缝地使用另一个发行版的软件包。仅仅因为 Parrotapt和 Debian都有,apt并不意味着它们能够很好地协同工作。不同的发行版可能会对软件包进行不同的版本编号,您可能会发现安装 Debian 软件包会从 Parrot 中引入任意数量的不同编号的依赖项。或者您可能会发现 Debian 需要一个 Parrot 甚至没有的软件包,反之亦然。

恐怕这不是一个好主意。

答案2

Snap 包管理器应该不是问题,使用单个文件和虚拟文件系统。这同样适用于 Flatpak 或 Appimages,以防您需要仅在那里可用的应用程序。

但您也提到了 RPM。这些可能会产生问题。它们不应该在 Debian 和 ParrotOS 等衍生产品上使用。

答案3

一般来说,这几乎总是会破坏您的系统,除非您采取特殊措施来避免这种情况。所有分发包管理器(与 NPM 或 PIP 等语言 PM 相对)都被设计为在这样的假设下运行:它们对 和 之外的绝大多数文件系统拥有 100% 的控制权/usr/local/home并且当该假设不成立时,它们会相当可靠地破坏事物。遇见了。事实上,即使只是手动构建和安装独立于包管理器的软件也可能存在风险(这就是理智的管理员使用/usr/local此类工具的原因)。

但是,这并不意味着您不能使用未针对您的发行版打包的软件:

  • 如果它有 Flatpak、AppImage 或 Snap 包,那么您几乎总是可以安全地使用它们,前提是您的发行版可以支持这些格式的要求(几乎所有主要发行版都支持开箱即用的 AppImage,并且只需极少的努力即可支持 Flatpak 和/或 Snap) )。
  • 该软件可能以 Docker 映像的形式提供,您不仅可以在任何提供 Docker 的 Linux 发行版上使用它,还可以在 Windows 或 macOS 上使用。
  • 您还可以仅使用常规操作系统容器作为基础,为该软件创建自己的 Docker 映像。
  • 大多数理智的包管理器允许您安装到用户可配置的前缀而不是根文件系统中(尽管这并不总是暴露在 APT 或 DNF 等面向用户的工具上)。这可用于创建一个 chroot 环境,然后您可以从中运行所需的软件。
  • 如果它是 FOSS,您通常可以从源代码构建您的发行版。只需确保将其配置为将内容放入其中,/usr/local这样您就不会干扰包管理器(并且可能会查看GNU 斯托,它使得管理这样的事情变得更加容易)。

相关内容