我正在安装一个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
or的包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) ...
这不是版本问题。这些实际上是两个不同的包,而不是同一个包的两个不同版本。这似乎
nvhpc-22-3
是 的依赖项nvhpc-22-2
。无论出于何种原因,他们都将其作为依赖项,因此您将不得不安装这两个软件包。很可能
nvhpc-22-2
是不完整的,并且nvhpc-22-3
包含完成所需的一些内容nvhpc-22-2
。在任何情况下,它们中的每一个都有不同的名称,因此有关版本号的问题是无关紧要的(您不能使用 apt 固定到特定版本的典型方法)。如果您认为没有必要或想了解为什么需要这样做,您可以联系供应商。
您可以通过运行来验证这一点:
这应该表明这
nvhpc-22-3
是一个依赖。除了依赖问题之外,Apt 并不智能,并且不会尝试安装不依赖的软件包,尤其是当您使用该--no-install-recommends
标志时。最后,如果您认为这是一个错误,您还可以向软件供应商提交错误报告。