2/15/18 aktualizacja compiz złamała jedność

21

Ta aktualizacja compiz wymusiła usunięcie unity i ubuntu-desktop na moim 16.04 System Ubuntu.

Pakiet naruszający, którego brakuje, ale wymaga unity , wydaje się być compiz-core-abiversion-20151010 . Wygląda na pakiet wirtualny i nie mogę go znaleźć.

Taksięskłada,żenajczęściejużywamLXDEwtymsystemie,alebyłbymbardzonieszczęśliwy,gdybymużywałUnity...

OdczasudoczasuużywampulpituUnity,czyjestnatopoprawka?

Edytuj:pojawiająsiępodobnepytania.Wyglądajakgłównaucieczkajakościowa

Pakiety "cofnięte" dla aktualizacji, które chcesz odinstalować jedność?

aktualizacja programu Compiz odinstalowała jedność

Ubuntu TaskBar zniknął. Brak Launchera

Co wy po prostu robicie! Aktualizacja obu moich 16.04 okolic zabiła komputery!

Edytuj 2: Błąd 1749839 przesłany do launchpa

    
zadawane Organic Marble 15.02.2018, 23:53
źródło

4 odpowiedzi

11

Bardzo dziwna sytuacja.
Tak compiz-core-abiversion-20151010 jest wirtualny na Xenial i Zesty , ale jest podany przez 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

Więc APT i dpkg wiedzą o nich obu.

Pełna lista rodziny compiz-core-abiversion wygląda następująco:

$ 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                           -

Tutaj jak wiemy compiz-core-abiversion-20151010 nie można zainstalować:

$ 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

Ale możemy zainstalować nowszą (aktualną) wersję:

$ 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

Więc w normalnym, spójnym systemie wszystko, czego potrzebujemy, to zainstalowanie wszystkich uaktualnień.
Ale jeśli pakiet unity został usunięty, możemy zainstalować go za pomocą:

sudo aptitude update
sudo aptitude safe-upgrade
sudo aptitude install unity ubuntu-desktop

Uwaga 1: Moje instalacje Ubuntu 16.04 LTS z Unity i MATE DE (1 czyste xenial i 3 stare dokładne - > em> trusty - > xenial ) działają normalnie po regularnych uaktualnieniach bez mojej interwencji. Wszystkie te systemy nie próbowały usunąć ani Unity, ani ubuntu-desktop podczas aktualizacji. I oczywiście xenial-proposed jest wyłączony w moim systemie, ponieważ nie chcę przekształcać mojego Ubuntu LTS w najnowocześniejszy, samoukluczalny ArchLinux.

Uwaga 2: Edytowałem swoją odpowiedź 2018-03-12 z powodu tego, że compiz-core-abiversion-20170630 zostało usunięte z repozytoriów.

    
odpowiedział N0rbert 16.02.2018, 11:08
źródło
13

Znalazłem rozwiązanie. apt-get nie jest w stanie obsłużyć sytuacji, ale aptitude może sobie z tym poradzić.

sudo aptitude install ubuntu-desktop

Zauważ, że pierwsze rozwiązanie oferowane przez aptitude nie rozwiązuje problemu, ponieważ to nie instaluje pakietu. Po raz pierwszy musiałem wybrać nie, a następnie aptitude zaoferowało drugie rozwiązanie obniżające klasyfikację pakietów, które spowodowały wszystkie problemy. Downgrade naprawia problem zależności, a następnie instaluje się ubuntu-desktop i unity.

    
odpowiedział Andrew Vian 16.02.2018, 01:13
źródło
2

To już drugi raz w mniej niż 6 miesięcy, że zespoły Ubuntu zaproponowały aktualizację bez żadnych testów i zerwania działających systemów Ubuntu.

Ci faceci niedawno zostali uwolnieni, by złamać obecną wersję LTS z fałszywymi i nieprzetestowanymi proponowanymi aktualizacjami ... To jest nowe, aż do zeszłego roku to się nigdy nie zdarzyło.

Rozwiązaniem jest NEVER install proponowanego i tak zwanego Partial Upgrade ... Nadal możesz aktualizować swój system za pomocą pakietu Synaptic po paczce (chociaż żeby to dobrze zrozumieć Synaptic jest teraz usunięty z oficjalne wydanie) ... Dopóki nie zablokujesz wszystkich aktualizacji wersji buggy. Oto przykład:

#!/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

Następnie uruchom skrypt po nazwie w bieżącym katalogu, na przykład:

$ ./block-upd-nemo

Aby odblokować

#!/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

Następnie

$ ./unblock-upd-nemo

Tutaj w Synaptic można zobaczyć długą listę pakietów związanych z compiz , które łamią Xenial LTS , usuwając te pakiety:

ubuntu-desktop unity unity-tweak-tool unsettings ...

Pakiety do zablokowania to:

[Lista zaktualizowana, ponieważ przegapiłem pakiety mające wpływ na jedność]

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

Dość długa lista. Możliwość zarządzania za pomocą skryptów Shell.

Rozwiązaniem odzyskiwania byłoby uruchomienie z Xenial instalacyjnej pamięci USB i wykonanie chroot . Przejdź do strony Launchpad dla compiz , aby pobrać pakiety Release (main) i wymusić ich instalację z dpkg -i *.deb , a następnie zablokuj wszystkie aktualizacje lub usuń wydania proposed z konfiguracji aktualizacji.

[Aktualizacja]: Musisz również przejść do witryny Launchpad dla unity i pobrać Release (main) dotyczy pakietów (zobacz poniżej w skrypcie).

Wyszukiwarka Google, jeśli jej nie znasz.

Oto mój skrypt blokujący dla compiz Właśnie skończyłem:

[Zaktualizowano, ponieważ przegapiłem pakiety mające wpływ na jedność]

#!/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

Nie zapomnij ustawić skryptów do wykonywania ...

$ chmod a+x block-upd-compiz

[Folllow Up]: Po uruchomieniu skryptu Shell, aby odblokować 19 pakietów z compiz i unity . Wypróbowałem rozwiązanie N0rbet i wygląda na to, że działa:

$ 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
    
odpowiedział Antonio 16.02.2018, 03:11
źródło
2

Zakładając, że jesteś zalogowany, a Twój interfejs użytkownika utknął bez jedności, możesz wykonać następujące czynności:

  1. Przejdź do tty4 używając Ctrl + Alt + F4 .
  2. Zaloguj się.
  3. Zainstaluj aptitude :

    sudo apt install aptitude
    
  4. Zainstaluj unity używając aptitude :

    sudo aptitude install unity
    

Poinformuje cię, że istnieje konfliktowy pakiet. Odpowiadasz 'n' i zaproponujesz, abyś obniżył kompilację. Śmiało i zaakceptuj to.

    
odpowiedział Chadi 16.02.2018, 01:23
źródło

Przeczytaj inne pytania na temat tagów