Come posso impostare il mio Raspberry Pi per l'aggiornamento / l'upgrade automatico?


34

Al momento, per aggiornare le cose sul mio Raspberry Pi, devo digitare sudo apt-get updatee sudo apt-get upgrade. C'è un modo per configurarlo per farlo automaticamente? Sto gestendo Raspbian Jessie.

Risposte:


47

invece di un cron manuale, è possibile installare unattended-upgrades, il che è utile per assicurarsi che siano installati i kernel più recenti. È principalmente progettato per la sicurezza.

https://wiki.debian.org/UnattendedUpgrades

apt-get install unattended-upgrades

Ci sono alcuni bit che possono essere regolati / configurati, ma il valore predefinito va bene.


5
Per me, il valore predefinito non andava bene. Non ha fatto nulla: il /var/log/unattended-upgrades/unattended-upgrades.logfile riportava Allowed origins are: []così sostanzialmente che non stava /etc/apt/apt.conf.d/50unattended-upgradesinserendo alcun aggiornamento. Dopo l'aggiornamento per includere gli "origin=Raspbian,codename=${distro_codename},label=Raspbian";aggiornamenti ha iniziato a entrare.
Rabarberski,

Il mio stock di ossa (a settembre 2017) 50unattended-upgradeselenca "origin=Debian,codename=${distro_codename},label=Debian-Security";e sembra trovare correttamente i pacchetti pertinenti. Naturalmente ignora molti di loro. Non ho creato alcuna lista bianca o nera.
Jon V,

3
L'impostazione predefinita 50unattended-upgradesè davvero stupida e deve essere modificata affinché funzioni su Raspian. Non c'è Raspian-Security. Gli aggiornamenti di sicurezza non sono etichettati. E 'importante aggiungere sia "origin=Raspbian,codename=${distro_codename},label=Raspbian";e "origin=Raspberry Pi Foundation,codename=${distro_codename},label=Raspberry Pi Foundation";per/etc/apt/apt.conf.d/50unattended-upgrades
user643011

23

In un terminale, digitare:

sudo su

Per accedere a un prompt a livello di root. Quindi, esegui:

crontab -e

Per iniziare a modificare il tuo crontab, una tabella di attività da eseguire automaticamente in un determinato momento. Si aprirà nel tuo editor di testo preferito. Modificalo per includere le seguenti righe:

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

Per aggiornare e aggiornare automaticamente le tue app alle 7:00 ogni lunedì. Leggi su crontab per vedere come adattarti a tuo piacimento.


2
è probabilmente meglio mettere i comandi sulla stessa riga &&poiché sono correlati e non c'è motivo di fare 'upgrade' se 'update' fallisce.
tedder42

in crontab 0significa domenica ma nel tuo codice hai inserito in 1modo che il comando venga eseguito lunedì, non domenica
rav_kr

3
dist-upgradeè meglio di upgrade, finirai con dipendenze rotte usando solo upgrade. Inoltre, non otterrai aggiornamenti che richiedono conferme nella finestra di dialogo. @ tedder42 ha sottolineato il metodo preferito da Debian (usando unattended-upgrades).
ryanpcmcquen,

Hai perso il secondo sudo dopo aver aggiunto &&. Anche se è in root crontab comunque.
user643011

1
Non ci dovrebbe essere nessuno sudolì dentro; sei passato rootall'account utilizzando su. Il crontab del superutente è gestito con privilegi di superutente.
Riccioli d'oro

8

È possibile installare e configurare cron-apt. Installalo procedendo come segue:

apt-get install cron-apt

il file di configurazione principale è / etc / cron-apt / config

Una cosa che aggiungo alla mia configurazione è:

MAILON="always"

questo invierà un'e-mail ogni volta che viene eseguito, non solo se si verifica un errore.

Si noti che l'installazione predefinita non installerà automaticamente gli aggiornamenti (ci sono alcuni buoni motivi per non farlo), ma è possibile configurarlo per farlo. Un vantaggio offerto da questo programma rispetto a una semplice soluzione cron è che ti dà il controllo su ciò che viene installato (scarica solo nuovi pacchetti, installa aggiornamenti di sicurezza o installa tutti gli aggiornamenti).

Per impostare il tempo di esecuzione, modifica il file /etc/cron.d/cron-apt.

Puoi trovare maggiori informazioni e opzioni di configurazione qui

Il pacchetto include un'ottima documentazione, tuttavia è compresso con gzip. Per estrarre il file:

  1. creare una directory su cui lavorare - mkdir cron-apt_documentation
  2. passare alla nuova directory - cd cron-apt_documentation
  3. copia il file compresso - cp /usr/share/doc/cron-apt/README.gz. (notare il punto finale)
  4. decomprimere il file - gunzip README.gz
  5. leggi il file - cat README | Di meno

oppurezcat /usr/share/doc/cron-apt/README.gz | less

5

Nella sua configurazione predefinita, unattended-upgradesè rotto in Raspbian Buster. Non installerà aggiornamenti cruciali per il kernel e altri software. Le tue opzioni sono:

Opzione consigliata:

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

Per aggiornamenti di sicurezza più rapidi (ma meno stabilità, poiché i pacchetti non sono stati approvati per rasbian), è possibile aggiungere i pacchetti debian-security ad 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

Probabilmente dovrai installare nuove chiavi apt per il repository debian .

Altre opzioni:

  • Aggirare il problema usando cron-apt: sudo apt install cron-apt

  • Altri modi per aggirare il problema.

Si consiglia di utilizzare gli aggiornamenti automatici e correggere il pacchetto, poiché è più adatto allo scopo. Cron-apt è la tua seconda opzione migliore, perché è progettata anche per uno scopo simile. Non sono sicuro che uno dei due possa riavviare automaticamente il sistema dopo un aggiornamento del kernel. Gli aggiornamenti non presidiati di solito hanno questa opzione, ma non sono sicuro che funzioni con la correzione sopra.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.