☰
Ubuntu彻底卸载Chrome与Opera:apt purge与dpkg -P全流程详解
2026/10/1 11:01:30 网站建设 项目流程

说实话,在Ubuntu上卸载Chrome和Opera这件事,我一直觉得是被很多人低估的一个“隐形深坑”。表面上不就是sudo apt remove google-chrome-stable一条命令的事吗?真正动手时你才会发现,图标没了、启动器里还留着残影、~/.config下躺着几个G的旧配置、下次重装浏览器又莫名其妙把历史记录带了回来。这篇文章不聊虚的,直接把Ubuntu下安装和卸载软件的三种方式讲透,再把Chrome和Opera的“彻底卸载”一步步拆给你看,最后附上我踩过的坑和排错记录,保证你照着操作能把浏览器清得干干净净。

1. 三种软件管理方式的选择逻辑

很多新手第一次接触Linux,最容易懵的就是“装软件为什么有那么多方法”。Windows下基本就是双击exe或者用商店,Mac下拖进Applications文件夹就完事,但到了Ubuntu,光命令就有apt、dpkg、snap,再加上图形界面的“软件中心”,选择一多,人就晕了。

1.1 图形界面方式:适合不想记命令的人

Ubuntu自带的“软件中心”(也叫App Center,不同版本叫法不一样)本质上是一个图形化的包管理前端。你搜索、点安装、点卸载,后台调用的还是apt或者snap的命令。这种方式的好处是所见即所得,特别适合刚接触Linux、对终端有恐惧感的朋友。

但我个人的建议是:软件中心适合“装”软件,不太适合“卸”软件。原因很现实——图形界面为了友好,做了很多信息隐藏。卸载时它不会告诉你这个包还带了哪些依赖、哪些配置文件会被留下、哪些第三方源还挂在系统里。等你发现硬盘空间没少多少、配置还在的时候,反而更抓狂。

1.2 APT方式:日常使用的主力

apt全称是 Advanced Package Tool,它会从/etc/apt/sources.list和/etc/apt/sources.list.d/下配置的软件源里检索软件包信息,自动分析依赖关系。

装软件用的是sudo apt install 包名,卸载常见的有两条路:

  • sudo apt remove 包名:只删程序本体,保留配置文件。
  • sudo apt purge 包名:程序本体和配置文件一起删,更彻底。

apt remove和purge的区别,我后面专门讲,这是很多人第一次“卸载不干净”的根源。

1.3 dpkg方式:底层包管理工具

dpkg是Debian系Linux的最底层包管理工具,apt其实也是建立在dpkg之上的。dpkg直接操作.deb格式的安装包,粒度更细,也更危险——它不检查依赖关系。

拿标题里提到的sudo dpkg -P来说,-P是--purge的缩写,表示“清除模式卸载”。同理还有:

  • sudo dpkg -r等价于apt remove,只删包不删配置。
  • sudo dpkg -P等价于apt purge,包和配置一起删。
  • sudo dpkg -i xxx.deb手动安装一个本地deb包。
  • sudo dpkg -l | grep xxx查看某个软件是否安装。

那什么时候必须用dpkg?当你手里只有一个.deb文件、又不想折腾软件源的时候。Chrome和Opera官方提供的安装包都是.deb,很多教程也直接让你sudo dpkg -i google-chrome-stable_current_amd64.deb。这没问题,但如果你第一次安装时使用了dpkg -i,那么卸载时同样可以用dpkg -P来处理,两者是对应的。

提示:除非你明确知道自己在做什么,否则日常安装卸载还是优先用apt。dpkg适合处理单个deb包、查看包信息、解决特定依赖问题,不是日常主力。

1.4 三种方式的对比速查表
方式安装命令卸载命令自动处理依赖适用场景
图形软件中心点击安装点击移除会新手日常装软件
APTsudo apt install 包名sudo apt purge 包名会日常主力,推荐
dpkgsudo dpkg -i 包.debsudo dpkg -P 包名不会手动安装/卸载单个deb包

