La mise à jour compiz du 15/02/18 a brisé l'unité

21

Cette mise à jour compiz a forcé la suppression de unityet ubuntu-desktopsur mon système Ubuntu 16.04.

Le paquet incriminé qui manque, mais qui a unitybesoin, semble l'être compiz-core-abiversion-20151010. Il semble que ce soit un package virtuel et je ne le trouve pas à télécharger.

entrez la description de l'image ici

En l'occurrence, j'utilise principalement LXDE sur ce système, mais je serais très mécontent si j'utilisais Unity ...

Étant donné que j'utilise occasionnellement le bureau Unity, y a-t-il un correctif?

Modifier: les questions connexes arrivent. Ressemble à une fuite de qualité majeure

"Retenu" des packages pour la mise à jour, vous souhaitez désinstaller l'unité?

mise à niveau compiz unité désinstallée

Ubuntu TaskBar a disparu. Le lanceur est manquant

Qu'est-ce que vous venez de faire! Les mises à jour de mes environs 16.04 ont tué les ordinateurs de bureau!

Edit 2: bug 1749839 soumis au tableau de bord

Marbre organique
la source
Régression? google.ca/url?q=/ubuntu/992571/…
WinEunuuchs2Unix
J'ai le même problème. Pas de lanceur / barre des tâches ou beaucoup d'autre chose.
Andrew Vian
1
@OrganicMarble Il y a deux autres utilisateurs brûlés par les mises à jour 16.04 que j'ai lues au cours de la dernière heure. Je pense que quelque chose de grand est de nouveau en place. Je n'ai pas mis à jour depuis le 4 janvier 2018 en raison de tous les bogues signalés. Juste des mises à jour manuelles du noyau au cours de cette période, m'amenant au 4.14.18
WinEunuuchs2Unix
1
@OrganicMarble Oui, j'ai publié des commentaires sous deux de ces trois liens que vous venez d'ajouter. Je parie qu'il y en aura une douzaine de plus par jour.
WinEunuuchs2Unix
1
Un autre utilisateur ayant le même problème a déclaré avoir corrigé l'offre de suppression du bureau. Il n'a jamais accepté l'offre de suppression en premier lieu. Je pense que l'option de suppression serait trop compliquée pendantapt upgrade
WinEunuuchs2Unix

Réponses:

10

Situation très étrange.
Oui compiz-core-abiversion-20151010 est virtuel sur xenial et zesty , mais il est fourni par 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

Donc APT et dpkg les connaissent tous les deux.

La liste complète des compiz-core-abiversionfamilles est la suivante:

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

Ici comme nous le savons compiz-core-abiversion-20151010n'est pas installable:

$ 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

Mais nous pouvons installer une version plus récente (réelle):

$ 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

Donc, sur un système cohérent normal, tout ce dont nous avons besoin est d'avoir toutes les mises à niveau installées.
Mais si le unitypackage a été supprimé, nous pouvons l'installer avec:

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

Remarque 1: Mes installations Ubuntu 16.04 LTS avec Unity et MATE DE (1 xenial propre et 3 anciennes précises -> fidèle -> xenial ) fonctionnent normalement après des mises à niveau régulières sans mon intervention. Tous ces systèmes n'ont pas tenté de supprimer Unity ni ubuntu-desktoplors des mises à niveau. Et bien sûr, xenial-proposed est désactivé sur mon système, car je ne veux pas transformer mon Ubuntu LTS en ArchLinux auto-cassant à la pointe de la technologie.

Remarque 2: j'ai modifié ma réponse 2018-03-12 en raison du fait qu'elle a compiz-core-abiversion-20170630été supprimée des référentiels.

N0rbert
la source
1
L'installation de compiz-core-abiversion-20170630 a résolu le problème de dépendance. Merci beaucoup! Je ne sais pas pourquoi cela manquait sur mon système et apparemment sur d'autres.
Marbre organique
@Organic Marble N0rbert vient de vous dire que jusqu'à présent c'était un paquet virtuel fourni par compiz-core. La différence est que maintenant c'est un package normal / séparé à installer en tant que tel ... Cela n'a pas été deviné par la version proposée ...
Antonio
Je suppose que cela aurait dû être inclus dans la version.
Marbre organique
1
compiz-coreest un vrai paquet, compiz-core-abiversion-20170630reste virtuel. Peut-être que dpkg / APT-internals doit savoir que nous avons installé la version 20170630 actuelle et disponible (à ne pas manquer 20151010).
N0rbert
13

