Unattended-upgrades
Bonjour, aujourd'hui je vous présente un article de mon ami metalux.
Le paquet unattended-upgrades permet de gérer les mises à jours automatiques avec le gestionnaire de paquet Apt. Celui-ci est installé et configuré par défaut sur Ubuntu. Si ce paquet n'est pas présent, il faudra lancer la commande
sudo dpkg-reconfigure -plow unattended-upgrades
après son installation pour créer les fichiers de configurations.
La documentation de ce paquet se trouve à cet emplacement : /usr/share/doc/unattended-upgrades/README
Tous les fichiers de configuration se trouvent dans /etc/apt/apt.conf.d. 3 fichiers vont nous servir, 10periodic, 20archive, 50unattended-upgrades. Les différentes options utiles sont documentées en début du fichier /etc/cron.daily/apt. C'est ce fichier qui s'occupera de lancer une tâche cron journalière et lancera Unattended-upgrades pour effectuer les mises à jour automatiques.
Tout d'abord, il faut configurer le fichier 10periodic. Il suffit d'ajouter ou de modifier les lignes suivantes :
APT::Periodic::Update-Package-Lists "1"; Cette ligne maj la liste des paquets tous les jours
APT::Periodic::Download-Upgradeable-Packages "1"; télécharge les maj tous les jours
APT::Periodic::AutocleanInterval "7"; nettoie les paquets obsolètes tous les 7 jours
APT::Periodic::Unattended-Upgrade "1"; lance unattended-upgrades tous les jours
Il suffit de changer la valeur entre guillemet pour changer la fréquence. Le fichier 20archive se présente sous la forme :
APT::Archives::MaxAge "30";
APT::Archives::MinAge "2";
APT::Archives::MaxSize "500";
Les options parlent d'elles-même, elles définissent le cache apt avec un âge maxi des paquets à conserver, un âge minimum de conservation, en dessous de cet âge, les paquets ne seront pas supprimés, et une taille maxi du cache. L'âge est défini en jours, la taille en MB et les paquets les plus gros sont supprimés en 1er.
Le fichier unattended-upgrades est le principal fichier de configuration. Voici la 1ère partie de son contenu :
Unattended-Upgrade::Allowed-Origins {
"${distro_id}:${distro_codename}-security";
// "${distro_id}:${distro_codename}-updates";
// "${distro_id}:${distro_codename}-proposed";
// "${distro_id}:${distro_codename}-backports";
};
Il suffit de décommenter (les 2 slash //) pour autoriser la mise à jour des paquets concernés. Attention cependant à ce que vous activez, les paquets en provenance des dépôts backports peuvent par exemple être mis à jour automatiquement en décommentant la ligne correspondante. Cette partie est très intéressante car elle permet de mettre à jour automatiquement des dépôts non officiels comme des P.P.A. Ou des dépôts propriétaires tel que spotify (bah oui, je sais c'est maaaaal, il y a jamendo mais mes artistes préférés n'y sont pas !). Pour les ajouter, aidez-vous de la commande
sudo apt-cache policy
Vous aurez suffisamment de détail sur les dépôts à la condition que ceux-ci soient activés dans vos sources. Il suffit de les ajouter sous la forme : « origin:archive » ; L'origine est la partie située après o= et archive après a=. Voici en pratique avec notre exemple précédent.
sudo apt-cache policy
retourne ceci :
500 http://repository.spotify.com/ stable/non-free amd64 Packages
release v=0.4,o=Spotify LTD,a=stable,n=stable,l=Spotify Public Repository,c=non-free
origin repository.spotify.com
Il suffit donc d'ajouter la ligne : "Spotify LTD:stable"; pour autoriser la mise à jour automatique de spotify lorsqu'une version plus récente voit le jour.
La seconde partie (Unattended-Upgrade::Package-Blacklist) permet de blacklister certains paquets et d'empêcher leur mise à jour automatique. Un certains nombre d'options bien commentées sont également disponibles permettant d'effectuer les mises à jour à l'extinction du Pc, d'envoyer un mail en cas d'erreur ou à chaque fois qu'il y a des mises à jour (nécessite postfix ou ssmtp), de supprimer les dépendances inutilisées, redémarrer automatiquement si le système le nécessite,etc...
Lors des mises à jour, un fichier log contenant la date dans son nom est crée dans /var/log/unattended-upgrades et contient le détail des opérations effectuées.
Le paramétrage des fichiers de configuration peut s'effectuer tout simplement grâce à un script zenity qui liste vos dépôts. Il permet aussi de paramétrer aisément l'envoi de mails : Vous le trouverez sur le forum Ubuntu-fr.org.
IMPORTANT Vérifier avec le fichier log que unattended-upgrades fonctionne bien. Si les mises à jours ne s'effectuent pas automatiquement, il est nécessaire de lancer la commande
sudo unattended-upgrade -d
après avoir configuré unattended-upgrades. Cette commande lancera unattended-upgrades et le rendra actif.
sudo unattended-upgrade -d –dry-run
effectue une simulation d'installation des paquets. A n'utiliser que si ça ne fonctionne pas pour rechercher les erreurs possibles. En principe, elle ne devrait pas vous servir.
Sachez qu'il existe également d'autres paquets aux fonctions similaires comme cron-apt ou également apticron qui permettent d'avertir des mises à jour disponibles.