如何以编程方式找到给定软件包版本的较低版本?

如何以编程方式找到给定软件包版本的较低版本?

我通过读取 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 存储库的“池”部分。这需要更长的时间,但您知道该包存在。这可能比检查本地数据库慢得多。

当然,一个理想的解决方案可能会同时使用两者的元素。

相关内容