如何防止 apt upgrade 安装手动安装的库

如何防止 apt upgrade 安装手动安装的库

我有一个库,它是从 Debian 档案库中尚未提供的版本源代码构建的。另一个软件包需要它并apt upgrade希望安装旧版本。我该如何防止这种情况发生?

详细信息:我在使用 Sane 时遇到了问题,该问题已在最新版本 (libsane: 1.0.27) 中得到修复。在 Debian 中,最新可用版本是 1.0.26。

我尝试像这样固定它:

Package: libsane
Pin: version 1.0.27
Pin-Priority: 900

但是当我运行 apt upgrade 时,这并没有改变安装 libsane 的尝试。

答案1

您可以暂时保留特定包裹:

apt-mark hold libsane

答案2

您必须使用apt-get upgrade来阻止 apt 安装新的软件包。

apt upgrade行为就像您描述的行为一样。

从手册页中:

apt-get 命令部分upgrade

升级用于安装当前已安装的所有软件包的最新版本 [...] 在任何情况下都不会检索和安装尚未安装的软件包。

男人适合部分upgrade

upgrade 用于安装当前已安装的所有软件包的最新版本 [...]。将安装新软件包,但永远不会删除现有软件包。

答案3

两个最简单的选择是:

  • 使用equivspackage 创建虚拟包。扩展教程这里

  • 修改/var/lib/dpkg/status文件以删除其中不需要的依赖项。只需找到依赖项所针对的包apt并从依赖项行中删除相关项即可。例如,如果您想删除和要求,请编辑Depends: libco (>= 2.14), libefivar (>= 30), libssl1.0.0 (>= 1.0.0)行。Depends: libefivar (>= 30)libcolibssl1.0.0

第二种选择需要您安装此包。不过,您可以使用apt-get download packagenamedpkg --ignore-deps=命令轻松安装包。

相关内容