Ubuntu 软件卸载与清理终极指南

Ubuntu 软件卸载与清理指南

适用范围:Ubuntu 及其衍生发行版(如 Linux Mint、Pop!_OS 等),Debian 系统大部分方法也适用。
目标:帮助你快速、彻底卸载软件并清理残余文件,保持系统整洁。
前提:建议在操作前确认软件名称,并确保有管理员权限(使用 sudo)。

1. 基础知识

Ubuntu 系统中软件的常见安装方式:

  • APT:通过 aptapt-get 管理软件包,适用于 .deb 包。
  • DPKG:底层包管理工具,apt 依赖它,常用于手动安装的 .deb 包。
  • Snap:Ubuntu 推广的容器化包管理。
  • Flatpak:跨发行版的容器化包管理。
  • 源码安装:通过编译源码安装,通常需要手动管理。
  • AppImage:无需安装的便携式应用程序。

卸载时需注意:

  • 选择正确的卸载命令(如 apt removesnap remove)。
  • 清理依赖、缓存和用户目录中的残留文件。
  • 验证卸载是否成功,防止遗漏。

2. 查找软件包名

在卸载前,确认软件的准确包名或ID非常重要。以下是常用方法:

  1. 通过 apt 查找

    apt search <关键词>
    dpkg -l | grep <关键词>
    

    示例:查找 VLC 的包名

    dpkg -l | grep vlc
    
  2. 通过 Snap 查找

    snap list
    
  3. 通过 Flatpak 查找

    flatpak list
    
  4. 检查用户目录(如需清理配置):

    ls -a ~/.config | grep <关键词>
    ls -a ~/.local/share | grep <关键词>
    ls -a ~/.cache | grep <关键词>
    

提示:如果不确定软件的安装方式,可尝试以上命令逐一检查。


3. 使用 APT 卸载软件

APT 是 Ubuntu 默认的包管理工具,适用于通过软件中心、命令行或 PPA 安装的软件。

3.1 卸载软件(保留配置)

  • 适用场景:仅删除软件本体,保留配置文件以便日后复用。
  • 命令
    sudo apt remove <软件包名>
    
  • 示例
    sudo apt remove vlc
    
  • 验证
    which vlc
    dpkg -l | grep vlc
    
    若返回空或无相关信息,表示卸载成功。

3.2 彻底卸载(删除配置)

  • 适用场景:删除软件及其系统级配置文件,推荐默认使用。
  • 命令
    sudo apt purge <软件包名>
    
  • 示例
    sudo apt purge vlc
    
  • 验证:同上。

注意apt purge 不清理用户目录(如 ~/.config/vlc)中的配置,需手动删除(见 3.5)。

3.3 清理依赖

  • 适用场景:移除卸载后不再需要的依赖包。
  • 命令
    sudo apt autoremove
    
  • 验证
    sudo apt autoremove --dry-run
    
    检查是否还有可清理的依赖。

3.4 清理缓存

  • 适用场景:释放 /var/cache/apt/archives 中下载的 .deb 包空间。
  • 命令
    1. 清理过时缓存:
      sudo apt autoclean
      
    2. 清理所有缓存:
      sudo apt clean
      
  • 验证
    du -sh /var/cache/apt/archives
    
    确认缓存目录已清空。

3.5 清理用户目录残留

  • 适用场景:删除软件在用户目录中的配置文件和缓存。
  • 步骤
    1. 检查常见目录:
      ls -a ~/.config | grep <软件名>
      ls -a ~/.local/share | grep <软件名>
      ls -a ~/.cache | grep <软件名>
      
    2. 删除相关文件:
      rm -rf ~/.config/<软件相关目录>
      rm -rf ~/.local/share/<软件相关目录>
      rm -rf ~/.cache/<软件相关目录>
      
  • 示例
    rm -rf ~/.config/vlc
    rm -rf ~/.cache/vlc
    

注意:删除前确认文件无重要数据,必要时备份。


4. 使用 DPKG 卸载软件

DPKG 适用于手动安装的 .deb 包或 APT 无法处理的情况。

  1. 查找已安装包
    dpkg -l | grep <关键词>
    
  2. 卸载软件(保留配置)
    sudo dpkg -r <软件包名>
    
  3. 彻底卸载(删除配置)
    sudo dpkg -P <软件包名>
    
  4. 修复依赖
    sudo apt -f install
    sudo apt autoremove
    
  5. 验证
    dpkg -l | grep <软件包名>
    
    若无输出,表示卸载成功。

