2/15/18 compiz update打破了团结
这个compiz更新强制删除我的16.04 Ubuntu系统上的unity
和ubuntu-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。
假设您已登录并且您的用户界面没有统一,您可以执行以下操作:
- 使用Ctrl + Alt + F4转到tty4。
- 登录。
-
安装
aptitude
:sudo apt install aptitude
-
使用
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脚本后,从compiz
和unity
取消阻止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