Ubuntu 有时会将 Tomcat 降级为 apt 存储库中的版本

Ubuntu 有时会将 Tomcat 降级为 apt 存储库中的版本

我在 Ubuntu 20.04 上使用 Tomcat 9。

apt 安装 Tomcat 9.0.31,它有一个与 HTTPS 相关的错误,导致我们的 Web 应用程序无法正常运行。

为了解决这个问题,我正在手动将 Tomcat 更新到较新的版本 (9.0.40),通过从 Tomcat 网站下载 ZIP 存档并替换 /usr/share/tomcat 中旧版本的二进制文件。

这种方法直到最近才有效。自 2022 年 3 月(大约)以来,我观察到安装的 Tomcat 偶尔会从 9.0.40 降级到 9.0.31!

我想知道我该如何防止这种情况发生?为什么操作系统会在未经同意的情况下降级软件?

答案1

有不同的方法可以阻止软件包:使用 dpkg、apt、dselect、aptitude 或 Synaptic。

软件包

保留包裹:

echo "<package-name> hold" | sudo dpkg --set-selections

解除保留:

echo "<package-name> install" | sudo dpkg --set-selections

显示所有包裹的状态:

dpkg --get-selections

显示单个包的状态:

dpkg --get-selections <package-name>

显示所有保留的包裹:

dpkg --get-selections | grep "\<hold$"

易于

持有包裹:

sudo apt-mark hold <package-name>

解除保留:

sudo apt-mark unhold <package-name>

显示所有保留的包裹:

sudo apt-mark showhold

取消选择

使用 dselect 进入 [S]elect 屏幕,找到您想要保留其当前状态的包并按 = 或 H。退出 [S]elect 屏幕后,更改将立即生效。

以下方法的局限性在于,锁定/保留 aptitude 或 synaptic 中的包不会影响 apt-get/apt。

资质

持有包裹:

sudo aptitude hold <package-name>

解除保留:

sudo aptitude unhold <package-name>

使用 Synaptic 包管理器锁定

转到 Synaptic 包管理器(系统 > 管理 > Synaptic 包管理器)。

单击搜索按钮并输入包名称。

找到该包后,选择它并转到“包”菜单并选择“锁定版本”。

该包现在将不会显示在更新管理器中,也不会被更新。

相关内容