注意:优先使用 apt 卸载,DPKG 更适合特殊场景。


5. 使用 Snap 卸载软件

Snap 是 Ubuntu 的容器化包管理方式。

  1. 查看已安装 Snap 软件

    snap list
    
  2. 卸载 Snap 软件

    sudo snap remove <软件名>
    
  3. 清理残留(可选)

    sudo rm -rf /var/lib/snapd/snap/<软件名>
    
  4. 验证

    snap list | grep <软件名>
    

    若无输出,表示卸载成功。

  5. 卸载 Snapd(可选)

    • 如果不再使用 Snap:
      sudo apt purge snapd
      rm -rf ~/snap
      

注意:Snap 卸载通常会自动清理大部分文件,但旧版本可能残留,需手动检查。


6. 使用 Flatpak 卸载软件

Flatpak 是跨发行版的容器化包管理方式。

  1. 查看已安装 Flatpak 应用
    flatpak list
    
  2. 卸载应用
    flatpak uninstall <应用ID或软件名>
    
  3. 清理无用运行时
    flatpak uninstall --unused
    
  4. 清理用户目录残留
    rm -rf ~/.var/app/<应用ID>
    
  5. 验证
    flatpak list | grep <软件名>
    
    若无输出,表示卸载成功。

注意:Flatpak 的应用ID 通常为 com.example.App,卸载时需使用完整ID。


7. 卸载源码安装的软件

源码安装的软件没有包管理器管理,需手动删除。

  1. 定位安装目录
    • 通常在 /usr/local/opt 或用户指定的目录。
    • 检查安装时的 make install 记录或 README 文件。
  2. 删除文件
    sudo rm -rf /usr/local/<软件目录>
    
  3. 清理用户配置
    rm -rf ~/.config/<软件名>
    rm -rf ~/.local/share/<软件名>
    
  4. 验证
    which <软件名>
    
    若返回空,表示卸载成功。

注意:源码安装的软件可能涉及系统库,删除前确认不会破坏依赖。


8. 卸载 AppImage 软件

AppImage 是无需安装的便携式应用。

  1. 删除 AppImage 文件
    • 找到存储位置(如 ~/Downloads 或自定义目录):
      find ~/ -name "*.AppImage"
      
    • 删除:
      rm ~/path/to/<软件名>.AppImage
      
  2. 清理残留配置
    rm -rf ~/.config/<软件名>
    rm -rf ~/.local/share/<软件名>
    
  3. 验证
    • 确认 .AppImage 文件已删除。

注意:AppImage 不影响系统文件,卸载后无需清理依赖。


9. 清理系统级残余

9.1 清理旧内核

  • 适用场景:释放旧内核占用的空间。
  1. 查看当前内核:
    uname -r
    
  2. 列出已安装内核:
    dpkg --list | grep linux-image
    
  3. 删除旧内核:
    sudo apt remove linux-image-<版本号>
    sudo apt autoremove
    
  4. 更新引导:
    sudo update-grub
    

9.2 清理第三方源(PPA)

  1. 查看源列表:
    ls /etc/apt/sources.list.d/
    
  2. 删除无用 PPA:
    sudo rm /etc/apt/sources.list.d/<文件名.list>
    
  3. 更新源:
    sudo apt update
    

10. 常用组合命令

10.1 APT 软件彻底卸载

sudo apt purge <软件包名>
sudo apt autoremove
sudo apt clean
rm -rf ~/.config/<软件名>
rm -rf ~/.cache/<软件名>

10.2 Snap 软件卸载

sudo snap remove <软件名>
rm -rf ~/snap/<软件名>

10.3 Flatpak 软件卸载

flatpak uninstall <应用ID>
flatpak uninstall --unused
rm -rf ~/.var/app/<应用ID>

11. 故障排查

  1. 找不到包名
    • 使用 dpkg -l | grep <关键词>apt search <关键词> 查找。
    • 检查 Snap 或 Flatpak 列表。
  2. 依赖破损
    sudo apt -f install
    sudo apt autoremove
    
  3. 卸载失败
    • 确认是否有运行中的进程:
      ps aux | grep <软件名>
      kill -9 <进程ID>
      
    • 重新尝试卸载。
  4. Snap/Flatpak 无法卸载
    • 确保 snapdflatpak 服务正常,或重新安装后卸载。

12. 最佳实践

  1. 优先使用 apt purge:减少配置文件残留。
  2. 定期清理缓存:每月运行 apt autoremoveapt autoclean
  3. 验证卸载:使用 which 或包管理器命令确认软件已移除。
  4. 备份重要配置:清理用户目录前,备份 .config 中的关键文件。
  5. 谨慎操作系统文件:避免误删 /etc/usr 中的共享文件。

