无法升级至Ubuntu 23.04,疑似Opera引发问题
无法升级至Ubuntu 23.04,疑似Opera引发问题
看起来你遇到的问题是Opera安装时遗留的APT钩子脚本在捣乱——即使你卸载了Opera,这个脚本配置还留在系统里,导致升级过程中DPkg执行时出错。
先看你给出的关键错误信息:
Exception during pm.DoInstall(): E:Problem executing scripts DPkg::Post-Invoke 'if [ `stat -c %Z $(readlink -f $(which opera))` -ne `cat /tmp/opera.timestamp` ]; then /root/.scripts/fix-opera.sh; fi; rm /tmp/opera.timestamp', E:Sub-process returned an error code
这个错误明确指向了Opera的Post-Invoke钩子,它试图执行一个不存在的脚本,还引用了找不到的文件,直接打断了升级流程。
下面是具体的解决步骤:
- 第一步:定位残留的APT配置文件
运行下面的命令,找出包含这个问题钩子的文件:
grep -r "fix-opera.sh" /etc/apt/apt.conf.d/
或者用这个命令找和opera.timestamp相关的配置:
grep -r "opera.timestamp" /etc/apt/apt.conf.d/
你应该会得到类似/etc/apt/apt.conf.d/99opera这样的文件路径。
- 第二步:移除或修改问题配置
如果找到了对应的文件,最简单的办法是直接删除它:
sudo rm /etc/apt/apt.conf.d/99opera
(把路径换成你实际找到的文件名)
如果你不想删除,也可以编辑这个文件,把包含DPkg::Post-Invoke的那一行注释掉或者直接删除。
- 第三步:清理并重新启动升级
先更新一下APT缓存:
sudo apt update
然后重新启动升级流程:
sudo do-release-upgrade
由于23.04是非LTS版本,可能需要加上-d参数来触发升级:
sudo do-release-upgrade -d
这样应该就能绕过这个Opera遗留的问题,顺利完成升级了。
另外,如果你之前卸载Opera时没清理干净,也可以再彻底清理一遍残留文件:
sudo apt purge opera sudo apt autoremove --purge
不过核心问题还是那个APT钩子配置,解决它就足以让升级继续进行。
备注:内容来源于stack exchange,提问作者MagicByNature




