Wie stelle ich meinen Raspberry Pi so ein, dass er automatisch aktualisiert / aktualisiert wird?

34

Derzeit Dinge auf dem Laufenden über meine Raspberry Pi aufstehen, habe ich zu Art in sudo apt-get updateund sudo apt-get upgrade. Gibt es eine Möglichkeit, dies automatisch einzurichten? Ich leite Raspbian Jessie.

Isaac Corbrey
quelle

Antworten:

47

Anstelle eines manuellen Cron können Sie auch installieren. Dies unattended-upgradesist hilfreich, um sicherzustellen, dass die neuesten Kernel installiert sind. Es ist vor allem für die Sicherheit ausgelegt.

https://wiki.debian.org/UnattendedUpgrades

apt-get install unattended-upgrades

Es gibt einige Bits, die angepasst / konfiguriert werden können, aber die Standardeinstellung ist in Ordnung.

tedder42
quelle
5
Für mich war der Standard nicht in Ordnung. Es hat nichts getan: Die /var/log/unattended-upgrades/unattended-upgrades.loggemeldete Datei hat im Allowed origins are: []Grunde genommen keine Aktualisierungen /etc/apt/apt.conf.d/50unattended-upgrades"origin=Raspbian,codename=${distro_codename},label=Raspbian";
eingespielt
Mein Knochenbestand (Stand September 2017) wird 50unattended-upgradesaufgelistet, "origin=Debian,codename=${distro_codename},label=Debian-Security";und die relevanten Pakete werden anscheinend korrekt gefunden. Natürlich ignoriert es viele von ihnen. Ich habe keine weißen oder schwarzen Listen erstellt.
Jon V
3
Die Standardeinstellung 50unattended-upgradesist in der Tat dumm und muss geändert werden, damit dies auf Raspian funktioniert. Es gibt keine Raspian-Security. Sicherheitsupdates sind nicht gekennzeichnet. Es ist wichtig, sowohl "origin=Raspbian,codename=${distro_codename},label=Raspbian";als auch "origin=Raspberry Pi Foundation,codename=${distro_codename},label=Raspberry Pi Foundation";zu/etc/apt/apt.conf.d/50unattended-upgrades
user643011
23

Geben Sie in einem Terminal Folgendes ein:

sudo su

So greifen Sie auf eine Eingabeaufforderung auf Stammebene zu Dann renne:

crontab -e

Um mit der Bearbeitung Ihrer Crontab zu beginnen, wird eine Tabelle mit Aufgaben erstellt, die zu einem bestimmten Zeitpunkt automatisch ausgeführt werden. Es wird in Ihrem bevorzugten Texteditor geöffnet. Ändern Sie es, um die folgenden Zeilen einzuschließen:

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

So aktualisieren und aktualisieren Sie Ihre Apps jeden Montag um 07:00 Uhr. Lesen Sie in crontab nach, wie Sie sich an Ihre Vorlieben anpassen können.

Gemeinschaft
quelle
2
Es ist wahrscheinlich besser, die Befehle in dieselbe Zeile zu setzen, &&da sie verwandt sind und es keinen Grund gibt, ein Upgrade durchzuführen, wenn das Update fehlschlägt.
Tedder42
in crontab 0Mitteln Sonntag aber in Ihrem Code haben Sie setzen 1so würde der Befehl am Montag ausgeführt wird, nicht Sonntag
rav_kr
3
dist-upgradeist besser als upgrade, Sie werden nur mit kaputten Abhängigkeiten enden upgrade. Sie kommen auch nicht an Updates vorbei, für die Dialogbestätigungen erforderlich sind. @ tedder42 wies auf die von Debian bevorzugte Methode (mit unattended-upgrades) hin.
Ryanpcmcquen
Sie haben das zweite Sudo verpasst, nachdem Sie das && hinzugefügt haben. Obwohl es sowieso in root crontab ist.
user643011
1
Es sollte dort keine sudogeben; Sie haben mit zum rootKonto gewechselt su. Die crontab des Superuser wird mit Superuser-Berechtigungen ausgeführt.
Goldlöckchen
8

Sie können cron-apt installieren und konfigurieren. Installieren Sie es wie folgt:

apt-get install cron-apt

Die Hauptkonfigurationsdatei ist / etc / cron-apt / config

Eine Sache, die ich zu meiner Konfiguration hinzufüge, ist:

MAILON="always"

Dadurch wird bei jeder Ausführung eine E-Mail gesendet, nicht nur, wenn ein Fehler auftritt.

Beachten Sie, dass das Standard-Setup die Updates nicht automatisch installiert (es gibt einige gute Gründe, dies nicht zu tun), Sie können es jedoch dafür konfigurieren. Ein Vorteil dieses Programms gegenüber einer einfachen Cron-Lösung besteht darin, dass Sie steuern können, was installiert wird (nur neue Pakete herunterladen, Sicherheitsupdates installieren oder alle Updates installieren).

Bearbeiten Sie zum Festlegen der Ausführungszeit die Datei /etc/cron.d/cron-apt.

Weitere Informationen und Konfigurationsoptionen finden Sie hier

Das Paket enthält eine sehr gute Dokumentation, es ist jedoch gzippt. So extrahieren Sie die Datei:

  1. Erstellen Sie ein Verzeichnis für die Arbeit in - mkdir cron-apt_documentation
  2. Wechseln Sie in das neue Verzeichnis - cd cron-apt_documentation
  3. Kopieren Sie die komprimierte Datei - cp /usr/share/doc/cron-apt/README.gz. (Beachten Sie den abschließenden Punkt)
  4. entpacke die Datei - gunzip README.gz
  5. Lesen Sie die Datei - cat README | Weniger
Steve Robillard
quelle
oderzcat /usr/share/doc/cron-apt/README.gz | less
5

In der Standardkonfiguration unattended-upgradesist Raspbian Buster defekt. Es werden keine wichtigen Updates für den Kernel und andere Software installiert. Ihre Möglichkeiten sind:

Empfohlene Option:

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

Für schnellere Sicherheitsupdates (aber weniger Stabilität, da die Pakete nicht für rasbian genehmigt wurden) können Sie apt debian-security-Pakete hinzufügen:

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

Sie müssen wahrscheinlich neue apt-Schlüssel für das Debian-Repository installieren .

Andere Optionen:

  • Arbeiten Sie mit cron-apt daran herum: sudo apt install cron-apt

  • Andere Möglichkeiten, dies zu umgehen.

Es wird empfohlen, unbeaufsichtigte Updates zu verwenden und das Paket zu reparieren, da es für diesen Zweck am besten geeignet ist. Cron-apt ist Ihre zweitbeste Option, da es auch für einen ähnlichen Zweck entwickelt wurde. Ich bin mir auch nicht sicher, ob Ihr System nach einem Kernel-Update automatisch neu gestartet werden kann. Unbeaufsichtigt-Upgrades haben normalerweise diese Option, aber ich bin mir nicht sicher, ob es mit dem oben genannten Fix funktioniert.

Dej
quelle