Оновлення compiz 2/15/18 розбило єдність


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 чистий ксеніальний і 3 старі точні -> надійний -> 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 повинні знати, що ми встановили фактичну та доступну версію 20170630 (не пропущено 20151010).
N0rbert

13

Я знайшов рішення. apt-get не в змозі впоратися з ситуацією, але здатність може впоратися.

sudo aptitude install ubuntu-desktop

Зауважте, що перше рішення, запропоноване aptitude, не виправляє проблему, оскільки воно вирішує не встановлювати пакет. Мені довелося вибирати не перший раз, і тоді здатність запропонувала друге рішення про зменшення пакетів compiz, що спричинило всі проблеми. Пониження виправляє проблему залежності, а потім ubuntu-desktop і юнитинг перевстановлюються.


2
Дякуємо за дуже розумне виправлення темп. Наступна відповідь дала повну резолюцію, тож я переніс прийняття до цього.
Органічний мармур

2

Якщо припустити, що ви ввійшли в систему і ваш інтерфейс користувача залишився без єдності, ви можете зробити наступне:

  1. Перейдіть до tty4, використовуючи Ctrl+ Alt+F4 .
  2. Вхід.
  3. Встановити aptitude:

    sudo apt install aptitude
    
  4. Встановити unityза допомогою aptitude:

    sudo aptitude install unity
    

Потім він скаже вам, що існує конфліктний пакет. Ви відповідаєте, 'n'і він запропонує вам зменшити компроміс. Ідіть і прийміть це.


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

Досить довгий список. Керується за допомогою сценаріїв Shell.

Рішенням для відновлення було б завантаження з 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

[Наступна]: Після запуску сценарію Shell для розблокування 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.