2/15/18 compiz update打破了团结

这个compiz更新强制删除我的16.04 Ubuntu系统上的unityubuntu-desktop

缺失但缺乏unity的违规包似乎是compiz-core-abiversion-20151010 。 它似乎是一个虚拟包 ,我找不到它下载。

在此处输入图像描述

碰巧,我在这个系统上大多使用LXDE,但如果我使用Unity,我会非常不高兴…

由于我偶尔使用Unity桌面,有没有解决这个问题?

编辑:相关问题正在滚动。看起来像一个重要的质量逃脱

“保留回来”包更新,想卸载统一?

compiz升级卸载统一

Ubuntu TaskBar消失了。 启动器丢失了

你们刚刚做了什么! 我的16.04环境的更新杀死了台式机!

编辑2: 提交到启动板的错误1749839

很奇怪的情况。
是的compiz-core-abiversion-20151010 在xenial和 compiz-core-abiversion-20151010 是虚拟的 ,但它由compiz-core

 $ apt-cache show compiz-core | grep "Version\|Provides\|Package" Package: compiz-core Version: 1:0.9.12.3+16.04.20180221-0ubuntu1 Provides: compiz-core-abiversion-20180221 Package: compiz-core Version: 1:0.9.12.2+16.04.20160415-0ubuntu1 Provides: compiz-core-abiversion-20151010 

所以APT和dpkg都知道他们两个。

compiz-core-abiversion系列的完整列表如下:

 $ aptitude search compiz-core-abiversion- v compiz-core-abiversion-20151010 - v compiz-core-abiversion-20151010:i386 - v compiz-core-abiversion-20180221 - v compiz-core-abiversion-20180221:i386 - 

据我们所知, compiz-core-abiversion-20151010无法安装:

 $ sudo apt-get install compiz-core-abiversion-20151010 Reading package lists... Done Building dependency tree Reading state information... Done Package compiz-core-abiversion-20151010 is a virtual package provided by: compiz-core 1:0.9.12.2+16.04.20160415-0ubuntu1 [Not candidate version] E: Package 'compiz-core-abiversion-20151010' has no installation candidate 

但是我们可以安装更新的(实际)版本:

 $ sudo apt-get install compiz-core-abiversion-20180221 Reading package lists... Done Building dependency tree Reading state information... Done Note, selecting 'compiz-core' instead of 'compiz-core-abiversion-20180221' The following additional packages will be installed: compiz-gnome compiz-plugins compiz-plugins-default libcompizconfig0 libdecoration0 libunity-core-6.0-9 unity unity-schemas unity-services The following packages will be upgraded: compiz-core compiz-gnome compiz-plugins compiz-plugins-default libcompizconfig0 libdecoration0 libunity-core-6.0-9 unity unity-schemas unity-services 10 upgraded, 0 newly installed, 0 to remove and 32 not upgraded. Need to get 5 302 kB of archives. After this operation, 278 kB of additional disk space will be used. Do you want to continue? [Y/n] n 

因此,在正常的一致系统上,我们所需要的就是安装所有升级。
但如果删除了unity package,我们可以安装它:

 sudo aptitude update sudo aptitude safe-upgrade sudo aptitude install unity ubuntu-desktop 

注1:我的Ubuntu 16.04 LTS安装Unity和MATE DE(1个清洁xenial和3个旧精确 – > 可信赖 – > xenial )在正常升级后正常工作,无需我干预。 所有这些系统都没有尝试在升级期间删除Unity和ubuntu-desktop 。 当然, xenial-proposed在我的系统上被禁用 ,因为我不想将我的Ubuntu LTS转换为最前沿的可自我破解的ArchLinux。

注2:我编辑了我的答案2018-03-12,因为compiz-core-abiversion-20170630已从存储库中删除。

我找到了解决方案。 apt-get无法处理这种情况,但是aptitude可以处理它。

 sudo aptitude install ubuntu-desktop 

请注意,aptitude提供的第一个解决方案无法解决问题,因为它选择不安装软件包。 我不得不第一次选择,然后aptitude提供了第二个降级compiz包的解决方案,导致所有问题。 降级修复了依赖性问题,然后重新安装了ubuntu-desktop和unity。

假设您已登录并且您的用户界面没有统一,您可以执行以下操作:

  1. 使用Ctrl + Alt + F4转到tty4。
  2. 登录。
  3. 安装aptitude

     sudo apt install aptitude 
  4. 使用aptitude安装unity

     sudo aptitude install unity 

然后它会告诉你有一个冲突的包。 你回答'n' ,它会建议你降级compiz。 来吧接受。

这是Ubuntu团队在不到6个月的时间内第二次提出了一个提议的更新,没有任何测试和破坏工作的Ubuntu系统。

最近,这些家伙已经松动,以打破当前LTS版本的虚假和未经测试的提议更新…这是新的,直到去年它从未发生过。

