如何在Linux中使用命令行卸载软件

article/2025/9/11 23:54:03

所有的Linux系统中都带有包管理器命令,比如Ubuntu发行版里的dpkg命令,CentOS/RHEL发行版里带的yum和rpm命令,下面我就以自己比较熟悉的CentOS/RHEL系列发行版来讲解,以nginx这个常用的web软件为例。

查看系统上是否安装了nginx

命令

rpm -qa | grep nginx 

结果如下面图中所示:

从上面的图中可以看到,确实已经安装好了nginx这个软件,rpm -qa命令的含义是查询所有安装到系统上的软件,而grep是从查询的结果中搜索。如果没有返回结果,那么可以使用yum命令来安装。命令是:

yum install nginx -y 

安装完成后就能够看到对应的搜索结果,我们就可以使用自带的包管理器yum和rpm命令来删除这个软件。

yum命令 卸载

yum erase nginx -y 

执行结果如下所示:

看到complete的提示说明已经成功删除,此时再执行nginx命令查看软件是否存在,结果如下所示,从图中可以看到提示的意思是没有找到这个命令,说明nginx软件已经被成功卸载。

rpm命令卸载软件

rpm命令卸载软件的格式是:

rpm -e softwarename

softwarename 指的是软件名称,比如我们要卸载nginx就是:

rpm -e nginx 

然后等到命令执行完成,结果如下,从结果中我们可以看到,这个命令更直接了,能成功删除的时候没有任何提示。

同样的,我们通过nginx命令来验证一下,如下面图中所示,可以看到,也提示没有找到这个命令,说明nginx这个软件确实被成功卸载了。至此通过包管理器命令来卸载软件就讲解完毕了。其他发行版的包管理器命令例如dpkg,dnf等都大同小异,都是通过相关参数来删除。读者可以举一反三。

通过rm命令来删除软件

上面讲解的是通过包管理器命令来卸载软件,但是有的时候,可能软件卸载过程中出错,导致软件并没有被完全删除。此时可能是卸载失败的,因此就需要通过rm命令来帮助继续删除软件。同样的以nginx为例,首先我们来看一下安装好的nginx有多少文件,如下面图中所示,查询命令是:

rpm -ql nginx 

从上面的图中,我们可以看到,nginx安装后生成的文件还是比较多的,且主要分为5类,分别是:

1. 配置文件,保存在/etc/nginx/目录下,以及/etc/目录下

2. 库文件,保存在/usr/lib,/usr/lib64,/usr/libexec目录下

3. 命令文件,保存在/usr/sbin目录下

4. 帮助文档,保存在/usr/share/doc/nginx-1.14.0/和/usr/share/nginx目录下

5. 日志和缓存文件,保存在/var/log/nginx和/var/cache/nginx目录下

如下面途中所示:

因此我们就需要通过rm命令依次删除这些目录下的文件,命令如下:

rm -rf /etc/nginx/rm -rf /sysconfig/nginx*rm -rf /usr/lib/systemd/system/nginx*rm -rf /usr/lib64/nginxrm -rf /usr/libexec/initscripts/legacy-actions/nginx/rm -rf /usr/sbin/nginx*rm -rf /usr/share/nginx*rm -rf /usr/share/doc/nginx*rm -rf /usr/share/man/man8/nginx*

删除完毕后,我们同样通过nginx命令来测试一下,可以看到提示没有找到nginx命令,说明nginx确实已经被删除掉了。但是我们再通过rpm -qa命令查询一下,发现还能查到记录。这是因为并没有通过rpm删除nginx的记录,因此nginx还保存在rpm命令数据库中。但是实际上nginx软件的所有文件已经被删除了。这就是通过rm命令删除或者说卸载软件的一个弊端。除此之外,这个记录还会阻止我们重新按照nginx命令。

重新安装nginx

如下面图中所示,因为我们已经通过rm命令删除了所有的nginx文件,此时想通过yum命令来重新安装,但是可以看到它提示我们nginx已经安装且是最新版本,Nothing to do,表示什么都不做。这也是通过rm命令删除软件的弊端。

这个时候如果想安装,就需要通过强制安装或者重新安装命令来执行,如下所示:

yum reinstall nginx -y 

结果如图二所示,可以看到此时才能重新安装nginx。

 

 


http://chatgpt.dhexx.cn/article/iOY1TWxk.shtml

相关文章

Linux如何使用命令行卸载安装包

严格地说,Linux是内核。Linux发行版由Linux内核、安装脚本、shell、编译器、桌面和其他组件组成。因此,卸载包或软件的Linux命令取决于Linux发行版的名称和类型。本文说明如何使用命令行在各种Linux发行版上卸载软件包或软件。 首先,您需要找…

Linux中使用rpm命令卸载软件

1、先使用rpm -qa | grep 软件包名称 例如卸载mysql: rpm -qa | grep mysql 2、使用rpm -e --nodeps 文件包名称 rpm -e --nodeps mysql-5.0.77-4.el5_6.6 rpm -e --nodeps libdbi-dbd-mysql-0.8.1a-1.2.2 rpm -e --nodeps mysql-5.0.77-4.el5_6.6 rpm -e --node…

Linux下如何彻底删除(卸载)MySQL?

首先连接操作系统,切换到root用户。 如果是使用yum安装的mysql,使用如下命令进行卸载(不能确定使用何种方式安装的mysql情况下,按后续步骤一一进行处理即可): yum remove mysql mysql-server mysql-libs c…

