Zainstalowałem (x) Ubuntu 14.04 na komputerze znajomego. Automatyczne aktualizacje są ustawione na „pobieranie i automatyczne instalowanie aktualizacji”.
Problem polega na tym, że po kilku miesiącach użytkowania nieświadomie wyłącza komputer przed zakończeniem aktualizacji pakietów. Prowadzi to do zepsutych zależności / pakietów, co prowadzi do wpływu aktualizacji i konieczności uruchomieniasudo dpkg --configure -a
Czy to możliwe, aby Ubuntu czekał na zakończenie aktualizacji przed zamknięciem komputera lub ponownym uruchomieniem, tak jak robi to system Windows, aby mieć pewność, że nigdy nie zostaną uszkodzone pakiety i że jego komputer pozostanie aktualizowany automatycznie?
System Settings -> Power
Odpowiedzi:
Molly-Guard to program właśnie w tym celu; wymaga to zrobić niewielką ilość konfiguracji, i
/usr/sbin
zanim/sbin
w twojej$PATH
.W przeciwnym razie, zgodnie z tym dokładne dane są silnie uzależnione od realizacji DE / GUI. Ponieważ wiemy, że twój przyjaciel używa Xubuntu, zawęża to, ale bez ponownej kompilacji Xfce z tym wbudowanym wsparciem (co mogłoby powodować kolejne problemy) wydaje się bardzo trudne.
Zgodnie z moimi szczerymi badaniami teoretycznie możesz po prostu zastąpić
/sbin/shutdown
skryptem, który sprawdza, czy zadanie apt jest uruchomione i wykonuje się,sudo shutdown -c
lubsudo init 2
anuluje trwające zamknięcie iwait
kończy działanie, ale nie jestem pewien, jak solidne jest to zadanie.Zgodnie z tym , możesz po prostu utrudnić użytkownikowi zamknięcie, zamiast podpinania skryptu.
Na koniec, jak tu nakreślono , możesz zainstalować
unattended-upgrades
na dowolnym systemie, którego używasz teraz do automatycznych aktualizacji, i upewnij się, że kończy działanie przed zamknięciem, jak szczegółowo opisano w tej odpowiedzi .Istnieje wiele opcji, z których wszystkie są różne poziomy niewiarygodne, ale myślę, że najlepsza, która rozwiązuje to , co moim zdaniem jest do pewnego stopnia leżącym u podstaw problemem X / Y , to:
Służy
crontab
do uruchamiania komputeradpkg --configure -a
przy każdym rozruchu.@LovesTha: Dla twojego celu polecam
unattended-upgrades
, a może Molly-Guard.źródło
Wprowadzenie
Poniższy skrypt używa odpytywania sterowanego przerwaniami dla określonych komunikatów z dbus i za każdym razem, gdy zobaczy żądanie wyłączenia / ponownego uruchomienia, sprawdzi, czy menedżer pakietów, taki jak,
dpkg
czyapt
działa. Jeśli są uruchomione, żądanie zamknięcia zostanie anulowane.Ustawiać
Ponieważ wspomniałeś, że twój przyjaciel nie chce dotykać linii poleceń, będziesz musiał albo ssh na jego maszynie, albo przyjść i zainstalować to ręcznie.
Manualna instalacja
mkdir $HOME/bin
preventShutdown.sh
chmod +x $HOME/bin/preventShutdown.sh
aby to zrobić.desktop
plik w$HOME/.config/autostart
Alternatywna konfiguracja
Dodaj skrypt jako aplikację startową.
Źródło skryptu
źródło
Cytując Einsteina:
więc nie ma 100% gwarancji na ludzką głupotę, ale możesz utrudnić nie-Einsteinom rozbicie rzeczy poprzez:
Aktywacja automatycznych aktualizacji przy zamykaniu .
Wyjaśnij, że komputery nie są młotami ani gwoździami, ale kruche, inteligentne urządzenia, które potrzebują dwóch rodzajów żywności: elektryczności i aktualizacji.
Alternatywnie,
Alternatywnie:
• użyj Remminy, aby utrzymać płynność działania
źródło