rpm -e做了什么
rpm-- e (等效于rpm-- erase )此命令可以卸载或清除一个或多个安装软件包。 当rpm卸载rpm软件包时,请执行以下操作:
确保数据库中没有其他软件包引用要卸载的软件包。
卸载前脚本(如果有)
检查配置文件是否已更改,如果已更改,则保留备份。
联系数据库以找到此软件包中安装的所有文件,如果这些文件不属于其他软件包,请将其删除。
如果有卸载后的脚本,请运行
从数据库中删除软件包的所有跟踪信息。
卸载一个包
# rpm -e eject
就像这样,eject软件包会无声地卸载。 很明显,我想得到更多的反馈。 请尝试添加-v选项。
# rpm -ev eject
虽然还没有输出任何内容,但还有一个选择。 请参照以下内容。
使用-vv获得更多反馈
可以通过添加-vv选项获得卸载RPM期间的反馈。
# rpm -evv eject
d : uninstalling记录编号286040
d :运行期间预运行脚本(ifany ) )。
d :移动文件测试=0
d :/usr/man/man1/eject.1-removing
d :/usr/dzd cc/eject-removing
d :运行维护脚本(ifany ) )。
d : removing数据库条目
d : removing name索引
d :远程组索引
d : removingfileindexfor/usr/dzd cc/eject
d : removingfileindexfor/usr/man/man1/eject.1
-v不会告诉我们什么,-vv会告诉我们很多,但它到底告诉了我们什么呢?
首先,RPM打印了包的记录号。 此记录编号仅对编写RPM数据库代码的人有意义。
然后,RPM运行卸载前脚本(如果有脚本)。
名为“removes files test=0”的行表示RPM将卸载整个软件包。 如果此数字不为0,则RPM仅检测卸载环境。 添加--test选项时,可能会发生不为0的情况。
以下两行显示了卸载过程中删除的文件。 如果一个软件包包含许多文件,则使用-vv参数将产生大量输出。
然后,RPM运行卸载后的脚本。 如果存在。 该脚本在所有文件都被删除后运行。
最后,最后五行表示RPM已从数据库中删除跟踪信息。
其他选项
--test :检查卸载环境,但不实际卸载软件。
--nodeps :卸载前不检查依赖关系
--noscripts :不运行卸载前或卸载后脚本
-rcfile :使用rcfile作为替代
-root :使用root替代
使用--dbpath :访问数据库
rpm -e和配置文件
如果在安装软件时更改了配置文件,则卸载软件不会丢失配置信息。 例如,假设您修改了/etc/skel/. bashrc (作为etc skel软件包的一部分安装的配置式)。 然后删除etcskel:
# rpm -e etcskel
去/etc/skel目录看看吧。
# ls -al
总体5
rwxr-xr-x3根1024jun1722:01。
rwxr-xr-x8根2048jun1719336001 .
- rw-r---- r----1root root 152 jun 1721336054.bashrc.rpmsave
dwxr-xr-x2 root root 1024 may 131:18.xfm
当然,名为. bashrc.RPMsave的文件是修改配置的备份,但请注意,这只保留配置文件rpm的备份。
请注意
RPM卸载软件时几乎在操作系统上做了所有的事情,这太棒了。 但这意味着RPM在卸载你系统上的重要软件时也是同样无私的。 例如:
RPM: RPM是否可以卸载自己? 答案当然可以。
请注意,Bash:拆下了你机器的Bash。
在大多数情况下,RPM相关性检测会检测需要卸载的软件与其他软件之间的相关性,并注意不要意外删除软件。 如果不确定是否存在gxdhh关系,可以使用rpm -q联系您要卸载的软件。
参考资料