如何查找没有安装候选的已安装软件包?

如何查找没有安装候选的已安装软件包?

我想检索没有安装候选的已安装软件包的列表(例如,因为我删除了 apt 源文件条目)。在基于 Debian 的系统上我该如何做到这一点?

答え1

使用 Aptitude,搜索?obsolete 图案,可能有一个自定义显示格式

aptitude -F '%p' search '?obsolete'

答え2

这个已经更新了:

for package in $(dpkg -l | awk '/ii/{print $2}'); do
     if ! grep -xq "Package: $package" /var/lib/apt/lists/*Packages; then
         echo $package
     fi
done

使用 apt-cache 策略:

for package in $(dpkg -l | awk '/ii/{print $2}'); do
    if ! apt-cache policy $package | grep -q '[0-9] http://'; then
        echo $package
    fi
done

答え3

只需更新你的包

sudo apt-get install update

在大多数情况下,它会解决问题。如果出现任何未满足的依赖性问题,请使用此解决方案

sudo apt-get -f install

関連情報