这里补充一个容易混淆的点:apt purge和dpkg -P在清理效果上是等价的,因为apt最终也是调用dpkg去执行具体的包操作。区别只在于apt会先去处理依赖关系,而dpkg直接动手、不管别人的死活。所以你在很多“彻底卸载”教程里看到dpkg -P,本质上就是在用最底层的方式把包和配置一次性铲掉。

2. 为什么要专门讲“彻底卸载”:浏览器的卸载残留从哪来

Chrome和Opera这类浏览器,和普通的文本编辑器、图片查看器有个很大的不同:它们的安装过程会往系统的多个位置写入文件,而不只是“装进一个目录”。理解了这个底层逻辑,你才能真正明白什么叫“彻底卸载”。

2.1 浏览器在系统里到底放了哪些东西

一个典型的Chrome安装,至少会碰这几个地方:

  • 程序本体:/opt/google/chrome/
  • 全局配置与缓存:/etc/opt/chrome/
  • 桌面启动器:/usr/share/applications/google-chrome.desktop
  • APT软件源条目:/etc/apt/sources.list.d/google-chrome.list
  • 用户配置文件:~/.config/google-chrome/
  • 用户缓存:~/.cache/google-chrome/

Opera的路径类似:

  • /usr/lib/x86_64-linux-gnu/opera/
  • ~/.config/opera/
  • ~/.cache/opera/

问题就出在**“用户配置文件”和“APT软件源条目”**这两块。apt remove甚至apt purge默认只处理系统级的包数据和系统性配置,用户目录下的~/.config里的个人数据,包管理器根本不视为“包的一部分”。所以很多人卸载完Chrome,重装一打开,发现登录状态、历史记录、插件全回来了——就是这个原因。

2.2 remove和purge到底差在哪

这是我每次讲卸载都要反复强调的点。简单做个类比:

  • remove相当于你把房子里的家具搬走了,但房子的钥匙、水电账单还留着。
  • purge相当于连钥匙、水电户头一起注销了,房子彻底退租。

用命令层面的话说,remove删除的是/usr/bin、/opt这些地方的程序文件,但保留/etc下的配置和包管理器记录的状态;purge连/etc下的配置一起删。

对浏览器这种软件来说,我强烈建议用purge而不是remove。原因就是一个——你既然都不想要这个浏览器了,留着它的配置干什么?等着下次“春风吹又生”吗?

2.3 第三方软件源的“尾巴”

Chrome和Opera从官网下载安装时,通常会往/etc/apt/sources.list.d/下写入一个自己的软件源文件,方便日后通过apt upgrade自动更新。比如Chrome对应google-chrome.list,Opera对应opera-stable.list。

卸载软件时,apt和dpkg都不会自动删这个源文件。后果就是:哪怕你已经把浏览器卸了,sudo apt update的时候系统还是会去访问Google或Opera的服务器,白白增加更新耗时,偶尔还会因网络原因报错。彻底卸载的意义就在这里——连源一起清理掉。

3. 实操:彻底卸载Chrome和Opera的完整步骤

下面这部分是我真正建议你保存下来的操作手册。两个浏览器我分别给出一套命令流程,每步都解释为什么这么做。

3.1 彻底卸载Chrome

第一步,先确认系统里到底装了哪些相关包。Chrome有时候不只有一个包,比如google-chrome-stable、google-chrome-beta,甚至你手动装过chrome别名的第三方包。用一个命令看清楚:

dpkg -l | grep -i chrome

执行后你会看到类似这样的输出:

ii google-chrome-stable 当前版本号 amd64 Google Chrome (64-bit)

注意第一列开头的ii表示正常安装状态。如果看到了,就说明包名是google-chrome-stable。

第二步,用 purge 彻底卸载:

sudo apt purge google-chrome-stable

这条命令会自动分析依赖,把和Chrome相关的系统级文件清掉。如果提示有依赖问题,可以先执行sudo apt --fix-broken install修复,再回来卸载(这个后面排错部分细说)。

第三步,删除APT软件源文件:

sudo rm /etc/apt/sources.list.d/google-chrome.list

如果你安装时用的文件名不同,可以先看下目录里都有什么:

ls /etc/apt/sources.list.d/

把带google或chrome字样的文件删掉就行。

第四步,清理用户配置和缓存目录。这一步决定了你是“卸载”还是“彻底卸载”:

