当我们在 CentOS 7 上,通过 Yum 或者 DNF 命令安装程序包时,很多时候,系统会安装额外的依赖包。当我们不再使用那些程序包后,简单地把它们从系统上卸除,那些安装的依赖包依然会存留在磁盘,耗费大量空间,今天 Johnny 就来说一下如何把他们移除。
要移除那些程序包,我们可以通过撤销更改,或者自动移除 (autoremove) 指令来达成。为了演示,我在系统上安装 “DNF” 程序包。
———- 分隔线 ———-
# yum install dnf
…
Transaction Summary
================================================================================
Install 1 Package (+10 Dependent packages)
Total download size: 1.4 M
Installed size: 4.1 M
Is this ok [y/d/N]: y
…
Complete!
———- 分隔线 ———-
试着卸除 dnf:
———- 分隔线 ———-
# yum remove dnf
—> Package dnf.noarch 0:0.6.4-2.el7 will be erased
–> Finished Dependency Resolution
Dependencies Resolved
================================================================================
Package Arch Version Repository Size
================================================================================
Removing:
dnf noarch 0.6.4-2.el7 @epel 652 k
Transaction Summary
================================================================================
Remove 1 Package
Installed size: 652 k
Is this ok [y/N]:y
…
Complete!
———- 分隔线 ———-
瞧,它并没有删除刚才安装的剩下 10 个软件包,实际上,那些软件包已经不再被使用了,怎么删除呢?撤销更改是方法之一,为了撤销更改,我们需要首先查看进行了哪些更改:
———- 分隔线 ———-
# yum history list
…
ID | Command line | Date and time | Action(s) | Altered
——————————————————————————-
33 | remove dnf | 2017-05-23 08:03 | Erase | 1
32 | install dnf | 2017-05-23 07:59 | Install | 11
…
———- 分隔线 ———-
好了,现在,我们用 yum history undo (ID) 即可撤销更改:
———- 分隔线 ———-
# yum history undo 32
…
Transaction Summary
================================================================================
Remove 11 Packages
Installed size: 4.1 M
Is this ok [y/N]:y
…
Complete!
这样,就完成了撤销更改。
除了撤销更改,我们还可以通过 autoremove 指令来自动删除软件包,autoremove 与 remove 的最大不同点是,autoremove 可以自动删除那些不再被依赖的程序包。例如,yum autoremove dnf。