You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

无法升级至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

火山引擎 最新活动