15/2/18 Обновление compiz сломало единство


21

Это обновление Compiz принудительного удаления unityи ubuntu-desktopна моей 16.04 системы Ubuntu.

Оскорбительный пакет, который отсутствует, но unityнуждается, кажется, в этом compiz-core-abiversion-20151010. Кажется, это виртуальный пакет , и я не могу найти его для загрузки.

введите описание изображения здесь

Как это бывает, я в основном использую LXDE в этой системе, но я был бы очень недоволен, если бы использовал Unity ...

Так как я иногда использую рабочий стол Unity, есть ли исправление для этого?

Редактировать: связанные вопросы выкатываются. Выглядит как главный качественный побег

«Остались» пакеты для обновления, хотите удалить единство?

Compiz обновление удалено единство

Ubuntu TaskBar ушел. Лаунчер отсутствует

Что вы, ребята, просто сделали! Обновления обеих моих 16.04 сред убили рабочие столы!

Редактировать 2: ошибка 1749839 отправлена ​​на панель запуска



У меня та же проблема. Нет лаунчера / панели задач или чего-то еще.
Эндрю Виан

1
@OrganicMarble Два других пользователя сожжены 16.04 обновлениями, которые я прочитал за последний час. Думаю, опять что-то большое. Я не обновлялся с 4 января 2018 года из-за сообщений об ошибках. Просто ручные обновления ядра за это время довели меня до 4.14.18
WinEunuuchs2Unix

1
@OrganicMarble Да, я разместил комментарии под двумя из этих трех ссылок, которые вы только что добавили. Бьюсь об заклад, через день будет еще дюжина.
WinEunuuchs2Unix

1
Другой пользователь с той же проблемой сказал, что он исправил предложение удалить рабочий стол. Он никогда не принимал предложение удалить в первую очередь. Я думаю, что отмененный вариант будет слишком сложным во времяapt upgrade
WinEunuuchs2Unix

Ответы:


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 старых точных -> trusty -> xenial ) работают нормально после регулярных обновлений без моего вмешательства. Все эти системы не пытались удалить ни Unity, ни ubuntu-desktopво время обновлений. И, конечно, xenial-proposed это отключено в моей системе, так как я не хочу преобразовывать свой Ubuntu LTS в ультрасовременный саморазрушающийся ArchLinux.

Примечание 2: я отредактировал свой ответ 2018-03-12 из-за того, что compiz-core-abiversion-20170630был удален из репозитория.


1
Установка compiz-core-abiversion-20170630 устранила проблему зависимости. Большое спасибо! Не уверен, почему этого не было в моей системе и, видимо, в других.
Органический мрамор

@Organic Marble N0rbert только что сказал вам, что до сих пор это был виртуальный пакет, предоставленный compiz-core. Разница в том, что теперь это обычный / отдельный пакет для установки как таковой ... Это не было угадано предлагаемым выпуском ...
Антонио

Я предполагаю, что это должно было быть включено в выпуск.
Органический мрамор

1
compiz-coreРеальный пакет, compiz-core-abiversion-20170630остается виртуальным. Может быть, dpkg / APT-internals должен знать, что у нас установлена ​​актуальная и доступная версия 20170630 (не пропущена 20151010).
Nrrbert

13

Я нашел решение. apt-get не в состоянии справиться с ситуацией, но aptitude может справиться с этим.

sudo aptitude install ubuntu-desktop

Обратите внимание, что первое решение, предлагаемое aptitude, не решает проблему, потому что она предпочитает не устанавливать пакет. Мне пришлось выбрать no в первый раз, а затем aptitude предложила второе решение понижения пакетов compiz, которое вызвало все проблемы. Понижение исправляет проблему зависимости, а затем Ubuntu-desktop и unity переустанавливаются.


2
Спасибо за ваше очень умное временное исправление. Последующий ответ предоставил полное разрешение, поэтому я перенес принятие на это.
Органический мрамор

2

Предполагая, что вы вошли в систему и ваш пользовательский интерфейс застрял без единства, вы можете сделать следующее:

  1. Перейти к tty4 с помощью Ctrl+ Alt+ F4.
  2. Авторизоваться.
  3. Установить aptitude:

    sudo apt install aptitude
    
  4. Установить unityс помощью aptitude:

    sudo aptitude install unity
    

Затем он скажет вам, что существует конфликтующий пакет. Вы ответите, 'n'и он предложит вам понизить Compiz. Давай, прими это.


1
Спасибо, но это ничего не добавляет к предыдущему ответу.
Органический мрамор

2

Это второй раз за менее чем 6 месяцев, когда команды 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

Довольно длинный список. Управляется с помощью сценариев оболочки.

Решением для восстановления будет загрузка с USB-накопителя Xenial и выполнение 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

[Folllow Up]: после запуска сценария оболочки, чтобы разблокировать 19 пакетов от compizи 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канале? Если так, то это явно для тестирования. Вы не должны устанавливать их, если вы не готовы к поломке.
Муру

2
@Antonio Это всегда случается. Они ужасно сломали 14.04 в 2015 году. Bugs.launchpad.net/hundredpapercuts/+bug/1469995
Органический мрамор
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.