当已经有了 repo 包时,我可以从源代码安装吗?

当已经有了 repo 包时,我可以从源代码安装吗?

我只是尝试在 Ubuntu 上从源代码安装 Virtualbox,但它不允许我安装,因为我已经有了 repo 包。理想情况下我需要两个版本。我是否可以通过源代码安装来绕过此限制?

以下是在 deb 软件包上执行 sudo dpkg -i 命令后出现的错误消息:

Selecting previously unselected package virtualbox-5.1.
dpkg: regarding virtualbox-5.1_5.1.18-114002-Ubuntu-trusty_amd64.deb containing virtualbox-5.1:
 virtualbox-5.1 conflicts with virtualbox
  virtualbox-5.0 provides virtualbox and is present and installed.

dpkg: error processing archive virtualbox-5.1_5.1.18-114002-Ubuntu-trusty_amd64.deb (--install):
 conflicting packages - not installing virtualbox-5.1
Errors were encountered while processing:
 virtualbox-5.1_5.1.18-114002-Ubuntu-trusty_amd64.deb

答案1

您无法通过包管理器安装同一包的两个版本。 (这就是 APT 的工作原理 - 还有其他包管理器的工作方式不同。)如果您尝试安装第二个版本,它会替换旧版本。

可以使用 APT 安装某些程序的多个版本。这是通过在包名称中添加程序版本来完成的。它通常是针对库完成的,因为您可能使用同一库的不同版本安装了多个程序。这实际上发生在 VirtualBox 上:您尝试virtualbox-5.1virtualbox-5.0已经安装的情况下进行安装。就包名称而言,这是可能的。然而,这些软件包实际上不能一起安装;包元数据包含冲突信息,告诉包管理器不要将它们安装在一起。即使包元数据没有声明冲突,这两个包也无法安装在一起,因为它们提供具有相同名称的文件。我不知道为什么 VirtualBox 的软件包名称中包含软件的版本。

如果要安装 VirtualBox 的多个版本,则必须从二进制发行版或源代码安装它们,而不使用包管理器。换句话说,不要获取 deb 文件(其中一个版本可能除外)。

相关内容