如何查看哪些软件包可以降级?

如何查看哪些软件包可以降级?

这个问题正好相反如何查看哪些软件包可供更新问题。

我想查看答案apt-cache policy package问题是,给出的答案是否真的会降低已安装包的级别。在每个已安装包上运行命令并手动检查存储库中可用的低版本非常困难。

那么,是否有任何命令可以列出存储库中具有较低版本的所有已安装软件包(可以降级的软件包)?

答案1

您可以使用以下方法检查特定软件包是否有降级的可能:

apt-cache showpkg package_name | sed "0,/Reverse Provides:/d"

现在,根据此问答您可以使用:

dpkg --get-selections | grep -v deinstall

列出所有已安装且“可降级”的软件包,如下所示:

for i in $(dpkg --get-selections | grep -v deinstall | cut -f1); do apt-cache showpkg $i | sed "0,/Reverse Provides:/d"; done

答案2

不确定命令,但这里有一些 python:

from __future__ import print_function

import apt

def downgrade_versions(package):
  if package.versions is None or not package.is_installed:
    return []
  result = []
  for version in package.versions:
    if version < package.installed:
      result.append(version.version)
  return result

with apt.Cache() as cache:
  for package in cache:
    versions = downgrade_versions(package)
    if len(versions) > 0:
      print(package.fullname, package.installed.version, versions)

打印软件包名称、已安装的版本以及低于已安装版本的可用版本列表。

对于单个包,您可以使用apt-cache policy package。它显示已安装的版本和可用的版本。

相关内容