rm -rf ~/.config/google-chrome rm -rf ~/.cache/google-chrome

注意:rm -rf是危险命令,删之前务必确认目录名写对了。稳妥起见,可以先ls -d ~/.config/google-chrome看一眼目录真实存在再动手。

第五步,验证卸载结果:

dpkg -l | grep -i chrome which google-chrome ls ~/.config/google-chrome 2>/dev/null

第一条命令没有任何输出、后面两条提示找不到文件,就说明清理干净了。

3.2 彻底卸载Opera

Opera的卸载流程和Chrome几乎一样,只是包名和路径不同。

第一步,查看已安装的Opera相关包:

dpkg -l | grep -i opera

老版本Opera可能有多个,比如opera-stable、opera-beta。当前系统装了哪个,以查询结果为准。

第二步,执行卸载:

sudo apt purge opera-stable

这里有个小细节:Opera有些历史版本安装时会装成一个叫opera的包,有些版本叫opera-stable。你按第一步查出来的实际包名来卸载就行,别凭记忆猜。

第三步,删除软件源:

sudo rm /etc/apt/sources.list.d/opera-stable.list

Opera的源文件常见名是opera-stable.list,老系统里也可能是opera.list。

第四步,清理用户的配置缓存:

rm -rf ~/.config/opera rm -rf ~/.cache/opera

另外,Opera有时还会留下一个~/.config/opera-beta或者~/.config/opera-developer,如果你装过测试版或开发版,一并删掉。

第五步,同样执行一遍验证命令。

3.3 使用 dpkg -P 进行清理

前面说的这些用apt purge都能完成,但标题里特别提到sudo dpkg -P,我再单独讲讲它的用法。有些老教程会推荐先apt remove,再手动删目录,完全没有必要。直接一条dpkg --purge就能把包和系统级配置都干掉:

sudo dpkg --purge google-chrome-stable

注意,-P是--purge的简写。如果你用了dpkg -r,那只是remove,配置还是会留下。两者效果天差地别:

sudo dpkg -P google-chrome-stable # 彻底清除包和配置 sudo dpkg -r google-chrome-stable # 只删除包,保留配置

那为什么有了apt purge还要用dpkg -P?因为当你遇到依赖关系损坏、apt无法正常执行的时候,dpkg往往是最后一根救命稻草。比如系统里某个包处于半安装状态,apt purge会先尝试处理依赖,然后卡住报错;而dpkg -P可以直接把包从数据库里抹掉,强制清场。当然,这招也要慎用,只适合你非常确定这个包没有其他依赖者的情况。

3.4 手动清理桌面残留图标

有时候包和配置都删了,但应用菜单里还能看到一个灰色的浏览器图标。这通常是因为~/.local/share/applications/下还躺着旧的desktop文件。

ls ~/.local/share/applications/ | grep -i chrome ls ~/.local/share/applications/ | grep -i opera

有输出就删掉对应文件,然后刷新桌面数据库:

sudo update-desktop-database

如果连这个也试了,图标还顽固地挂在菜单里,可以试试注销重新登录一次,让桌面环境重新加载应用列表。这一步基本能解决桌面残留的问题。

4. 常见问题与排查实录

这部分我把实际遇到比较多的问题列出来,每个都配上排查思路和解决方案,方便你直接“抄作业”。

4.1 卸载时报“dependency problems prevent configuration of xxx”

这个报错我在很多卸载场景里都见过,格式化一下是:

dpkg: dependency problems prevent configuration of baidunetdisk

字面意思是“依赖问题阻碍了某包被配置”。虽然示例里是百度网盘,但原理是通用的——系统中某个包处于损坏状态,导致后续任何apt操作都会卡住,包括卸载Chrome和Opera。

解决思路分两步。先尝试修复:

sudo apt --fix-broken install

这一步会尝试自动修复所有损坏的依赖关系。如果成功,再回去执行卸载。如果失败,报错还挂在baidunetdisk这个包上,可以针对性地处理:

sudo dpkg --remove --force-remove-reinstreq baidunetdisk

