快轉到主要內容

Linux如何解除安裝軟體並刪除乾淨

分類   Linux系統 Linux使用技巧
標籤   Ubuntu Flatpak Snap AppImage
🗓️ 民國113年 甲辰年
✍ 切換正體/簡體字
目錄

How to uninstall applications on Linux.

好問題。

首先,軟體不是天降之物,你不可以指著桌面的一個圖示就說我要把它刪掉!!!

你要先問軟體是哪來的?了解如何透過Desktop Entry找到程式具體路徑,了解程式是怎麼安裝的,使用對應的指令移除。最後再來刪除殘餘的軟體檔案。

本文以Ubuntu 24.04 LTS桌面版為例。

1. Desktop Entry與Linux軟體的關係
#

儘管我們可以使用apt list --installed指令列出系統所安裝的套件,但Linux不是只有APT一種安裝軟體方法,有時你會搞不清楚桌面上的某程式是哪裡來的。

要找出程式在哪裡,直觀的方式是使用Desktop Entry。

Linux萬物皆是檔案,很多程式通常就是一個執行檔,然後再透過桌面環境的Desktop Entry讓你方便開啟他們。你在Linux桌面看到的應用程式多半是由「Desktop Entry」組成,這些檔案定義了圖示,以及要開啟什麼程式。

Linux的Desktop Entry路徑通常位於/usr/share/applications/ /usr/local/share/applications/ ~/.local/share/applications/

所有可能的路徑請用echo $XDG_DATA_DIRS指令列出。

桌面環境會從這些路徑讀取,將Desktop Entry顯示在桌面和應用程式列表。

請注意:不是每個程式都會有Desktop Entry,比如ffmpeg,此時就得用指令去找。


比如,Firefox的Desktop Entry位於/usr/share/applications/firefox.desktop,裡面執行的指令為Exec=firefox

[Desktop Entry]
Type=Application
Exec=firefox %u
Terminal=false
Icon=firefox
Categories=GNOME;GTK;Network;WebBrowser;

which firefox指令確認,我們知道Firefox的執行的絕對路徑位於/usr/bin/firefox。於是使用者點選桌面Firefox圖示就會執行/usr/bin/firefox指令,從而開啟Firefox瀏覽器。


所以你不知道桌面上的應用程式圖示究竟是指向哪一個程式的時候,可以透過查看Desktop Entry來判別,你甚至可以判定它是否為Snap或Flatpak軟體。

但是Desktop Entry並不等同程式本體,充其量只是捷徑而已,刪除Desktop Entry檔案並不會刪除程式。

那麼我們找到了Firefox執行檔路徑,可以直接刪除/usr/bin/firefox這個檔案嗎?否,請往下看,確認軟體安裝來源再決定怎麼處理。

2. 可能的軟體安裝來源
#

以Ubuntu桌面版來說,常見的安裝來源:

  • Ubuntu軟體中心:開啟軟體中心,找到應用程式頁面,點選解除安裝。(GNOME是軟體中心,KDE叫做Discover)
  • APT:使用apt remove 套件名稱刪除套件
  • Python Pip:使用pip uninstall刪除。其他程式語言的套件,例如NodeJS NPM、Rust Cargo、Ruby Gem參考此概念移除。
  • Snap:使用snap purge 套件名稱刪除套件
  • Flatpak:使用flatpak remove 套件名稱刪除套件
  • AppImage:找到AppImage執行檔所在路徑並將其刪除。
  • Wine:開啟Wine的控制台wine uninstaller,從中解除安裝程式。
  • tarball解壓縮:找到軟體執行檔位置並刪除。

只要是透過套件管理器安裝的軟體,通常它會在解除安裝後刪除對應服務,並自行處理掉多餘的Dekstop Entry,讓軟體圖示在解除安裝後從桌面消失。

3. 若軟體是手動編譯安裝的
#

使用指令稿、make install編譯安裝的軟體比較麻煩,這個不見得能刪得乾淨的說。若是驅動程式和Linux核心模組就更為複雜了。

這個得看軟體開發者的說法。

Linux軟體通常會安裝到/usr/local/bin/usr/bin~/.local/bin~/.local/share/bin

查看目前系統全部的安裝路徑:echo $PATH

若軟體只有一個執行檔,可以嘗試直接rm /執行檔路徑/指令刪除。

4. 清除軟體殘留設定檔
#

Linux沒有Windows登錄檔這種東西,但仍有殘留應用程式檔案的可能。

使用指令apt remove 套件名稱刪除後可以用apt purge 套件名稱嘗試刪除殘餘設定檔。不過有時還是得找殘留設定檔。

Linux程式的設定檔,很多都會放在使用者家目錄/home/使用者名稱

使用ls -al ~指令列出來,你就會看到家目錄下有許多點開頭的隱藏目錄,這些常常就是程式放置設定檔的地方。你可以從這裡去刪軟體設定檔。

理想情況下,程式應該遵守XDG_CONFIG_HOME標準,將設定檔統一放到~/.config~/.local/share目錄,例如Google Chrome就是放在~/.config/google-chrome/

不過很多程式不守規矩會在家目錄倒垃圾,比如Firefox,就大喇喇的放在~/.mozilla目錄。

此外,Flatpak程式設定檔會放在~/.var/var/lib/flatpak,Snap則是~/snap/var/lib/snapd/snaps

參考資料
#

相關文章

Linux應該用何種方法安裝應用程式,談談我的軟體安裝偏好來源
分類   Linux系統 Linux使用技巧
標籤   Flatpak Snap AppImage
Ubuntu系統下make install指令前,三思而後行
分類   Linux系統 Linux使用技巧
標籤   Distrobox Flatpak Ubuntu
Ubuntu LTS如何進行大版本系統升級
分類   Linux系統 Linux使用技巧
標籤   Ubuntu

留言板

此處提供二種留言板。點選按鈕,選擇您覺得方便的留言板。要討論程式碼請用Giscus,匿名討論請用Disqus。

這是Giscus留言板,需要Github帳號才能留言。支援markdown語法,若要上傳圖片請貼Imgur或Postimages。您的留言會在Github Discussions向所有人公開。

這是Disqus留言板,您可能會看到Disqus強制投放的廣告。有時留言可能會被系統判定需審核,導致延遲顯示,請見諒。若要上傳圖片請貼Imgur或Postimages。