1. 程式人生 > >如何在Linux中使用命令列解除安裝軟體

如何在Linux中使用命令列解除安裝軟體

所有的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/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。