Przeczytałem tutaj, jak włączyć ciche automatyczne aktualizacje dla Google Chrome. Mam jednak inne repozytoria, takie jak spotify, docky i inne, dla których chciałbym włączyć ciche aktualizacje.
Próbuję to zrobić w moim systemie Ubuntu 10.04. Ale to pytanie dotyczy wszystkich wersji Ubuntu. Mam zainstalowany pakiet nienadzorowanej aktualizacji .
Jak mogę to zrobić?
updates
automation
nik90
źródło
źródło
Odpowiedzi:
Najpierw zainstaluj
gksu
:sudo apt-get install gksu
Najłatwiejszym sposobem włączenia nienadzorowanych aktualizacji dla systemu jest edycja pliku
50unattended-upgrades
w/etc/apt/apt.conf.d/
swoim ulubionym edytorze tekstów, na przykład:gksu gedit /etc/apt/apt.conf.d/50unattended-upgrades
W nim musisz skomentować skomentowane sekcje bloku Dozwolone pochodzenie
Zmiana
do
W przypadku oprogramowania, którego nie ma w repozytoriach Ubuntu, które chcesz zaktualizować, musisz dodać źródło i archiwum do pliku. Aby dowiedzieć się, jakie to są dla Twoich PPA, otwórz folder
/var/lib/apt/lists/
, który jest miejscem przechowywania informacji o stanie dla każdego zasobu pakietu. To, czego szukasz, to pliki z końcówką Release w nazwie.Otwórz jeden za pomocą edytora tekstu, np. Dla Google Chrome:
Pochodzenie jest oczywiste (
Origin: Google, Inc.
), a archiwum będzie znajdowało się pod linią Suite (Suite: stable
).Jeśli któregoś z
Origin
lubSuite
brakuje, to będą one ciągiem pustym. Pamiętaj jednak, że jeśli brakuje obu, prawdopodobnie nie będzie możliwe korzystanie z tego źródła w przypadku nienadzorowanych aktualizacji bez uwzględnienia innych źródeł z tym samym problemem.Po zanotowaniu tych 2 linii musisz edytować
50unattended-upgrades
plik i dodać linie, używając tego formatu"<origin>:<archive>";
dla tego przykładu"Google\, Inc.:stable";
.Pochodzenie Google Chrome jest dość trudne, ponieważ ma spację jako punkt końcowy i przecinek, ale większość plików Release będzie łatwa do odczytania.
Jako inny przykład, źródło JS węzła określa źródło (
Node Source
), ale nie archiwum; więc możesz to dopasować"Node Source:";
.Dozwolone początki są dopasowywane za pomocą symboli wieloznacznych w stylu powłoki (a dokładniej za pomocą fnmatch () Pythona ). Jeśli jesteś wystarczająco ostrożny, aby nie uwzględniać sprzecznych źródeł, możesz napisać coś takiego
"Node *:*";
.Nie zapomnij wykonać kopii zapasowej
50unattended-upgrades
pliku przed edycją, zrób to za pomocąsudo cp /etc/apt/apt.conf.d/50unattended-upgrades /etc/apt/apt.conf.d/50unattended-upgrades.bak
.Aby przetestować zmiany dokonane w pliku, możesz użyć
sudo unattended-upgrades
parametrów--dry-run
i--debug
.--dry-run
uruchomi cykl nienadzorowanych aktualizacji, ale tak naprawdę nie zainstaluje aktualizacji, tylko sprawdź i sprawdź, czy wszystko jest w porządku.--debug
włącza pełny tryb.Zawsze możesz sprawdzić dzienniki pod
unattended-upgrades
adresem/var/log/unattended-upgrades/unattended-upgrades.log
.Możesz zmienić konfigurację nienadzorowanych aktualizacji, edytując plik
/etc/apt/apt.conf.d/10periodic
, opcje konfiguracji znajdują się w/etc/cron.daily/apt
nagłówku skryptu. Przeczytaj je, aby skonfigurować częstotliwość nienadzorowanych aktualizacji.źródło
--dry-run
sprawdzi, czy na zaktualizowanych listach są dostępne aktualizacje i wyśle je do ciebie, aktualizacje list za pośrednictwem dowolnej konfiguracji/etc/cron.daily/apt
, uruchomienie ręczne nie aktualizuje list, jak sądzę.Zautomatyzowane podejście do odpowiedzi @Bruno Pereira: (Jeśli uważasz, że odpowiedź jest przydatna, weź udział w repozytorium github).
Kod Link: https://github.com/abhigenie92/unattended_upgrades_repos
Sprawdź repozytoria, aby dodać:
Teraz edytuj,
/etc/apt/apt.conf.d/50unattended-upgrades
aby je uwzględnić:Sprawdź, czy są uwzględnione:
źródło
"Raspberry:stable";
Nie działało. Zamiast tego użyłem np."o=Raspberry, a=stable";
Edytowanie
/etc/apt/apt.conf.d/50unattended-upgrades
, dodaj następujące:Umożliwi to nienadzorowane aktualizacje wszystkich pakietów.
źródło
origin:''
na przykład datadog-agent zsite:'apt.datadoghq.com'
. W takim przypadku należałoby również dodać,"origin=";
aby nie pomijać pakietów z pustym początkiem. Ale wtedy lepiej jest po prostu użyć"site=*";
zamiast"origin=*";
./etc/apt/sources.list.d/my_repo.list
, ale nie uaktualnia ono pakietu. Ręcznie działa zsudo apt update
. Jakiś pomysł jak?Istnieją instrukcje dotyczące wymuszania ponownego uruchomienia, aby cron rozpoczął automatyczną aktualizację pod poniższym linkiem . Procedura zatrzymania crona jest następująca
i zrestartować crona, aby automatyczna aktualizacja miała miejsce teraz (lub przynajmniej w ciągu kilku minut)
Jak to działa
Uruchomi go kilka rzeczy.
Zwłaszcza jest uruchamiany
/etc/cron.daily
przez crona/etc/cron.daily/apt
. Cron działa/etc/cron.daily
o 6.25 rano (patrz/etc/crontab
)Anacron działa od początku? i wystrzeli
/etc/cron.daily
po 5 minutach bezczynności (patrz/etc/anacrontab
)Uwaga
APT::Periodic::RandomSleep
może być ustawiona/etc/apt/apt.conf.d/10periodic
, ale domyślnie jest to 1800s (30 minut), więc żadne aktualizacje mogą nie nastąpić do 30 minut po/etc/cron.daily/apt
uruchomieniu.Log
Jeśli działa rzeczy powinny się zalogować w tym folderze
/var/log/unattended-upgrades
.źródło
/etc/cron.daily/apt
z domyślnej instalacji Ubuntu 12.04 - więc automatyczne aktualizacje APT nie miały miejsca :-(. Odpowiedź ServerFault serverfault.com/a/568329/ 95570 przedstawił szczegóły dotyczące ponownego utworzenia tego pliku