Po raz drugi w mniej niż 6 miesięcy zespoły Ubuntu dokonały proponowanej aktualizacji bez testowania i zepsucia działających systemów Ubuntu.
Ci faceci są ostatnio uwolnieni, aby przełamać obecną wersję LTS fałszywymi i niesprawdzonymi proponowanymi aktualizacjami ... Jest to nowość, aż do zeszłego roku tak się nie stało.
Rozwiązaniem jest NEVER install
proponowane i tak zwane Partial Upgrade
... Nadal możesz aktualizować system poprzez Synaptic
pakiet po pakiecie (chociaż dla lepszego zrozumienia jest Synaptic
on teraz usuwany z oficjalnej wersji) ... Dopóki nie zablokujesz wszystkich aktualizacji błędnego wydania . 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 według jego nazwy 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żesz zobaczyć długą listę compiz
powiązanych pakietów, które się psują Xenial LTS
, usuwając te pakiety:
ubuntu-desktop unity unity-tweak-tool unsettings ...
Pakiety do zablokowania to:
[Lista zaktualizowana, ponieważ brakowało mi pakietów dotkniętych jednością]
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
Całkiem długa lista. Zarządzalne za pomocą skryptów Shell.
Rozwiązaniem do odzyskiwania byłoby uruchomienie komputera z instalacyjnej pamięci USB Xenial i wykonanie chroot
. Przejdź do strony internetowej Launchpad, compiz
aby pobrać Release (main)
pakiety i wymusić ich instalację, a dpkg -i *.deb
następnie zablokować wszystkie aktualizacje lub usunąć proposed
wydania z konfiguracji aktualizacji.
[Aktualizacja]: Musisz także przejść do strony Launchpad unity
i pobrać Release (main)
pakiety, których dotyczy problem (patrz poniżej w skrypcie).
Wyszukiwarka Google, jeśli jej nie znasz.
Oto mój skrypt blokujący, compiz
który właśnie skończyłem:
[Aktualizacja, ponieważ brakowało mi pakietów dotkniętych jednością]
#!/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 wykonywalnych ...
$ chmod a+x block-upd-compiz
[Folllow Up]: Po uruchomieniu skryptu Shell, aby odblokować 19 pakietów z compiz
i unity
. Wypróbowałem N0rbet
rozwiązanie i wydaje się, ż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