解决方案是NEVER install一个提议的所谓的Partial Upgrade ……你仍然可以通过Synaptic包逐个更新你的系统(虽然要很好地理解它现在已从官方版本中删除了Synaptic )…直到你阻止越野车发布的所有更新。 这是一个例子:

 #!/bin/sh # # Add nemo package to update blacklist # Run script as super user ie sudo ./block-upd-unity.sh # if [ $(id -u) != 0 ]; then echo "This script requires root permissions" sudo "$0" exit fi echo "nemo hold" | dpkg --set-selections echo "nemo-data hold" | dpkg --set-selections echo "nemo-fileroller hold" | dpkg --set-selections 

然后在当前目录中按名称运行脚本,如:

 $ ./block-upd-nemo 

解锁

 #!/bin/sh # # Remove nemo package from update blacklist # Run script as super user ie sudo ./block-upd-unity.sh # if [ $(id -u) != 0 ]; then echo "This script requires root permissions" sudo "$0" exit fi echo "nemo install" | dpkg --set-selections echo "nemo-data install" | dpkg --set-selections echo "nemo-fileroller install" | dpkg --set-selections 

然后

 $ ./unblock-upd-nemo 

在Synaptic中,您可以看到一长串与compiz相关的软件包,它们通过删除这些软件包来破解Xenial LTS

 ubuntu-desktop unity unity-tweak-tool unsettings ... 

要阻止的包是:

[列表更新,因为我错过了受统一影响的包裹]

 compiz compiz-core compiz-dev compiz-gnome compiz-plugins compiz-plugins-default compiz-plugins-extra compiz-plugins-main compiz-plugins-main-default compizconfig-settings-manager libcompizconfig0 libdecoration0 libdecoration0-dev python-compizconfig libunity-core-6.0-9 libunity-core-6.0-dev unity unity-schemas unity-services 

相当长的清单。 可通过Shell脚本进行管理。

恢复解决方案是从Xenial安装USB记忆棒启动并执行chroot 。 转到Launchpad网站以获取 compiz以下载Release (main)软件包,并使用dpkg -i *.deb强制安装它们,然后阻止所有更新,或从更新配置中删除proposed版本。

[更新]:您还需要访问Launchpad网站以获得 unity并下载受影响的Release (main) (请参阅下面的脚本)。

谷歌搜索,如果你不熟悉它。

这是我刚刚完成的compiz阻止脚本:

[因为我错过了受统一影响的套餐而更新]

 #!/bin/sh # # Add compiz package to update blacklist # Run script as super user ie sudo ./block-upd-compiz.sh # if [ $(id -u) != 0 ]; then echo "This script requires root permissions" sudo "$0" exit fi echo "compiz hold" | dpkg --set-selections echo "compiz-core hold" | dpkg --set-selections echo "compiz-dev hold" | dpkg --set-selections echo "compiz-gnome hold" | dpkg --set-selections echo "compiz-plugins hold" | dpkg --set-selections echo "compiz-plugins-default hold" | dpkg --set-selections echo "compiz-plugins-extra hold" | dpkg --set-selections echo "compiz-plugins-main hold" | dpkg --set-selections echo "compiz-plugins-main-default hold" | dpkg --set-selections echo "compizconfig-settings-manager hold" | dpkg --set-selections echo "libcompizconfig0 hold" | dpkg --set-selections echo "libdecoration0 hold" | dpkg --set-selections echo "libdecoration0-dev hold" | dpkg --set-selections echo "python-compizconfig hold" | dpkg --set-selections echo "libunity-core-6.0-9 hold" | dpkg --set-selections echo "libunity-core-6.0-dev hold" | dpkg --set-selections echo "unity hold" | dpkg --set-selections echo "unity-schemas hold" | dpkg --set-selections echo "unity-services hold" | dpkg --set-selections 

别忘了设置脚本可执行…

 $ chmod a+x block-upd-compiz 

[Folllow Up]:运行Shell脚本后,从compizunity取消阻止19个软件包。 我尝试了N0rbet解决方案,它似乎工作:

 $ sudo apt-get install compiz-core-abiversion-20170630 Reading package lists... Done Building dependency tree Reading state information... Done Note, selecting 'compiz-core' instead of 'compiz-core-abiversion-20170630' The following additional packages will be installed: compiz-dev compiz-gnome compiz-plugins compiz-plugins-default libcompizconfig0 libdecoration0 libdecoration0-dev libunity-core-6.0-9 libunity-core-6.0-dev unity unity-schemas unity-services The following packages will be upgraded: compiz-core compiz-dev compiz-gnome compiz-plugins compiz-plugins-default libcompizconfig0 libdecoration0 libdecoration0-dev libunity-core-6.0-9 libunity-core-6.0-dev unity unity-schemas unity-services 13 upgraded, 0 newly installed, 0 to remove and 13 not upgraded. Need to get 5,410 kB of archives. After this operation, 283 kB of additional disk space will be used. Do you want to continue? [Y/n] y