有关的:如何使用 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
为那个。