apt remove 和 apt purge: 有什么區(qū)別?
如果你想 ??在 Ubuntu 上使用終端卸載軟件??,可以使用:
但是在很多論壇,你可能會看到別人說,如果你想徹底刪除軟件就用 ??apt purge?
?。
你可能會覺得很困惑,因為 ??apt purge?
?? 和 ??apt remove?
? 看起來是一樣的。
為什么會有兩個如此像的命令來刪除軟件包呢?兩者之間有什么不同呢?下面將為你揭曉。
apt-remove 和 apt-purge 有什么不同?
??apt-remove?
?? 和 ??apt-purge?
?? 的相同之處就是都可以卸載軟件包,但是運行 ??apt-purge?
? 除了可以刪除安裝包之外,還可以清除相關的配置文件。這是兩者之間唯一的不同點。要注意的是這兩條命令都不能刪除用戶主目錄中相關的應用程序文件。
你是否遇到過這樣的情況,卸載一個軟件然后重新安裝,卻發(fā)現之前的設置都還在。這是因為用 ??apt remove?
? 不能刪除該軟件的相關配置文件。
哪些東西被刪除了?哪些還在?
我分享一個使用 ??apt remove?
?? 和 ??apt purge?
? 兩個命令分別卸載 mplayer 這個軟件的實際例子。重點是看每次操作后還殘余哪些文件。
這是刪除前的文件:
mplayer before removal
現在運行 ??apt remove?
? 這個命令:
apt uninstall package ubuntu
下面的是還殘留在系統(tǒng)中的文件:
files after mplayer removal
我們可以看到,有兩個地方殘留著 mplayer 的文件: ??/etc?
?? 和 ??/home/abhishek?
?。
這次我們重新安裝 mplayer,然后用 ??apt purge?
? 來卸載軟件。
apt purge command
現在讓我們看看與 mplayer 相關的文件:
files after mplayer removal
我們可以看到 ??/etc?
? 目錄下的文件已經沒有了。
但是在主目錄中的文件呢???apt purge?
? 會刪除它們嗎?
答案是否定的。??apt?
? 命令不會刪除主目錄中的配置文件。所以它們仍然在系統(tǒng)中,除非你手動刪除。但是這些文件所占的空間真的很小,幾乎不占磁盤空間。
值得注意的是,不是所有的軟件在主目錄或者 ??/etc?
? 目錄下都有配置文件。
使用 apt remove 或者 apt purge 的效果
我能想到的一個實際例子就是 Discord,你用 deb 文件 ??在 Ubuntu 上安裝了 Discord??。然后登錄自己的賬號,之后又卸載并重新用 deb 文件安裝。
現在如果你打開 Discord,你會發(fā)現你的賬號自動登錄了。是不是覺得很奇怪?
這是個功能,像一些軟件,比如 Discord、VirtualBox,它們會提供更新,就是卸載現在的版本然后下載新的(盡管你不知道它內部怎么進行的),但是它在卸載的時候,這些軟件的配置文件沒有被刪除,所以等你打開這些軟件的時候就會自動登錄。
當你想卸載一個軟件,但是想保留你過去使用該軟件留下的配置文件的時候,你就可以用 ??apt remove?
?。
但是,有時候用它不能滿足你的需求,比如當你沒有配置好一個軟件的時候,你想要重新開始,這個時候用 ??apt purge?
? 就比較合適。
運行 apt purge 是否可以用通配符刪除?
當你刪除一個包的時候,它會提示 ??removing package-name*?
?。這意味著它會刪除以這個包名開頭的所有文件。
apt purge wild card
我在手冊頁之類的文檔中沒有找到關于這個問題的答案。所以我自己做了一個小測試,我安裝了 espeak 和 espeak-ng 這兩個軟件,espeak* 應該可以通配擴展到 espeak-ng。
但是當我用 ??apt purge?
? 刪除 espeak 包時,espeak-ng 包還在,沒有被一并刪除。因此,這似乎是有一種防止通配符的擴展的機制。
那么,你應該使用 apt remove 還是 apt purge 呢?
很少有人會一直使用 ??apt purge?
?。
在我看來,一般清況下,用 ??apt remove?
?? 就可以了,但是當你想刪除那些自定義配置文件時,你就得用 ??apt purge?
?。
不管是用 ??apt remove?
?? 還是 ??apt purge?
??,你都需要從用戶的主目錄中刪除殘余的配置文件,并運行 ??apt autoremove?
? 來清除任何依賴的包。
現在到你啦。你現在對 ??apt remove?
?? 和 ??apt purge?
? 的區(qū)別更加了解嗎?你更喜歡使用哪一個呢?