--force-remove-reinstreq的意思是“强制删除这个等待重新安装的损坏包”。注意这个参数是有风险的,但对付已经在系统里反复横跳的坏包,这招见效最快。处理完之后记得再跑一遍:

sudo apt update sudo apt --fix-broken install

确认系统包状态干净了,再继续浏览器的卸载。

4.2 提示“另一个软件包管理实例正在运行”

这个报错多发生在多个终端窗口同时操作apt时,或者上次apt操作被Ctrl+C中断过。提示信息一般是:

E: Could not get lock /var/lib/dpkg/lock-frontend - open (11: Resource temporarily unavailable)

很多教程会让你直接删锁文件,我不建议这么做。正确做法是先看看是什么进程占用了锁:

ps aux | grep -E 'apt|dpkg'

查到PID后,如果确实是apt/dpkg进程卡死了,再用kill结束它:

sudo kill 进程PID

如果这个办法行不通,还有一种比较稳妥的锁检查手段:

sudo fuser -v /var/lib/dpkg/lock

它会列出占用该锁的进程,你再用kill清理。切记不要上来就rm /var/lib/dpkg/lock,这会让包管理状态文件直接损坏,带来更大的麻烦。

4.3 卸载后磁盘空间没变少

很正常。用户目录下的缓存没有删,浏览器缓存动辄几个G,全堆在~/.cache里。你只执行了apt purge,这部分文件压根不在apt管辖范围内。解决方案就是一节里说的,手动删除~/.cache/google-chrome和~/.config/google-chrome。

想验证空间是否真的释放了,可以用:

du -sh ~/.cache/google-chrome

执行删除命令前先看一眼大小,删完再看一眼是否存在,确认得明明白白。

4.4 卸载后重新安装,配置居然全回来了

这个问题几乎每个Linux用户都遇到过。你在软件中心点“移除”,以为万事大吉,下次装回来发现登录状态和书签还在。原因就是:图形界面的“移除”多数只是remove级别,没动用户目录。

破除这个怪圈的办法只有一条:卸载后手动清掉~/.config下的对应目录。没有第二条路。这也是我一直在文章里强调“彻底”卸载的原因。

4.5 dpkg卸载时报“package is in a very bad inconsistent state”

如果你用dpkg -P清理Chrome时碰到这个报错,说明这个包半安装半卸载,状态记录损坏了。处理方案是先强制移除包状态,再清理:

sudo dpkg --remove --force-remove-reinstreq google-chrome-stable sudo dpkg --purge --force-remove-reinstreq google-chrome-stable

第一条强制移除包文件,第二条强制清除配置状态。跑完基本就能把这个包从dpkg数据库里抹干净。

5. 常见问题速查表

现象最常见原因直接解决方案
卸载后浏览器还能通过菜单启动用户配置没删删除~/.config/google-chrome或~/.config/opera
apt update访问Google/Opera服务器变慢第三方源文件残留删除/etc/apt/sources.list.d/下对应文件
重装后登录记录还在移除时用了remove而非purge改用purge后再删用户目录
dpkg依赖报错卡住所有apt操作系统中某个包损坏sudo apt --fix-broken install或强制移除坏包
apt提示锁被占用有apt/dpkg进程在跑查PID→kill,不要直接删锁文件

6. 结尾前的几句大实话

把Chrome和Opera的卸载折腾完,我个人最大的体会是:在Ubuntu里,“卸载”从来不是一个动作,而是一套流程。包里文件、系统配置、用户数据、软件源,这四个维度缺一不可。很多人说Linux卸载软件麻烦,其实不是麻烦,是大多数人习惯性地把Windows的卸载逻辑套到了Linux头上——双击卸载程序,完事。但在Linux的包管理体系里,删不删配置、处理不处理用户数据,是分开的,而且默认都会偏向保守,能给你留着的绝不乱删。

所以我自己长期养成了一个习惯:动手卸载前,先dpkg -l | grep一遍,再ls一遍用户目录。看清这个软件在系统里留了多少东西,再决定是remove还是purge、要不要手动补刀。这套流程不复杂,但能省掉很多后面反复折腾的时间。如果你按照上面的命令完整走一遍,Chrome和Opera应该可以从你的Ubuntu里消失得干干净净,不留下任何“复活”的可能。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询