如何优雅地在linux终端中卸载软件(专指通过deb手动安装的)

点维数智空间 2023-12-04 23:27:47

01

背景

接下来笔者会在本公众号开设linux专栏,更新一些在学习使用linux系统过程中遇到的问题和解决方法,以及一些心得。

本公众号的主旨在于更新产业互联网产品设计相关的文章,之所以开设该系列,一方面是因为产业互联网或者说工业互联网产品经理,亦或是从更大的范围来说,B端的产品经理,掌握一些技术能力是必要的。

另一方面,在AI大模型流行的趋势下,作为产业互联网产品经理也应该思考这一颠覆性技术能有哪些应用场景。前段时间阿里云恰巧开放了modelscope开源社区,将通义千问等AI大模型开源,笔者也恰巧想试一下。

在modelscope的开发者文档中,平台指出有非常多的模型只能在linux上运作,笔者想到自己读大学时使用的早已过时的电脑,不如正好装一个linux玩玩,也算让它焕发第二春了。

背景介绍完毕,接下来切入主题。

02

遇到的第一个问题

笔者在电脑上安装的linux系统为Ubuntu 22.04.3 LTS,这个版本目前在整个乌班图体系里边也算是相对比较新的版本,无论是小破站还是网上的其他教程都比较完善。

如果读者有想玩一玩linux系统的,建议也可以自己准备一个U盘,在网上搜索一下系统安装教程进行系统安装,这个开源系统的安装也是比较容易的。如果安装过程出现问题,也欢迎私信交流。

安装完Ubuntu系统后并进行镜像源配置等一系列操作后,笔者自然要进行软件装机了,如果是安装系统商城内的软件,或是可以在终端输入命令直接安装的软件都还比较容易,比如安装一个比较流行的三维建模工具blender,直接运行“sudo apt install blender"即可。

对于国内的一些软件,我们通常需要下载deb包,下载完成后,在对应路径下运行终端命令安装,或直接打开进行安装。

在装机过程中,笔者通过下载deb包的方式安装了一个国内的会议软件,后来发现因为兼容问题无法使用,所以想卸载掉,然而卸载软件时遇到了一个令人头疼的问题——软件找不到了。

03

问题描述

如果大家在网络上搜索linux卸载软件的方法,我想大概率会搜索到卸载软件的命令,即“sudo apt remove 软件包名称”。问题在于,既然我们使用的是终端,软件包名称肯定是需要输入英文的,我们一般在使用国内软件的时候,很少注意到这个软件的英文名称到底是啥。

所以一开始,当我简单把软件名称翻译成英文后,执行“sudo apt remove ~"命令,果然没有找对软件,卸载失败。于是接下来我便开始了多种解决方案的尝试。

有的同学可能会说,我们下载的deb包里一般不都包含软件名称嘛?确实,有很多软件都是这样的,这也就比较好找了,如果你已经删除了软件的安装包,大不了再去原来的软件安装包下载源看看就是了。

但是有的安装包就极其奇葩,比如今天笔者介绍的这个比较难缠的软件,试了很多可能的英文名称都不对,直到最后把它揪出来后,笔者都忍不住吐槽,这软件英文名怎么这么起?

04

尝试的解决方案

方案一:最一开始想到的方案就是在系统自带应用管理软件中找到这个软件并删除,毕竟我的系统界面上是实实在在能看到这个软件的(最后一个就是):

然而惊奇的是,在已安装软件列表中看不到这个软件,自然也就无法操作下载了,后来安装了一个优麒麟软件管理中心,仍然也看不到这个软件。

方案二:也是网络上常用的一个卸载软件的方式,首先在终端中运行“dpkg --list"指令,显示本电脑中已经安装的所有程序列表,找到自己所安装软件的软件名称,之后运行”sudo apt remove ~"命令进行卸载。

然而问题在于,系统上安装的程序实在太多,我想极大一部分程序,用户看过以后都不知道是干啥的,自己本来就不知道要卸载软件的英文名称是啥,找起来肯定也会像大海捞针一样麻烦。

方案三:该方案其实就可以很好地应对各种疑难杂症情况,从根本上解决软件查不到的问题了。我们打开文件管理,在文件管理中按如下路径“var / log / apt history.log”找到history.log这个文件后打开。

这个文件实际上就是系统的软件安装日志。找到对应的日期记录,就可以找到对应软件的英文名了。事实上,笔者也是通过这种方式终于找到这个软件并卸载成功了。

当然,这个方案仍然还是不够优雅,如果你安装了很长时间后再回来卸载这个软件,难保日志不会被删除或丢失。

另一方面,虽然日志有日期这个标定可以方便你搜查,但时间长了,你也很有可能就忘了自己是什么时候安装的这个软件了。况且日志文件中显示的信息也着实不少,浏览起来也需要费不少劲。

05

终极解决方案

接下来介绍笔者认为最好的终极解决方案。

在终端中输入“dpkg -l | grep name”这个指令,注意其中的“name”替换成软件名称的一部分。这个指令相当于是对你已经安装的软件列表进行模糊搜索。

比如我要搜索这个会议软件,虽然软件英文全名我不直到,但是名称中一定是包含“meet”这个关键词的,所以将“name”替换成“meet”搜索一下,果然在为数不多的几个搜索结果中一眼就看到了。

当然,如果连关键词也想不到的话,建议还是采用上一章节的方案三,去查询软件安装日志。

06

解释一下

其实在使用linux系统的过程中,通过deb包安装的国内软件,我们想不到它的英文名称的情况很常见,但大多数情况也可以推理出其英文名称。但也不排除软件命名时有一些奇葩的想法,因此使用“dpkg -l | grep 关键词”这一指令进行模糊搜索也是非常好的一个办法。

0 阅读:32

点维数智空间

简介:聚焦产业互联网,探究数字化与智能化转型。