KDE - Notifica degli aggiornamenti sulla systray: differenze tra le versioni

Da Guide@Debianizzati.Org.
Vai alla navigazione Vai alla ricerca
(Nuova pagina: ==KDE4 - Notifica degli aggiornamenti sulla systray== Scrivo questa breve guida per chi, come me, esegue più volte al giorno il comando: <pre>apt-get update && apt-get dist-upgrade</...)
 
Nessun oggetto della modifica
Riga 1: Riga 1:
==KDE4 - Notifica degli aggiornamenti sulla systray==
Scrivo questa breve guida per chi, come me, esegue più volte al giorno il comando:
Scrivo questa breve guida per chi, come me, esegue più volte al giorno il comando:
<pre>apt-get update && apt-get dist-upgrade</pre>
<pre>apt-get update && apt-get dist-upgrade</pre>

Versione delle 15:19, 20 nov 2009

Scrivo questa breve guida per chi, come me, esegue più volte al giorno il comando:

apt-get update && apt-get dist-upgrade

(o equivalente alias nella home di root) alla ricerca di aggiornamenti.

Servono fondamentalmente tre cose:

  • Un job di cron che effettua la risincronizzazione dei file contenenti gli indici dei pacchetti;
  • Uno script per notificare nella systray gli aggiornamenti eventualmente trovati;
  • Un secondo job di cron che lancia lo script precedente;

Job di cron per l'aggiornamento degli indici dei pacchetti

Questo primo job di cron può essere inserito in /etc/cron.hourly per essere lanciato ogni ora; il suo funzionamento è banale:

Creare un file contenente le seguenti righe:

#!/bin/sh
apt-get update &>/dev/null

salvare il file e renderlo eseguibile; se ad esempio lo abbiamo chiamato aggiorna:

# chmod +x aggiorna

il compito di questo job è soltanto quello di aggiornare la lista degli indici dei pacchetti, senza aggiornare il sistema. L'output e gli eventuali errori del comando vengono soppressi. Per le mie necessità è sufficiente in quanto gli errori sono spesso dovuti all'irraggiungibilità dei repo, cosa in genere risolta in poco tempo. Se si vuol far in modo che lo script venga eseguito ad intervalli diversi dall'ora, è possibile inserire un job nella directory /etc/cron.d secondo il formato di crontab.

Script di notifica nella systray

Lo script che si occupa di far comparire la notifica nella systray fa uso di Kdialog:

#!/bin/bash

NUM=`aptitude search ~U | wc -l`

if [ $NUM -eq 0 ]; then exit
elif [ $NUM -eq 1 ]; then kdialog --display :0 --passivepopup "Trovato un aggiornamento" 600
else kdialog --display :0 --passivepopup "Trovati $NUM aggiornamenti" 600
fi
exit
aptitude search ~U fornisce una lista (estratta dalla lista aggiornata ogni ora dal job di cron precedente) dei pacchetti che possono essere aggiornati.
wc -l prende l'output del comando precedente e ne conta le linee. In pratica conta il numero di pacchetti che possono essere aggiornati.
--display :0 parametro che indica a kdialog di utilizzare il nostro server grafico.
--passivepopup parametro che indica a Kdialog di mostrare un popup di notifica.
600 numero che esprime, in secondi, il tempo per cui resta attiva la notifica nella systray.

Job di cron per lanciare lo script di notifica

Il job di cron per lanciare lo script precedente deve essere specificato nel formato di crontab:

30 * * * * /percorso/dello/script >/dev/null 2>&1

che può essere inserito dopo aver dato, da utente, il comando:

$ crontab -e

Questo job verrà lanciato ogni 30 minuti. L'intervallo di tempo è liberamente modificabile; ad esempio, se si vuol lanciare il job ogni 10 min:

*/10 * * * * /percorso/dello/script >/dev/null 2>&1

Conclusioni

Da questo momento in poi le notifiche degli aggiornamenti compariranno nella nostra systray. Per aggiornare il sistema sarà comunque necessario dare il comando:

# apt-get upgrade

oppure

# apt-get dist-upgrade

a seconda delle necessità.

Documentazione


S3v