2/15/18 compiz 更新打破了统一性

Org*_*ble 21 unity compiz 16.04

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

缺少但unity需要的违规软件包似乎是compiz-core-abiversion-20151010. 好像是虚拟包,找不到下载。

在此处输入图片说明

碰巧,我在这个系统上主要使用 LXDE,但如果我使用 Unity,我会很不高兴......

由于我偶尔会使用 Unity 桌面,是否有解决方法?

编辑:相关问题不断涌现。看起来像是一个重大的质量问题

“保留”更新包,想要卸载 unity?

compiz升级卸载unity

Ubuntu 任务栏不见了。启动器不见了

你们刚刚做了什么!对我的 16.04 环境的更新杀死了桌面!

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

小智 13

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

sudo aptitude install ubuntu-desktop
Run Code Online (Sandbox Code Playgroud)

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

  • 感谢您非常聪明的临时修复。随后的答案提供了完整的解决方案,因此我已将接受移至该答案。 (2认同)

N0r*_*ert 10

很奇怪的情况。
Yescompiz-core-abiversion-20151010 在 xenial 和 zesty 上是虚拟的,但它由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
Run Code Online (Sandbox Code Playgroud)

所以 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                           -
Run Code Online (Sandbox Code Playgroud)

我们知道这里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
Run Code Online (Sandbox Code Playgroud)

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

$ 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
Run Code Online (Sandbox Code Playgroud)

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

sudo aptitude update
sudo aptitude safe-upgrade
sudo aptitude install unity ubuntu-desktop
Run Code Online (Sandbox Code Playgroud)

注1: 我的Ubuntu 16.04 LTS的安装使用Unity和MATE DE(1清洁xenial和3岁精确- >信赖- > xenial)定期升级没有我的干预后正常工作。所有这些系统都没有尝试ubuntu-desktop在升级过程中移除 Unity 。当然在我的系统上xenial-proposed 是禁用的,因为我不想将我的 Ubuntu LTS 转换为前沿的自毁 ArchLinux。

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