如何在Linux中使用命令行卸載軟件

全部的Linux系統中都帶有包管理器命令,好比Ubuntu發行版裏的dpkg命令,CentOS/RHEL發行版裏帶的yum和rpm命令,下面我就以本身比較熟悉的CentOS/RHEL系列發行版來說解,以nginx這個經常使用的web軟件爲例。nginx

查看系統上是否安裝了nginx

命令web

rpm -qa | grep nginx 

結果以下面圖中所示:數據庫

從上面的圖中能夠看到,確實已經安裝好了nginx這個軟件,rpm -qa命令的含義是查詢全部安裝到系統上的軟件,而grep是從查詢的結果中搜索。若是沒有返回結果,那麼可使用yum命令來安裝。命令是:緩存

yum install nginx -y 

安裝完成後就可以看到對應的搜索結果,咱們就可使用自帶的包管理器yum和rpm命令來刪除這個軟件。測試

yum命令 卸載

yum erase nginx -y 

執行結果以下所示:3d

看到complete的提示說明已經成功刪除,此時再執行nginx命令查看軟件是否存在,結果以下所示,從圖中能夠看到提示的意思是沒有找到這個命令,說明nginx軟件已經被成功卸載。日誌

rpm命令卸載軟件

rpm命令卸載軟件的格式是:code

rpm -e softwarename

softwarename 指的是軟件名稱,好比咱們要卸載nginx就是:blog

rpm -e nginx 

而後等到命令執行完成,結果以下,從結果中咱們能夠看到,這個命令更直接了,能成功刪除的時候沒有任何提示。ip

一樣的,咱們經過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/nginx

rm -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。