2016年7月25日 星期一

[ubuntu] 徹底移除指令

在 Ubuntu 下移除某個軟體套件,使用的指令是 apt-get remove,例如:

    sudo apt-get remove texlive-full

但由於先前安裝此套件,會一併自動安裝相依套件(dependencies),所以需要再用 autoremove 清理。

    sudo apt-get autoremove

或是在 remove 時加參數:

    sudo apt-get remove --auto-remove

但是這樣還不夠乾淨,因為預設的 remove 行為,會保留一些設定檔之類的遺物。所以需要用 purge 的方式移除。針對單一套件使用 purge 方式徹底移除:

    sudo apt-get purge texlive-full



    sudo apt-get remove --purge texlive-full

在使用 autoremove 時可以加上 --purge 參數,同時徹底移除套件。

    sudo apt-get autoremove --purge

對於先前用 autoremove 或 remove 或其它方式移除,但還沒經過 purge 徹底移除的套件,使用 dpkg 指令可以列出清單:

    dpkg -l | grep ^rc

其中 ^rc 代表行首以 rc 標示開頭,這是只有 remove 沒有 purge 的意思。

要批次移除這些被標為 rc 的套件,可以配合 grep + awk 指令。

    dpkg -l | grep ^rc | awk '{ print $2 }'

指令組合後即可批次徹底移除這些殘留套件。

    sudo apt-get purge `dpkg -l | grep ^rc | awk '{ print $2 }'`