This is the second times in less than 6 months that the Ubuntu teams made a proposed update without any testing and breaking working Ubuntu systems.
These guys recently are set loose to break the current LTS version with phony and untested proposed updates ... That is new, till last year it never happened.
The solution is to NEVER install
a proposed and so called Partial Upgrade
... You can still update your system through Synaptic
package by package (although to make good sense of it Synaptic
is now removed from the official release) ... Until you block all updates of the buggy release. Here is an example:
#!/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
Then run the script by its name in the current directory, like:
$ ./block-upd-nemo
To unblock
#!/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
Then
$ ./unblock-upd-nemo
Here in Synaptic you can see a long list of compiz
related packages which are breaking Xenial LTS
by removing these packages:
ubuntu-desktop unity unity-tweak-tool unsettings ...
The packages to block are:
[List Updated as I missed the unity affected packages]
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
Quite a long list. Manageable through Shell scripting.
A recovery solution would be to boot from a Xenial install USB stick and to perform a chroot
. Go to the Launchpad website for compiz
to download the Release (main)
packages and force install them with dpkg -i *.deb
then block all updates, or remove the proposed
releases from your update configuration.
[Update]: You need as well to go to the Launchpad website for unity
and download the Release (main)
affected packages (see below in the script).
Google search if you are not familiar with it.
Here is my blocking script for compiz
I just finished:
[Updated as I missed the unity affected packages]
#!/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
Don't forget to set the scripts executable ...
$ chmod a+x block-upd-compiz
[Folllow Up]: After running a Shell script to unblock the 19 packages from compiz
and unity
. I tried out the N0rbet
solution and it seems to work:
$ 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
apt upgrade