2018年2月15日Compiz更新致Ubuntu16.04 Unity损坏,求修复方案
修复Ubuntu 16.04中Compiz更新导致Unity被移除的问题
嘿,我当时也关注到了2018年2月那次Compiz更新引发的大范围事故,确实是官方仓库的严重疏漏——很多Ubuntu 16.04用户都遇到了Unity和ubuntu-desktop被强制卸载的问题,根源就是那个找不到的虚拟包compiz-core-abiversion-20151010。给你几个靠谱的修复方法,按优先级来:
方法一:强制降级Compiz包(最推荐)
回退到更新前的Compiz版本是最直接且安全的方案,能快速恢复Unity的依赖链:
- 打开LXDE的终端(比如LXTerminal),先查看系统里可降级的Compiz相关包版本:
apt-cache policy compiz compiz-core compiz-plugins compiz-plugins-default compizconfig-settings-manager - 在输出里找到更新前的旧版本号(通常是
1:0.9.12.3+16.04.20170605-0ubuntu1这类格式),然后执行降级命令,把所有相关包都指定回旧版本:sudo apt-get install compiz=1:0.9.12.3+16.04.20170605-0ubuntu1 compiz-core=1:0.9.12.3+16.04.20170605-0ubuntu1 compiz-plugins=1:0.9.12.3+16.04.20170605-0ubuntu1 compiz-plugins-default=1:0.9.12.3+16.04.20170605-0ubuntu1 compizconfig-settings-manager=1:0.9.12.3+16.04.20170605-0ubuntu1 - 降级完成后,重新安装Unity和ubuntu-desktop:
sudo apt-get install ubuntu-desktop unity - 最后锁定这些Compiz包,防止系统自动再次更新引发问题:
等官方推送修复包后,再用sudo apt-mark hold compiz compiz-core compiz-plugins compiz-plugins-default compizconfig-settings-managersudo apt-mark unhold <包名>逐个解除锁定即可。
方法二:等待官方修复包(最省心)
当时官方在事故发生后几天内就发布了修复更新,如果你不急着用Unity,可以先继续用LXDE,过几天执行以下命令更新系统,然后重新安装Unity:
sudo apt-get update && sudo apt-get dist-upgrade sudo apt-get install ubuntu-desktop unity
方法三:手动创建虚拟包(不推荐,适合有经验的用户)
如果你不想降级也不想等,尝试手动创建一个提供compiz-core-abiversion-20151010的虚拟deb包,但这个方法需要熟悉Debian打包流程,容易引发后续依赖冲突,所以只推荐给有经验的用户:
- 用
dh_make等工具创建一个极简的deb包,在control文件里添加Provides: compiz-core-abiversion-20151010字段,然后安装这个自定义包,再重新安装Unity。
内容的提问来源于stack exchange,提问作者Organic Marble
相关产品推荐
相关产品推荐

