18年2月15日compiz更新打破了统一


21

Compiz的更新强制拆除unityubuntu-desktop我的Ubuntu 16.04系统上。

缺少但unity需要的有问题的软件包似乎是compiz-core-abiversion-20151010。它似乎是一个虚拟软件包,我找不到要下载的软件包

在此处输入图片说明

碰巧的是,我主要在该系统上使用LXDE,但是如果我使用Unity,我会非常不高兴。

由于我偶尔会使用Unity桌面,因此是否可以解决此问题?

编辑:相关问题正在陆续出现。

“保留”软件包进行更新,是否要卸载?

compiz升级卸载统一

Ubuntu TaskBar不见了。启动器丢失

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

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



我也有同样的问题。没有启动器/任务栏或其他任何东西。
Andrew Vian

1
@OrganicMarble我在上一个小时阅读的16.04更新烧毁了另外两个用户。我想大事情又来了。自2018年1月4日以来我没有更新过,因为已报告了所有错误。在那段时间里,只是手动进行内核更新,使我最多只能获得4.14.18
WinEunuuchs2Unix

1
@OrganicMarble是的,我在您刚刚添加的三个链接中的两个链接下发表了评论。我敢打赌一天还会有十几打。
WinEunuuchs2Unix

1
另一个有相同问题的用户说,他们已修复删除桌面的提议。他从来没有接受过删除的提议。我认为取消删除选项在此期间会太复杂apt upgrade
WinEunuuchs2Unix

Answers:


10

情况很奇怪。
是的compiz-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

因此,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软件包被删除,我们可以使用以下命令进行安装:

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升级期间的内容。当然,由于我不想将我的Ubuntu LTS转换为尖端的,可自我破坏的ArchLinux,因此在我的系统上当然xenial-proposed 被禁用了。

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


1
安装compiz-core-abiversion-20170630解决了依赖性问题。非常感谢!不知道为什么我的系统上以及其他系统上似乎没有此功能。
有机大理石

@Organic Marble N0rbert刚刚告诉您,到目前为止,这是的虚拟包compiz-core。不同之处在于,现在它是这样安装的普通/独立软件包...建议发行版并未对此进行猜测...
Antonio

我想它应该已经包含在发行版中了。
有机大理石

1
compiz-core是真正的包装,compiz-core-abiversion-20170630仍然是虚拟的。可能是dpkg / APT内部人员应该知道我们已经安装了实际可用的20170630版本(不要错过20151010)。
N0rbert

13

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

sudo aptitude install ubuntu-desktop

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


2
感谢您非常聪明的临时修复程序。随后的回答提供了完整的解决方案,因此我将接受范围移到了那个解决方案上。
有机大理石'18

2

假设您已登录并且UI卡住而不团结,则可以执行以下操作:

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

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

    sudo aptitude install unity
    

然后它将告诉您存在冲突的程序包。您回答'n',它将建议您降级compiz。继续接受。


1
谢谢,但这并没有真正为先前的答案添加任何内容。
有机大理石'18

2

这是不到六个月的时间里,Ubuntu团队第二次提出建议的更新,而没有进行任何测试并破坏了可用的Ubuntu系统。

这些家伙最近被放宽,以伪造和未经测试的建议更新来破坏当前的LTS版本。这是新的,直到去年它从未发生过。

解决方案是针对NEVER install一个建议的所谓的解决方案Partial Upgrade...您仍然可以Synaptic逐个包地更新系统(尽管Synaptic现在已经从官方版本中删除了它的含义)...直到您阻止了所有有问题的版本的更新为止。这是一个例子:

#!/bin/sh
#
# Add nemo package to update blacklist
# Run script as super user i.e. 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 i.e. 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)受影响的软件包(请参见脚本中的以下内容)。

如果您不熟悉Google搜索。

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

[更新,因为我错过了统一受影响的软件包]

#!/bin/sh
#
# Add compiz package to update blacklist
# Run script as super user i.e. 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

[跟进]:运行Shell脚本从compiz和取消阻止19个软件包之后unity。我尝试了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

4
当您说“建议”已更新时,您是指该xenial-proposed频道吗?如果是这样,则将其明确用于测试。除非您准备好损坏,否则不要安装它们。
muru

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.