如何在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。