如何阻止无人值守的升级升级自定义安装的Debian软件包?

问题描述

我已经自定义了自己的ffmpeg版本,并从该软件包中创建了一个.deb文件。软件包描述如下

control.txt

Package: ffmpeg
Version: 4.3-ubuntu1804+hwaccel.cuda+20200806
Architecture: amd64
Depends: ${insert dependencies here}
Replaces: ffmpeg,libavutil-dev,libavformat-dev,libavcodec-dev,libswresample-dev,libavdevice-dev,libavfilter-dev,libavresample-dev,libpostproc-dev,libswscale-dev,libmp3lame0
Maintainer: me@me.com
Description: some ffmpeg package I built with CUDA hwaccel for Ubuntu 1804 targets

然后我将系统(一个Ubuntu 18.04服务器设备)从系统存储库中安装了ffmpeg并运行以下命令

sudo apt-get install -y ./ffmpeg_4.3-ubuntu1804+hwaccel.cuda+20200806_amd64.deb

它将ffmpeg安装到我的系统中,并替换已安装的。我让它运行了一段时间,当我回来时,我注意到我系统上安装的ffmpeg是Ubuntu存储库中的那个。即版本7:3.4.8-0ubuntu0.2

我去查看/var/log/apt/history.log文件并查看

Upgrade: ffmpeg:amd64 (4.3-ubuntu1804+hwaccel.cuda+20200919,7:3.4.8-0ubuntu0.2)
End-Date: 2020-09-20  06:04:48

看起来它注意到我在系统上定制的ffmpeg编译版本,并与存储库中的版本进行了某种形式的比较,并注意到它落后于该版本并进行了自动升级。问题是,我的不是不在存储库中的那个后面(4.3与3.4.8),而且,我自己安装了此定制编译版本,为什么无人值守升级会继续进行并撤消我的通过从存储库中安装默认库来工作?

我的问题是-在任何情况下如何告诉unattended-upgrades不要触摸此软件包,更好的是,如何告诉它不要接触我从自定义编译的.deb文件安装的任何软件包?

解决方法

仅供参考,以防万一将来有人遇到此问题,您可以做三件事。

  1. 卸载unattended-upgrades
  2. 将第/etc/apt/apt.conf.d/20auto-upgrades行更改为第APT::Periodic::Unattended-Upgrade "0";行,而不是1
  3. 在有问题的包装上标记“保留”。 sudo apt-mark hold ffmpeg这样。这告诉apt-get和其他程序不要升级此软件包。

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...