l'aggiornamento di 2/15/18 compiz ha rotto l'unità

21

Questo aggiornamento di compiz ha forzato la rimozione di unity e ubuntu-desktop sul mio 16.04 Sistema Ubuntu.

Il pacchetto offendente che manca, ma unity ha bisogno, sembra essere compiz-core-abiversion-20151010 . Sembra essere un pacchetto virtuale , e non riesco a trovarlo per il download.

Comespesso,usoprincipalmenteLXDEsuquestosistema,masareimoltoinfeliceseusassiUnity...

PoichéoccasionalmenteutilizzoildesktopUnity,esisteunasoluzioneperquesto?

Modifica:ledomandecorrelatestannoarrivando.Sembraun'eccezionalefugadiqualità

Pacchetti "indietro" per l'aggiornamento, vuoi disinstallare l'unità?

compiz upgrade disinstallato unity

Ubuntu TaskBar è sparito. Il programma di avvio è mancante

Che cosa avete appena fatto! Gli aggiornamenti su entrambi i miei 16.04 dintorni hanno ucciso i desktop!

Modifica 2: Bug 1749839 inviato al launchpad

    
posta Organic Marble 15.02.2018 - 23:53
fonte

4 risposte

11

Situazione molto strana.
compiz-core-abiversion-20151010 è virtuale su xenial e zesty , ma è fornito da 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

Quindi APT e dpkg sanno di entrambi.

L'elenco completo della famiglia compiz-core-abiversion è il seguente:

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

Qui, come sappiamo, compiz-core-abiversion-20151010 non è installabile:

$ 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

Ma possiamo installare la versione più recente (attuale):

$ 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

Quindi su un sistema normale e coerente tutto ciò di cui abbiamo bisogno è avere tutti gli aggiornamenti installati.
Ma se il pacchetto unity è stato rimosso, possiamo installarlo con:

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

Nota 1: Le mie installazioni di Ubuntu 16.04 LTS con Unity e MATE DE (1 pulito xenial e e 3 vecchio preciso - & gt; < em> trusty - & gt; xenial ) funzionano normalmente dopo aggiornamenti regolari senza il mio intervento. Tutti questi sistemi non hanno provato a rimuovere né Unity né ubuntu-desktop durante gli aggiornamenti. E ovviamente xenial-proposed è disabilitato sul mio sistema, dal momento che non voglio trasformare il mio Ubuntu LTS in un ArcLinux autodistruttivo e sanguinante.

Nota 2: ho modificato la mia risposta 2018-03-12 a causa del fatto che compiz-core-abiversion-20170630 è stato rimosso dai repository.

    
risposta data N0rbert 16.02.2018 - 11:08
fonte
13

Ho trovato una soluzione. apt-get non riesce a gestire la situazione, ma aptitude può gestirlo.

sudo aptitude install ubuntu-desktop

Si noti che la prima soluzione offerta da aptitude non risolve il problema, poiché ciò sceglie di non installare il pacchetto. Ho dovuto selezionare no la prima volta e quindi aptitude ha offerto una seconda soluzione per il downgrade dei pacchetti di compiz che ha causato tutti i problemi. Il downgrade corregge il problema delle dipendenze, quindi vengono reinstallati ubuntu-desktop e unity.

    
risposta data Andrew Vian 16.02.2018 - 01:13
fonte
2

Questa è la seconda volta in meno di 6 mesi che i team di Ubuntu hanno fatto un aggiornamento proposto senza test e rotture di sistemi Ubuntu.

Questi ragazzi di recente sono liberi di rompere l'attuale versione LTS con falsi e non proposti aggiornamenti proposti ... Questo è nuovo, fino all'anno scorso non è mai successo.

La soluzione è a NEVER install un proposto e così chiamato Partial Upgrade ... Puoi ancora aggiornare il tuo sistema attraverso Synaptic pacchetto per pacchetto (anche se per avere un buon senso di esso Synaptic è ora rimosso dal versione ufficiale) ... Fino a quando non bloccherai tutti gli aggiornamenti del rilascio del buggy. Ecco un esempio:

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

Quindi esegui lo script con il suo nome nella directory corrente, ad esempio:

$ ./block-upd-nemo

Per sbloccare

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

Poi

$ ./unblock-upd-nemo

Qui in Synaptic puoi vedere una lunga lista di pacchetti correlati a compiz che stanno rompendo Xenial LTS rimuovendo questi pacchetti:

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

I pacchetti da bloccare sono:

[Elenco aggiornato in quanto ho perso i pacchetti interessati dall'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

Un lungo elenco. Gestibile tramite lo scripting della shell.

Una soluzione di ripristino dovrebbe essere avviata da una chiavetta USB di installazione Xenial e eseguire un chroot . Vai al sito web Launchpad per compiz per scaricare i pacchetti Release (main) e forza installali con dpkg -i *.deb quindi blocca tutti gli aggiornamenti o rimuovi le proposed versioni dalla configurazione di aggiornamento.

[Aggiornamento]: ti serve anche andare al sito web Launchpad per unity e scaricare la Release (main) pacchetti interessati (vedi sotto nello script).

Ricerca Google se non hai familiarità con esso.

Ecco il mio script di blocco per compiz Ho appena finito:

[Aggiornato come ho perso i pacchetti interessati dall'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

Non dimenticare di impostare gli script eseguibili ...

$ chmod a+x block-upd-compiz

[Folllow Up]: dopo aver eseguito uno script Shell per sbloccare i 19 pacchetti da compiz e unity . Ho provato la soluzione N0rbet e sembra funzionare:

$ 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
    
risposta data Antonio 16.02.2018 - 03:11
fonte
2

Supponendo che tu abbia effettuato l'accesso e che l'interfaccia utente sia bloccata senza unità, puoi fare quanto segue:

  1. Vai a tty4 usando Ctrl + Alt + F4 .
  2. Login.
  3. Installa aptitude :

    sudo apt install aptitude
    
  4. Installa unity utilizzando aptitude :

    sudo aptitude install unity
    

Quindi ti dirà che c'è un pacchetto in conflitto. Rispondi a 'n' e proporrà di eseguire il downgrade del compiz. Vai avanti e accettalo.

    
risposta data Chadi 16.02.2018 - 01:23
fonte

Leggi altre domande sui tag