如何防止安装比要求的版本更新的软件包?

如何防止安装比要求的版本更新的软件包?

nvhpc我正在安装一个从第三方存储库调用的包。

为此,我使用推荐的方法,包括:

$ apt-get update && apt-get install --no-install-recommends -y --quiet ca-certificates
$ echo 'deb [trusted=yes] https://developer.download.nvidia.com/hpc-sdk/ubuntu/amd64 /'
$ apt-get update -y
$ apt-get install --no-install-recommends -y  nvhpc-22-2

事实证明,这会尝试安装nvhpc-22-3较新的版本。(我不想安装它,因为除其他原因外,我的虚拟机中没有足够的空间容纳这两个版本)。

奇怪的是,如果我明确安装nvhpc-22-3(或nvhpc),它只会安装版本 22.3,而如果我要求,nvhpc-22-2它将安装 22.2 和 22.3。(22.3 或 22.2 单独应该适合磁盘。)

我认为存储库apt-get正在尝试变得智能并安装新旧版本。 我如何才能阻止安装新版本?(即具体名为nvhpc-22-3或 的包nvhpc)?

请注意,我传递这个参数是--no-install-recommends为了防止类似的事情发生,以防万一。

这是上面最后一条命令的输出:

$ apt-get install --no-install-recommends -y  nvhpc-22-2
Reading package lists...
Building dependency tree...
Reading state information...
The following additional packages will be installed:
nvhpc-22-2 nvhpc-22-3 perl ...
...
0 upgraded, 98 newly installed, 0 to remove and 14 not upgraded.
Need to get 5909 MB of archives.
After this operation, 20.5 GB of additional disk space will be used.
...
Selecting previously unselected package nvhpc-22-3.
Preparing to unpack .../94-nvhpc-22-3_22.3_amd64.deb ...
Unpacking nvhpc-22-3 (22.3) ...
Selecting previously unselected package nvhpc-2022.
Preparing to unpack .../95-nvhpc-2022_22.3_amd64.deb ...
Unpacking nvhpc-2022 (22.3) ...
Selecting previously unselected package nvhpc-22-2.
Preparing to unpack .../96-nvhpc-22-2_22.2_amd64.deb ...
Unpacking nvhpc-22-2 (22.2) ...

答案1

这不是版本问题。这实际上是两个不同的包,而不是同一个包的两个不同版本。看起来这nvhpc-22-3是 的依赖项nvhpc-22-2

无论出于什么原因,他们将其设为依赖项,因此您必须安装这两个包。很可能nvhpc-22-2不完整,并且包含一些完成nvhpc-22-3所需的内容。nvhpc-22-2

无论如何,每个版本都有不同的名称,因此版本号的问题无关紧要(您不能使用典型的 apt 固定方法到特定版本)。如果您认为没有必要这样做,或者想知道为什么有必要这样做,您可以联系供应商。

您可以通过运行来验证这一点:

apt-cache show nvhpc-22-2 | grep -i depends

这应该表明这nvhpc-22-3是一个依赖项。除了依赖项问题之外,Apt 并不智能,并且不会尝试安装非依赖项的软件包,特别是当您使用该--no-install-recommends标志时。

最后,如果您觉得这是一个错误,您也可以向软件供应商提交错误报告。

相关内容