Comment configurer mon Raspberry Pi pour une mise à jour / mise à niveau automatique?

34

Actuellement, pour mettre les choses à jour sur mon Raspberry Pi, je dois taper sudo apt-get updateet sudo apt-get upgrade. Y at-il un moyen de le configurer pour le faire automatiquement? Je cours Raspbian Jessie.

Isaac Corbrey
la source

Réponses:

47

au lieu d'un cron manuel, vous pouvez installer unattended-upgrades, ce qui est utile pour vous assurer que les derniers noyaux sont installés. Il est principalement conçu pour la sécurité.

https://wiki.debian.org/UnattendedUpgrades

apt-get install unattended-upgrades

Certains bits peuvent être ajustés / configurés, mais la valeur par défaut est correcte.

faneuse42
la source
5
Pour moi, le défaut n'était pas bien. Il n'a rien fait: le /var/log/unattended-upgrades/unattended-upgrades.logfichier a signalé Allowed origins are: []qu'il ne contenait aucune mise à jour. Après la mise /etc/apt/apt.conf.d/50unattended-upgradesà "origin=Raspbian,codename=${distro_codename},label=Raspbian";jour, les mises à jour ont commencé à arriver.
Rabarberski
Mon stock d'os (à partir de septembre 2017) est 50unattended-upgradesrépertorié "origin=Debian,codename=${distro_codename},label=Debian-Security";et il semble que les paquets appropriés soient correctement trouvés. Bien sûr, il en ignore beaucoup. Je n'ai pas établi de liste blanche ou noire.
Jon V
3
La valeur par défaut 50unattended-upgradesest en effet stupide et doit être modifiée pour que cela fonctionne avec Raspian. Il n'y a pas Raspian-Security. Les mises à jour de sécurité ne sont pas étiquetées. Il est important d'ajouter les deux "origin=Raspbian,codename=${distro_codename},label=Raspbian";et "origin=Raspberry Pi Foundation,codename=${distro_codename},label=Raspberry Pi Foundation";à/etc/apt/apt.conf.d/50unattended-upgrades
user643011
23

Dans un terminal, tapez:

sudo su

Pour accéder à une invite au niveau de la racine. Ensuite, lancez:

crontab -e

Pour commencer à éditer votre crontab, un tableau de tâches à exécuter automatiquement à un moment donné. Il s'ouvrira dans votre éditeur de texte préféré. Modifiez-le pour inclure les lignes suivantes:

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

Pour mettre à jour et mettre à jour automatiquement vos applications à 7 heures tous les lundis. Lisez-le sur crontab pour savoir comment vous adapter.

Communauté
la source
2
il est probablement préférable de mettre les commandes sur la même ligne &&car elles sont liées et il n'y a aucune raison de faire une mise à jour si la mise à jour échoue.
tedder42
dans crontab 0signifie dimanche mais vous avez mis dans votre code 1pour que la commande soit exécutée le lundi, pas le dimanche
rav_kr
3
dist-upgradeest meilleur que upgrade, vous allez vous retrouver avec des dépendances brisées utilisant uniquement upgrade. Vous ne pourrez pas non plus contourner les mises à jour nécessitant une confirmation de dialogue. @ tedder42 a souligné la méthode préférée par Debian (utiliser unattended-upgrades).
ryanpcmcquen
Vous avez manqué le deuxième sudo après avoir ajouté le &&. Bien que ce soit dans crontab racine quand même.
user643011
1
Il ne devrait pas sudoy en avoir vous avez basculé sur le rootcompte en utilisant su. La crontab du superutilisateur est exécutée avec les privilèges de superutilisateur.
goldilocks
8

Vous pouvez installer et configurer cron-apt. Installez-le en procédant comme suit:

apt-get install cron-apt

le fichier de configuration principal est / etc / cron-apt / config

Une chose que j'ajoute à ma configuration est:

MAILON="always"

cela enverra un email à chaque fois qu'il s'exécutera, pas seulement s'il rencontre une erreur.

Notez que la configuration par défaut n'installe pas automatiquement les mises à jour (il y a de bonnes raisons de ne pas le faire), mais vous pouvez le configurer pour le faire. L'un des avantages de ce programme par rapport à une solution cron simple est qu'il vous permet de contrôler ce qui est installé (téléchargez uniquement les nouveaux packages, installez les mises à jour de sécurité ou installez toutes les mises à jour).

Pour définir l'heure d'exécution, éditez le fichier /etc/cron.d/cron-apt.

Vous pouvez trouver plus d'informations et les options de configuration ici

Le paquet inclut une très bonne documentation, mais il est gzippé. Pour extraire le fichier:

  1. créer un répertoire pour travailler dans - mkdir cron-apt_documentation
  2. passer au nouveau répertoire - cd cron-apt_documentation
  3. Copiez le fichier compressé - cp /usr/share/doc/cron-apt/README.gz. (notez le point final)
  4. décompresser le fichier - gunzip LISEZMOI.gz
  5. lire le fichier - cat README | Moins
Steve Robillard
la source
ouzcat /usr/share/doc/cron-apt/README.gz | less
5

Dans sa configuration par défaut, unattended-upgradesest cassé dans Raspbian Buster. Il n’installe pas de mises à jour cruciales pour le noyau et d’autres logiciels. Vos options sont:

Option recommandée:

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

Pour des mises à jour de sécurité plus rapides (mais moins de stabilité, car les paquets n'ont pas été approuvés pour rasbian), vous pouvez ajouter des paquets debian-security à 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

Vous devrez probablement installer de nouvelles clés apt pour le référentiel Debian .

Autres options:

  • Contournez-le en utilisant cron-apt: sudo apt install cron-apt

  • Autres moyens de contourner le problème.

Il est recommandé d'utiliser les mises à jour sans assistance et de corriger le paquet, car il convient mieux à cette fin. Cron-apt est votre deuxième choix, car il est également conçu dans un but similaire. Je ne suis pas sûr que soit capable de redémarrer automatiquement votre système après une mise à jour du noyau. Les mises à niveau sans assistance ont généralement cette option, mais je ne suis pas sûr que cela fonctionne avec le correctif ci-dessus.

Dej
la source