2/15/18 обновление компиляции сломало единство

21

Это обновление компиляции принудительно удаляет unity и ubuntu-desktop на моем 16.04. Система Ubuntu.

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

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

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

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

пакеты "Отброшены назад" для обновления, необходимо удалить единство?

удаленное удаление компиляции

Ubuntu TaskBar ушел. Launcher отсутствует

Что вы, ребята, просто ДЕЛАЛИ! Обновления обоим моим окружениям 16.04 убили десктопы!

Изменить 2: Ошибка 1749839, отправленная на панель запуска

    
задан Organic Marble 15.02.2018 в 23:53
источник

4 ответа

11

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

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

    
ответ дан N0rbert 16.02.2018 в 11:08
источник
13

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

sudo aptitude install ubuntu-desktop

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

    
ответ дан Andrew Vian 16.02.2018 в 01:13
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
    
ответ дан Antonio 16.02.2018 в 03:11
2

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

  1. Перейдите в tty4, используя Ctrl + Alt + F4 .
  2. Войти.
  3. Установите aptitude :

    sudo apt install aptitude
    
  4. Установите unity , используя aptitude :

    sudo aptitude install unity
    

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

    
ответ дан Chadi 16.02.2018 в 01:23