web-dev-qa-db-fra.com

15/02/18 compiz update a brisé l'unité

This compiz update suppression forcée de unity et ubuntu-desktop sur mon système Ubuntu 16.04.

Le package défectueux qui manque, mais dont unity a besoin, semble être compiz-core-abiversion-20151010. Cela semble être un paquet virtuel , et je ne le trouve pas à télécharger.

enter image description here

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

Étant donné que j'utilise parfois le bureau Unity, existe-t-il un correctif pour cela?

Modifier: des questions connexes entrent en jeu. Cela ressemble à une évasion majeure de qualité

paquets "gardés en arrière" pour la mise à jour, vous voulez désinstaller l'unité?

mise à niveau compiz désinstallé

buntu TaskBar est parti. Launcher est manquant

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

Éditer 2: bogue 1749839 soumis au tableau de bord

21
Organic Marble

Situation très étrange.
Oui compiz-core-abiversion-20151010est 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 sont au courant des deux.

La liste complète de la famille compiz-core-abiversion 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                           -

Comme nous le savons, compiz-core-abiversion-20151010 n'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 (actuelle):

$ 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 paquet unity 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 clean xenial et et 3 ancien précis -> fidèle -> xenial ) travaille normalement après des mises à niveau régulières sans mon intervention. Tous ces systèmes n'ont pas essayé de supprimer ni Unity ni ubuntu-desktop lors des mises à niveau. Et bien sûr, xenial-proposed est désactivé sur mon système, car je ne souhaite pas transformer mon Ubuntu LTS en ArchLinux auto-cassable.

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

11
N0rbert

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

Sudo aptitude install ubuntu-desktop

Notez que la première solution proposée par aptitude ne corrige pas le problème, car elle choisit de ne pas installer le paquet. Je n’ai pas dû sélectionner la première fois, puis aptitude a proposé une deuxième solution consistant à rétrograder les packages Compiz qui étaient à l’origine de tous les problèmes. La rétrogradation corrige le problème de dépendance, puis ubuntu-desktop et unit sont réinstallés.

13
Andrew Vian

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

  1. Allez à tty4 en utilisant Ctrl+Alt+F4.
  2. S'identifier.
  3. Installez aptitude:

    Sudo apt install aptitude
    
  4. Installez unity en utilisant aptitude:

    Sudo aptitude install unity
    

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

2
Chadi

C’est la deuxième fois en moins de 6 mois que les équipes d’Ubuntu font une proposition de mise à jour sans aucun test ni rupture des systèmes Ubuntu en état de fonctionnement.

Ces gars sont récemment prêts à casser la version actuelle de LTS avec de fausses mises à jour proposées et non testées ... C'est nouveau, jusqu'à l'année dernière, cela ne s'est jamais produit.

La solution consiste à NEVER install un nom proposé et ainsi appelé Partial Upgrade ... Vous pouvez toujours mettre à jour votre système avec le package Synaptic package par package (bien que, pour vous en rendre compte, Synaptic soit 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

Ensuite, exécutez le script par son nom dans le répertoire actuel, comme suit:

$ ./block-upd-nemo

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 paquets liés à compiz qui cassent Xenial LTS en supprimant ces paquets:

ubuntu-desktop unity unity-Tweak-tool unsettings ...

Les paquets à 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

Assez longue liste. Gérable via les scripts Shell.

Une solution de récupération consisterait à démarrer à partir d’une clé USB d’installation Xenial et à effectuer un chroot. Accédez au site Web du Launchpad pourcompiz pour télécharger les packages Release (main) et les installer de force avec dpkg -i *.deb, puis bloquez toutes les mises à jour ou supprimez les versions proposed de votre configuration de mise à jour.

[Mise à jour]: Vous devez également accéder au site Web du Launchpad pourunity et télécharger les packages Release (main) concernés (voir ci-dessous dans le script).

Recherche Google si vous ne le connaissez pas.

Voici mon script de blocage pour compiz Je viens de terminer:

[Mis à jour car j'ai raté les paquets 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 les scripts exécutables ...

$ chmod a+x block-upd-compiz

[Suivant]: Après avoir exécuté un script shell pour débloquer les 19 packages de compiz et unity. J'ai essayé la solution N0rbet et cela 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
2
Antonio