J'ai trouvé une solution. apt-get ne parvient pas à gérer la situation, mais aptitude peut la gérer.

sudo aptitude install ubuntu-desktop

Notez que la première solution proposée par aptitude ne corrige pas le problème, car il choisit de ne pas installer le package. J'ai dû sélectionner no la première fois, puis aptitude a proposé une deuxième solution de rétrogradation des packages compiz qui a causé tous les problèmes. La mise à niveau inférieure corrige le problème de dépendance, puis ubuntu-desktop et l'unité sont réinstallés.

Andrew Vian
la source
2
Merci pour votre correctif temporaire très intelligent. Une réponse ultérieure a fourni la résolution complète, j'ai donc déplacé l'acceptation à celle-ci.
Marbre organique
2

En supposant que vous êtes connecté et que votre interface utilisateur est bloquée sans unité, vous pouvez effectuer les opérations suivantes:

  1. Accédez à tty4 à l'aide de Ctrl+ Alt+ F4.
  2. S'identifier.
  3. Installer aptitude:

    sudo apt install aptitude
    
  4. Installez en unityutilisant aptitude:

    sudo aptitude install unity
    

Il vous indiquera alors qu'il existe un package en conflit. Vous répondez 'n'et il vous proposera de rétrograder compiz. Allez-y et acceptez cela.

Chadi
la source
1
Merci, mais cela n'ajoute rien à la réponse précédente.
Marbre organique
2

C'est la deuxième fois en moins de 6 mois que les équipes d'Ubuntu proposent une mise à jour sans aucun test et casse des systèmes Ubuntu qui fonctionnent.

Ces gars-là ont récemment décidé de casser la version actuelle de LTS avec des mises à jour factices et non testées ... C'est nouveau, jusqu'à l'année dernière, cela ne s'était jamais produit.

La solution est à NEVER installune proposition et soi-disant Partial Upgrade... Vous pouvez toujours mettre à jour votre système par Synapticpackage par package (bien que pour faire sens, il Synapticsoit maintenant supprimé de la version officielle) ... Jusqu'à ce que vous bloquiez toutes les mises à jour de la version buggy . Voici un exemple:

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

Exécutez ensuite le script par son nom dans le répertoire courant, comme:

$ ./block-upd-nemo

Pour débloquer

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

ensuite

$ ./unblock-upd-nemo

Ici, dans Synaptic, vous pouvez voir une longue liste de compizpackages liés qui se cassent Xenial LTSen supprimant ces packages:

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

Les packages à bloquer sont:

[Liste mise à jour car j'ai raté les paquets affectés par l'unité]

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

Une liste assez longue. Gérable via les scripts Shell.

Une solution de récupération serait de démarrer à partir d'une clé USB d'installation de Xenial et d'effectuer une chroot. Accédez au site Web de Launchpad pour compiz télécharger les Release (main)packages et les installer de force, dpkg -i *.debpuis bloquez toutes les mises à jour ou supprimez les proposedversions de votre configuration de mise à jour.

[Mise à jour]: Vous devez également vous rendre sur le site Web Launchpad pour unity télécharger les Release (main)packages concernés (voir ci-dessous dans le script).

Recherche Google si vous ne le connaissez pas.

Voici mon script de blocage car compizje viens de terminer:

[Mis à jour car j'ai raté les packages affectés par l'unité]

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

N'oubliez pas de définir l'exécutable des scripts ...

$ chmod a+x block-upd-compiz

[Folllow Up]: Après avoir exécuté un script Shell pour débloquer les 19 packages de compizet unity. J'ai essayé la N0rbetsolution et elle semble fonctionner:

$ 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
la source
4
Quand vous dites "proposé" mis à jour, voulez-vous dire dans la xenial-proposedchaîne? Si tel est le cas, ceux-ci sont explicitement destinés aux tests. Vous ne devez pas les installer à moins que vous ne soyez prêt à les casser.
muru
2
@Antonio Cela arrive toujours. Ils ont cassé horriblement 14,04 en 2015. bugs.launchpad.net/hundredpapercuts/+bug/1469995
Marbre organique