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