PPA 中的一个包如何在 apt 中变成多个?

PPA 中的一个包如何在 apt 中变成多个?

我在用着ppa:图形驱动程序/ppa安装 nvidia 驱动程序。如果您转到其描述中的“已发布软件包概述”(并按一个 ubuntu 版本进行筛选以方便使用),您将看到类似 的软件包nvidia-graphics-drivers-***,其中***是一个数字。

到目前为止一切顺利。但是,如果您将此 ppa 添加到您的系统,则不会出现任何软件包(apt 会说“没有这样的软件包”),但会出现其他一些软件包(例如nvidia-dkms-***nvidia-utils-***等等)。

这是如何实现的?是在 PPA 端实现的 (它向我们显示一个,但对 apt 显示多个) 还是在 apt/dpkg 端实现的 (软件包本身有一些特殊之处)?

答案1

这是一个存在大型源包并由其构建多个二进制包的情况。

源包只是所有源代码文件以及编译可安装的实际二进制文件所需的其他内容的存档。Launchpad 为开发人员执行这些构建,开发人员只需上传源代码并进行相应配置即可。有时,拥有一个包含与项目相关的所有内容的大型代码库是有意义的,即使结果将被拆分成几个较小的包,这些包可以单独安装或(部分)相互依赖。

看看查看包裹详情PPA 页面(链接位于右上角)。

在这里你可以看到所有源码包,但每个条目都可以展开,当你点击它时,会显示更详细的信息,包括一个部分构建包列出了从此源构建的所有二进制包。这些包名称就是您可以使用 安装的包apt。下面还有一个列表,其中包含这些 .deb 包文件的下载链接(但您应该始终使用 安装apt,而不是手动下载它们)。

例如,单一源包nvidia-graphics-drivers-430 - 430.14-0ubuntu0~gpu18.04.1构建所有这些二进制包:

libnvidia-cfg1-430
libnvidia-common-430
libnvidia-compute-430
libnvidia-decode-430
libnvidia-encode-430
libnvidia-fbc1-430
libnvidia-gl-430
libnvidia-ifr1-430
nvidia-compute-utils-430
nvidia-dkms-430
nvidia-driver-430
nvidia-headless-430
nvidia-headless-no-dkms-430
nvidia-kernel-common-430
nvidia-kernel-source-430
nvidia-utils-430
xserver-xorg-video-nvidia-430

相关内容