Afin d'être averti quotidiennement des mises à jour système disponibles pour mon ordinateur de bureau, et ne souhaitant pas utiliser gnome-packagekit (utilitaire de mise à jour spécifique à l'environnement gnome) ni apticron (rapport à la nécessité de configurer le serveur mail), j'ai décidé de créer une tache cron affichant les mises à jour disponibles dans une fenêtre. Cela me permet ensuite de procéder, si nécessaire, aux installations de manière plus précise avec par exemple aptitude.

Dans un premier temps Il s'agit de concevoir une suite de commandes:

  • apt-get update pour actualiser la listes des paquets
  • apt-get upgrade --assume-no pour afficher les paquets à installer sans lancer l'installation
  • Rediriger le résultat dans un fichier "upgrade.log"
apt-get update && apt-get upgrade --assume-no > /chemin/upgrade.log

Dans un deuxième temps il faut éditer un script python qui affichera une fenêtre avec le contenu du fichier"upgrade.log".

Le script python utilise tkinter comme interface graphique.

#!/usr/bin/env python2.7        

#-*-coding:utf-8-*-
from Tkinter import *

fenetre = Tk()

fichier = open("/chemin/upgrade.log", "r")
content = fichier.read()
fichier.close()

Label(fenetre, text=content).pack(padx=10, pady=10)

Button(fenetre, text="Quitter", command=fenetre.destroy).pack(pady=5)

fenetre.mainloop()

Crontab root

Il ne reste plus qu'à éditer le crontab (crontab -e) pour actualiser le fichier "upgrade.log" et lancer le script python affichant la fenêtre avec les informations de mise à jours .

0 10,22 * * * apt-get update && apt-get upgrade --assume-no > /chemin/upgrade.log
05 10,22 * * * DISPLAY=:0 /chemin/upgrade.py