Linux | dpkg包管理器下的软件状态

dpkg -l 查看软件的状态

前言

今天使用dpkg -l | grep openjdk查看安装的openjdk版本时,发现有3个版本,但是执行java --version提示没有安装,使用apt autoremove也无法卸载,如下图所示:

在这里插入图片描述

查了下资料才知道,dpkg -l得到的结果并不是所有已安装的,也包括已卸载的,目前查到的这三个就是我以前安装了又卸载了的,最前面的rc表示已经卸载(r:removed)但是配置文件(c:config)还在
在这里插入图片描述

要想清理这三个安装包的配置文件,需要使用dpkg --purge命令,如下图所示:

sudo dpkg --purge openjdk-17-jre-headless openjdk-21-jre-headless openjdk-8-jre-headless

在这里插入图片描述
清理完成后,可以看到查不到关于openjdk的相关安装内容了。



Dpkg 的常见状态

状态码说明
ii已安装且正常
rc已卸载但配置文件残留
un从未安装过
hi设置为保留(hold)状态(不升级),且已安装
pn被设置为 purge,但当前没安装
ri设置为 remove,但包仍在系统中
fu配置失败,可能需要修复

可以看到这些状态都时2位,其实这个状态是分为首位和末位的,常用值分别如下:

首位 | 用户期望状态(Desired action)

字符含义
uUnknown(未知)
iInstall(安装)
rRemove(卸载,但保留配置文件)
pPurge(彻底删除,包括配置文件)
hHold(保持,不升级)

次位 | 当前状态(Package status)

字符含义
nNot-installed(未安装)
iInstalled(已安装)
cConfig-files(仅有配置文件)
uUnpacked(已解包但未配置)
fFailed-config(配置失败)
hHalf-installed(半安装)

查看所有不正常的安装

dpkg -l | grep -E '^.[^i]'

可以看到所有不正常的安装软件如下:

在这里插入图片描述

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值