Jak ustawić moją Raspberry Pi na automatyczną aktualizację / aktualizację?

34

Obecnie, aby wszystko było aktualne na moim Raspberry Pi, muszę wpisać sudo apt-get updatei sudo apt-get upgrade. Czy istnieje sposób na skonfigurowanie automatycznego robienia tego? Prowadzę Raspbian Jessie.

Isaac Corbrey
źródło

Odpowiedzi:

47

zamiast ręcznego crona można zainstalować unattended-upgrades, co jest przydatne, aby upewnić się, że zainstalowane są najnowsze jądra. Jest głównie zaprojektowany dla bezpieczeństwa.

https://wiki.debian.org/UnattendedUpgrades

apt-get install unattended-upgrades

Istnieje kilka bitów, które można regulować / konfigurować, ale domyślnie jest w porządku.

przetrząsacz42
źródło
5
Dla mnie ustawienie domyślne nie było w porządku. Nic nie zrobił: /var/log/unattended-upgrades/unattended-upgrades.logplik zgłosił się Allowed origins are: []tak zasadniczo, że nie pobierał żadnych aktualizacji. Po aktualizacji w /etc/apt/apt.conf.d/50unattended-upgradescelu uwzględnienia "origin=Raspbian,codename=${distro_codename},label=Raspbian";aktualizacji zaczęły pojawiać się.
Rabarberski
50unattended-upgradesLista moich zapasów kości (stan na wrzesień 2017 r.) Zawiera listę "origin=Debian,codename=${distro_codename},label=Debian-Security";i wydaje się, że poprawnie znajduje odpowiednie pakiety. Oczywiście ignoruje wiele z nich. Nie utworzyłem żadnych białych ani czarnych list.
Jon V
3
Domyślne ustawienie 50unattended-upgradesjest naprawdę głupie i musi zostać zmienione, aby działało na Raspian. Nie ma Raspian-Security. Aktualizacje zabezpieczeń nie są oznaczone. Jest ważne, aby dodać zarówno "origin=Raspbian,codename=${distro_codename},label=Raspbian";i "origin=Raspberry Pi Foundation,codename=${distro_codename},label=Raspberry Pi Foundation";do/etc/apt/apt.conf.d/50unattended-upgrades
user643011
23

W terminalu wpisz:

sudo su

Aby uzyskać dostęp do monitu na poziomie głównym. Następnie uruchomić:

crontab -e

Aby rozpocząć edycję swojego crontab, tabelę zadań uruchamianych automatycznie w danym momencie. Otworzy się w preferowanym edytorze tekstu. Zmodyfikuj go, aby zawierał następujące wiersze:

0 7 * * 1 apt update && apt upgrade -y

Aby automatycznie aktualizować i aktualizować aplikacje o 7 rano w każdy poniedziałek. Czytaj dalej na crontab, aby zobaczyć, jak dostosować się do swoich upodobań.

Społeczność
źródło
2
prawdopodobnie lepiej jest umieścić polecenia w tym samym wierszu, &&ponieważ są one powiązane i nie ma powodu, aby „aktualizować”, jeśli „aktualizacja” się nie powiedzie.
tedder42
w crontab 0oznacza niedzielę, ale 1
wpisałeś
3
dist-upgradejest lepsze niż upgrade, skończysz na zerwanych zależnościach, używając tylko upgrade. Nie będziesz również omijać aktualizacji wymagających potwierdzenia w oknie dialogowym. @ tedder42 wskazał metodę preferowaną przez Debiana (za pomocą unattended-upgrades).
ryanpcmcquen
Drugie sudo przegapiłeś po dodaniu &&. Mimo to i tak jest w crontab root.
user643011
1
Nie powinno tam być sudo; przeszedłeś na rootkonto za pomocą su. Crontab administratora jest uruchamiany z uprawnieniami administratora.
Złotowłosa
8

Możesz zainstalować i skonfigurować cron-apt. Zainstaluj go, wykonując następujące czynności:

apt-get install cron-apt

głównym plikiem konfiguracyjnym jest / etc / cron-apt / config

Jedną rzeczą, którą dodaję do mojej konfiguracji jest:

MAILON="always"

spowoduje to wysłanie wiadomości e-mail za każdym razem, gdy zostanie uruchomiona, nie tylko w przypadku wystąpienia błędu.

Pamiętaj, że domyślna instalacja nie spowoduje automatycznej instalacji aktualizacji (istnieje kilka dobrych powodów, aby tego nie robić), ale możesz to skonfigurować. Zaletą tego programu w porównaniu z prostym rozwiązaniem cron jest to, że daje on kontrolę nad tym, co zostanie zainstalowane (pobieraj tylko nowe pakiety, instaluj aktualizacje zabezpieczeń lub instaluj wszystkie aktualizacje).

Aby ustawić czas działania, edytuj plik /etc/cron.d/cron-apt.

Więcej informacji i opcji konfiguracji można znaleźć tutaj

Pakiet zawiera bardzo dobrą dokumentację, jednak jest spakowany gzip. Aby wyodrębnić plik:

  1. utwórz katalog do pracy w - mkdir cron-apt_documentation
  2. przejdź do nowego katalogu - cd cron-apt_documentation
  3. skopiuj skompresowany plik - cp /usr/share/doc/cron-apt/README.gz. (zwróć uwagę na kropkę)
  4. rozpakuj plik - gunzip README.gz
  5. przeczytaj plik - cat README | mniej
Steve Robillard
źródło
lubzcat /usr/share/doc/cron-apt/README.gz | less
5

W domyślnej konfiguracji unattended-upgradesjest uszkodzony w Raspbian Buster. Nie zainstaluje istotnych aktualizacji jądra i innego oprogramowania. Twoje opcje to:

Zalecana opcja:

sudo apt install unattended-upgrades

echo 'Unattended-Upgrade::Origins-Pattern {
//      Fix missing Rasbian sources.
        "origin=Debian,codename=${distro_codename},label=Debian";
        "origin=Debian,codename=${distro_codename},label=Debian-Security";
        "origin=Raspbian,codename=${distro_codename},label=Raspbian";
        "origin=Raspberry Pi Foundation,codename=${distro_codename},label=Raspberry Pi Foundation";
};' | sudo tee /etc/apt/apt.conf.d/51unattended-upgrades-raspbian

Aby uzyskać szybsze aktualizacje zabezpieczeń (ale mniejszą stabilność, ponieważ pakiety nie zostały zatwierdzone dla rasbian), możesz dodać pakiety bezpieczeństwa debian do apt:

echo 'deb http://deb.debian.org/debian-security/ buster/updates main contrib non-free' | sudo tee /etc/apt/sources.list.d/debian-security.list

Prawdopodobnie będziesz musiał zainstalować nowe klucze apt do repozytorium debian .

Inne opcje:

  • Obejdź to za pomocą cron-apt: sudo apt install cron-apt

  • Inne sposoby obejścia tego.

Zaleca się stosowanie aktualizacji nienadzorowanych i naprawianie pakietu, ponieważ najlepiej nadaje się do tego celu. Cron-apt jest twoją drugą najlepszą opcją, ponieważ jest również zaprojektowany do podobnego celu. Nie jestem pewien, czy którykolwiek z nich może automatycznie zrestartować system po aktualizacji jądra. Uaktualnienia nienadzorowane zwykle mają tę opcję, ale nie jestem pewien, czy działa ona z powyższą poprawką.

Dej
źródło