我在一家管理自己的 Debian 镜像的公司工作。今天我想更新临时服务器上的一个软件包,即状态监测。
当前安装的版本是1.18-2
最新版本2.6-1
(至少在我本地机器上是最新版本),或者2.9.1
如果我们按照这标准。
显然我们有旧版本的状态监测正在运行,但当我尝试更新它时,包管理器拒绝更新它,并显示以下消息vnstat 已经是最新版本(1.18-2)
sudo apt-get upgrade vnstat
Reading package lists... Done
Building dependency tree
Reading state information... Done
vnstat is already the newest version (1.18-2).
但是当我观察我组织的官方镜像时,我看到里面有版本 2.6-3.deb 和 2.9-1.deb 的 deb 包水池目录。
因此,我想了解软件包更新的内部处理方式。以便了解为何无法执行更新。
我们依靠包管理器来对产品进行任何更新,因此手动升级不是一个选择。
cat /etc/os-release
PRETTY_NAME="Debian GNU/Linux 10 (buster)"
NAME="Debian GNU/Linux"
VERSION_ID="10"
VERSION="10 (buster)"
VERSION_CODENAME=buster
ID=debian
HOME_URL="https://www.debian.org/"
SUPPORT_URL="https://www.debian.org/support"
BUG_REPORT_URL="https://bugs.debian.org/"
我唯一能猜测的是 2.6-1 需要libc6(>= 2.29)
// ran on my local machine.
apt-cache show vnstat
Package: vnstat
Architecture: amd64
Version: 2.6-1
...
Pre-Depends: init-system-helpers (>= 1.54~)
Depends: libc6 (>= 2.29), libsqlite3-0 (>= 3.7.6.1), adduser, lsb-base
当我们在奔跑2.28-10
ldd --version ldd
ldd (Debian GLIBC 2.28-10+deb10u1) 2.28