总结

通过本指南,你可以轻松卸载 Ubuntu 系统中的软件并清理残留。核心步骤:

  1. 确认安装方式:APT、Snap、Flatpak、源码或 AppImage。
  2. 执行卸载:使用对应命令(如 apt purgesnap remove)。
  3. 清理残留:处理依赖、缓存和用户目录文件。
  4. 验证结果:确保软件和相关文件已完全移除。

按此笔记操作,即可高效完成卸载任务,保持系统干净。祝使用愉快!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/901219.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

基于javaweb的SpringBoot新闻视频发布推荐评论系统(源码+部署文档)

技术范围&#xff1a;SpringBoot、Vue、SSM、HLMT、Jsp、PHP、Nodejs、Python、爬虫、数据可视化、小程序、安卓app、大数据、物联网、机器学习等设计与开发。 主要内容&#xff1a;免费功能设计、开题报告、任务书、中期检查PPT、系统功能实现、代码编写、论文编写和辅导、论文…

Linux-内核驱动

open uboot.bin target-connect U-Boot&#xff08;Universal Boot Loader&#xff09;是一种广泛使用的开源引导加载程序&#xff0c;它允许用户从各种设备&#xff08;如硬盘、USB设备、网络等&#xff09;加载操作系统。U-Boot提供了丰富的命令行接口&#xff08;CLI&#…

DAPP实战篇:使用ethers.js连接以太坊智能合约

专栏:区块链入门到放弃查看目录-CSDN博客文章浏览阅读344次。为了方便查看将本专栏的所有内容列出目录,按照顺序查看即可。后续也会在此规划一下后续内容,因此如果遇到不能点击的,代表还没有更新。声明:文中所出观点大多数源于笔者多年开发经验所总结,如果你想要知道区块…

[原创](现代Delphi 12指南): 设置、运行和调试你的第一个macOS应用程序.

[作者] 常用网名: 猪头三 出生日期: 1981.XX.XX 企鹅交流: 643439947 个人网站: 80x86汇编小站 编程生涯: 2001年~至今[共24年] 职业生涯: 22年 开发语言: C/C、80x86ASM、Object Pascal、Objective-C、C#、R、Python、PHP、Perl、 开发工具: Visual Studio、Delphi、XCode、C …

Adobe Photoshop 2025 Mac中文 Ps图像编辑

Adobe Photoshop 2025 Mac中文 Ps图像编辑 一、介绍 Adobe Photoshop 2025 Mac版集成了多种强大的图像编辑、处理和创作功能。①强化了Adobe Sensei AI的应用&#xff0c;通过智能抠图、自动修复、图像生成等功能&#xff0c;用户能够快速而精确地编辑图像。②3D编辑和动画功…

蓝桥杯备赛知识点总结

一、数论 如果想要计算整除向上取整&#xff08;xy-1&#xff09;/y 或者&#xff08;x-1&#xff09;/y 1 最大公约数&#xff1a; int gcd(int a,int b){return b0?a:gcd(b,a%b); }最小公倍数&#xff1a; int lcm(int a,int b){return a/gcd(a,b)*b; } 埃氏筛法&#…

设计模式 --- 状态模式

状态模式​​是一种​​行为型设计模式​​&#xff0c;允许对象在内部状态改变时动态改变其行为​​&#xff0c;使对象的行为看起来像是改变了。该模式通过将状态逻辑拆分为独立类​​&#xff0c;消除复杂的条件分支语句&#xff0c;提升代码的可维护性和扩展性。 状态模式的…

【读者求助】如何跨行业进入招聘岗位?

文章目录 读者留言回信岗位细分1. 中介公司的招聘岗位2. 猎头专员3. 公司的招聘专员选择建议 面试建议1. 请简单介绍你过去 3 年的招聘工作经历&#xff0c;重点说下你负责的岗位类型和规模2. 你在招聘流程中最常用的渠道有哪些&#xff1f;如何评估渠道效果&#xff1f;3. 当你…

AI Agent入门指南

图片来源网络 ‌一、开箱暴击&#xff1a;你以为的"智障音箱"&#xff0c;其实是赛博世界的007‌ ‌1.1 从人工智障到智能叛逃&#xff1a;Agent进化史堪比《甄嬛传》‌ ‌青铜时代&#xff08;2006-2015&#xff09;‌ “小娜同学&#xff0c;关灯” “抱歉&…