Linux rpm命令详解,Linux安装、卸载、更新软件

「作者主页」:士别三日wyx 「作者简介」:CSDN top100、阿里云博客专家、华为云享专家、网络安全领域优质创作者 rpm命令详解 一、常用操作1、安装软件1.1、默认安装路径 2、更新软件3、卸载软件4、查询已经安装的软件 二、实用技巧三、rpm包命名规则 作用…

Linux 卸载程序

windows中安装了软件,可以通过图形化界面很方便的卸载,那么linux命令行的方式如何卸载程序呢? 首先看看安装了哪些程序 rpm -q -a #查询所有已安装的软件-q:query 查询 -a:all 所有 查询出了所有已安装的程序 所以需要过滤多自己需要卸载…

Linux软件的卸载

1.安装说明 configure作用:是源码安装软件时配置环境用的 他根据你的配置选项和你的系统情况生成makefile文件 为make 做准备。 最常用的参数: ./configure –prefix 作用: 不指定prefix,则可执行文件默认放在/usr/local/bin,库文件默认放在/usr/local…

Linux 卸载软件

一、卸载软件 1.输入命令 dpkg --list 查看已安装的软件 记住要卸载的软件的名字 sudo apt-get remove –-purge 要卸载的软件的名字 #卸载软件同时删除配置文件 sudo apt-get remove 要卸载的软件的名字 #卸载该软件 出现此界面为卸载并删除配置文件成功。 二、apt缓存删…

【Ubuntu】【Linux】命令卸载软件

Ubuntu命令卸载软件_李柏林的博客-CSDN博客_ubuntu卸载程序1.打开一个终端,输入dpkg --list ,按下Enter键,终端输出以下内容,显示的是你电脑上安装的所有软件。 2.在终端中找到你需要卸载的软件的名称,列表是按照首字母排序的。 3…

用sizeof来计算数组元素个数

一般大家常见的是用sizeof来求不同数据类型的空间大小,如: 但是我们也可以用其来计算数组元素个数,如下: 从数据可得该数组元素个数为8个。

详解strlen和sizeof在数组中的使用(四)

目录 一、前言 二、sizeof在指针中的试题: 解析: vs编辑器验证: 32位平台: 64位平台: 一、前言 前面一节我们已经讲过了有关于strlen在字符数组中的使用,以及strlen使用时候的注意事项 譬如只能在字符…

C++基础(十五)sizeof的用法 计算数组长度

sizeof本身是C语言的一个运算符,但也被C支持,且很多C代码中经常会出现。 sizeof可以很容易计算一个数组的长度,这在数组作为参数的函数中很有用(数组作为函数参数,传入的其实是首元素的地址,必须带上数组的实际长度作…

C语言中 sizeof(数组名) 和 strlen(数组名) 的意义

数组名是什么呢? 数组名通常来说是数组首元素的地址 但是有2个例外: 1. sizeof(数组名),这里的数组名表示整个数组,计算的是整个数组的大小 2. &数组名,这里的数组名表示整个数组,取出的是整个数组的地…

c语言在函数中使用sizeof求数组长度

c语言sizeof的重要用途之一就是求数组长度,但是sizeof必须在数组定义的位置使用。不能作为参数传入函数并在函数中使用sizeof; 比如下边这个例子 函数中打印结果为; 数组的长度应该是5但是结果却是2,这是为什么呢?因为…

sizeof 数组与指针

sizeof的定义: sizeof是C/C中的一个操作符(operator),简单的说其作用就是返回一个对象或者类型所占的内存字节数。 MSDN上的解释为: The sizeof keyword gives the amount of storage, in bytes, associated with a…

sizeof数组名

数组名到底是不是指针? 数组名在某些使用场合的时候的确可以看做指针处理,之前用c52开发的时候碰到一个问题,大概的意思就是sizeof(函数指针数组名)/ sizeof(数组首元素[0]),结果有…

详解strlen和sizeof在数组中的使用(二)

目录 一、前言 二、sizeof在字符数组中的题目 这整题sizeof的答案是: 32位平台下: 64位平台下: ​ 一、前言 前面我们已经提到了sizeof在整形数组的使用,因为strlen只能在字符数组中使用,所以上一 没涉及strlen…

4.1 数组

数组是用来存储多个相同类型数据的内存分配方法。 1.语法:元素数据类型 数组名[元素个数] [初始值] 例如:int a[5] {1,2,3,4,5} 2.多个、相同类型 3.连续的内存区域 4.数组名是数组首元素的符号地址,即数组的首地址 5.数组元素就是数组…

stm32外部中断实验

目录 (一)外部中断简介 3.GPIO 跟中断线的映射关系图​ (二)软件设计 1.函数说明 三:代码 exti.c main.c (一)外部中断简介 1.实验效果:通过板载的 4 个按键,控制…

stm32学习笔记-外部中断

文章目录 1、stm32f103外部中断控制器EXTI。1.1外部中断的映像1.2 外部中断/事件的框图1.3 外部中断的编程。外部中断配置思路相关寄存器相关库函数 1.4 按键中断实例。 2、按键按下的触发方式编程思路2.1 支持连续按下2.2 不支持连续 2.3 连续,不连续二合一遇到的问…

小白学STM32---外部中断

STM32 的 IO 口在第六章有详细介绍,而中断管理分组管理在前面也有详细的阐述。这里 我们将介绍 STM32 外部 IO 口的中断功能,通过中断的功能,达到第八章实验的效果,即:通 过板载的 3 个按键,控制板载的两个…