dpkg 卸载软件

说来惭愧,很久之前就学会使用 dpkg 安装 .deb 包了,可是一直不知道该怎么用这一命令卸载。

dpkg 安装 .deb 包,很多时候并不能自动处理依赖包,所以我惯常的做法是,先用 dpkg -i 安装尝试,如果报有依赖问题,就使用 apt-get -f install 命令来自动修复,屡屡奏效。

通常来说,比较新的 Linux 发行版都是带了 LibreOffice 套件的,但是套件本身的版本大都会比官网的版本要旧。为了能使用官网发布的最新版本,有个办法就是到官网下载安装包,然后手动安装,安装的方法是 dpkg -i *.deb。三太爷就是这么干的,结果是系统里同时存在三份 LibreOffice,自带的一份、手动安装的 5.1 和 5.4 两份。再这么下去,只会更混乱,看来需要解决一下。

既然有手动安装的技能,可见系统自带的版本可以删除。打开 Ubuntu Software,搜索 LibreOffice,把看着就是的各个组件逐个 Remove 掉,结果是,在系统的 Launcher 里搜索,确实消失了,但是 Ubuntu Software 里仍然存在,且可以执行的操作仍然为 Remove。而手动安装的 5.1 版本,在这里是看不到的。

搜索大法之下,比比皆是用 apt 族命令卸载 LibreOffice 的文章,共同的特性是基本没用。显然 dpkg 种下的病根,还是需要 dpkg 来拔除,所谓解铃还须系铃人。研究了一下,第一成果是 dpkg -l 命令可以列出所有安装的软件,而且会有个两字母的状态标识,第一个字母为 Desired,取值为 Unknown/Install/Remove/Purge/Hold 各词的首字母,第二歌字母为 Status,取值为 Not/Inst/Conf-files/Unpacked/halF-conf/Half-inst/trig-aWait/Trig-pend 各词的首字母。

这样一查看,发现刚才在 Ubuntu Software 里卸载的各个组件,状态都是 rc,也就是说,已经被 Remove 掉了,但是 Conf 文件还在。而 5.1 和 5.4 的 LibreOffice,则好端端的都是 ii,也即正常安装了的状态。接下来就好办多了,dpkg -P 命令后接上包名就可以将该包 Purge 掉,如果报告有其他包在依赖着,那就先去 Purge 依赖于此的包。

根据 dpkg -l 的输出信息,写脚本将一系列的包自动卸载是可行的,不过还是放到这一需求会被一再需要满足的时候吧。

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注