如何从 cli 检查给定发行版本的软件包版本?

如何从 cli 检查给定发行版本的软件包版本?

有关的:如何使用 apt-get / aptitude 检查软件包版本?

如何从命令行对给定变量 debian 版本执行此操作?使用 apt、dpkg 或 aptitude 都可以。理想情况下,依赖packages.debian.org 网站是不是好的,因为请求的版本可能已过时。 (ftp 存档确实包含旧版本)。

例如:

release="bullseye"
package="wget"
version=$(some_magic_apt_command $release)
echo $version

1.21-1+deb11u1

release="stretch"
package="wget"
version=$(some_magic_apt_command $release)
echo $version

1.18-5+deb9u3

我还需要知道它来自哪个“存储库”。主要的、贡献的还是非自由的?

release="stretch"
package="wget"
type=$(some_magic_apt_command $release)
echo $type

main

要求:

  • 它必须为任何版本:不仅仅是当前安装的版本

目的:

提取旧包以查找已更改的原始配置文件,不记得更改了什么,以找出如何更新这些配置文件以获取新版本(问题:程序员对配置文件做了什么更改,没有记录)。

答案1

所以,答案似乎是:只需为每个版本创建一个 podman 容器,并在每个容器内询问 dpkg 即可;

在您的主机 (Deb 11) 机器上进行一次性设置:

sudo apt install -y podman
sudo usermod --add-subuids 100000-165535 --add-subgids 100000-165535 YOURUSERNAMEHERE

从那时起PKG检查DEBIAN_RELEASE

DEBIAN_RELEASE=8
PKG=gnuradio
podman run \
       -it \
       --rm \
       "debian:${DEBIAN_RELEASE}" \
       sh -c "apt-get update; apt-cache show \"${PKG}\"" \
| grep 'Version:'

对于 7 之前的 debians,您可能需要首先调整 /etc/apt/sources.list 中的 URL,但是您可以在通过 传递的命令中执行此操作sh -c,或者首先构建一个已经完成的映像,然后替换debian:releasenumber为那个。

相关内容