pnpm 中 Next.js 模块无法找到问题解决

问题概述 项目在使用 pnpm 管理依赖时,出现了 “Cannot find module ‘next/link’ or its corresponding type declarations” 的错误。这是因为 pnpm 的软链接机制在某些情况下可能导致模块路径解析问题。 问题诊断 通过命令 pnpm list next 确认项目已安装 Next.js 15.2.…

vulnhub:sunset decoy

靶机下载地址https://www.vulnhub.com/entry/sunset-decoy,505/ 渗透过程 简单信息收集 nmap 192.168.56.0/24 -Pn # 确定靶机ip&#xff1a;192.168.56.121 nmap 192.168.56.121 -A -T4 # 得到开放端口22,80 在80端口得到save.zip&#xff0c;需要密码解压。 john破解压缩…

代码学习总结(一)

代码学习总结&#xff08;一&#xff09; 这个系列的博客是记录下自己学习代码的历程&#xff0c;有来自平台上的&#xff0c;有来自笔试题回忆的&#xff0c;主要基于 C 语言&#xff0c;包括题目内容&#xff0c;代码实现&#xff0c;思路&#xff0c;并会注明题目难度&…

OSPF的接口网络类型【复习篇】

OSPF在不同网络环境下默认的不同工作方式 [a3]display ospf interface g 0/0/0 # 查看ospf接口的网络类型网络类型OSPF接口的网络类型&#xff08;工作方式&#xff09;计时器BMA&#xff08;以太网&#xff09;broadcast &#xff0c;需要DR/BDR的选举hello&#xff1a;10s…

PHM学习软件|PHM预测性维护系统

使用步骤教程如下 1、登录 用户名&#xff1a;52phm 密码&#xff1a;xxx &#xff08;区别在于不同用户密钥不一样&#xff09; 2、上传需要分析的数据集 支持数据集格式&#xff1a;csv、xlsx、xls、mat、json 3、主题1&#xff1a;机械参数计算 计算轴承、齿轮、皮带的…

MySQL MVCC 机制详解

MySQL MVCC 机制详解 1. MVCC 基本概念 MVCC 是一种并发控制的方法&#xff0c;主要用于数据库管理系统&#xff0c;允许多个事务同时读取数据库中的同一个数据项&#xff0c;而不需要加锁&#xff0c;从而提高了数据库的并发性能。 ┌──────────────────…

Model Context Protocol (MCP) - 尝试创建和测试一下MCP Server

1.简单介绍 MCP是Model Context Protocol的缩写&#xff0c;是Anthropic开源的一个标准协议。MCP使得大语言模型可以和外部的数据源&#xff0c;工具进行集成。当前MCP在社区逐渐地流行起来了。同时official C# SDK(仓库是csharp-sdk) 也在不断更新中&#xff0c;目前最新版本…

(三)行为模式:12、访问者模式(Visitor Pattern)(C++示例)

目录 1、访问者模式含义 2、访问者模式的UML图学习 3、访问者模式的应用场景 4、访问者模式的优缺点 5、访问者模式C实现的实例 1、访问者模式含义 访问者模式&#xff08;Visitor Pattern&#xff09;是一种行为型设计模式&#xff0c;它允许将一个作用于某对象结构中的各…

windows安卓子系统wsa隐藏应用列表的安装激活使用

Windows 11 安卓子系统应用部署全攻略 windows安卓子系统wsa隐藏应用列表的安装激活使用|过检测核心前端 在 Windows 11 系统中&#xff0c;安卓子系统为用户带来了在电脑上运行安卓应用的便利。经过一系列的操作&#xff0c;我们已经完成了 Windows 11 安卓子系统的底层和前端…

Elasticsearch 集群搭建

一、集群规划 1.1 节点角色规划 节点类型配置要求推荐数量Master节点低磁盘、中等CPU/内存3&#xff08;奇数防止脑裂&#xff09;Data节点高磁盘、高内存、多核CPU根据数据量扩展Coordinating节点高CPU/内存、低磁盘2&#xff08;可选&#xff09; 1.2 硬件建议 内存&…

React 响应事件

开发环境&#xff1a;Reacttsantd 使用 React 可以在 JSX 中添加 事件处理函数。其中事件处理函数为自定义函数&#xff0c;它将在响应交互&#xff08;如点击、悬停、表单输入框获得焦点等&#xff09;时触发。 学习内容 1.编写事件处理函数的不同方法 2.如何从父组件传递事件…