我通过读取 Debian 软件包的控制文件以编程方式查找依赖项(带版本)。我注意到某些依赖项需要严格较低的版本(<<)。如何了解如何以编程方式查找较低版本?
答案1
以编程方式执行此操作的一种方法是从包的更改日志中获取它。
假设软件包名称是 ,$PACKAGE
而您要查找的软件包之后的版本是$VERSION
,那么这将起作用:
apt-get -qq changelog "$PACKAGE" |
dpkg-parsechangelog -l - -u "$VERSION" -S Version
答案2
您可以扫描软件包数据库以查找已知的先前版本,但这并不能保证旧软件包仍在您的本地 /var/cache/apt/archive 中。这可能就像 grep 输出一样简单dpkg -l
您还可以扫描您最喜欢的 Ubuntu 存储库的“池”部分。这需要更长的时间,但您知道该包存在。这可能比检查本地数据库慢得多。
当然,一个理想的解决方案可能会同时使用两者的元素。