KDE - Notifica degli aggiornamenti sulla systray
Attenzione. Questa guida è da considerarsi abbandonata, per via del tempo trascorso dall'ultima verifica.
Potrà essere resa obsoleta, previa segnalazione sul forum, se nessuno si propone per l'adozione. |
Versioni Compatibili Debian 6 "squeeze" Debian 7 "wheezy" Debian 8 "jessie" |
Nota Per chi vuole evitare inutili complicazioni, è possibile utilizzare il pacchetto "update-notifier-kde". |
Introduzione
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 contenuto nel file .bashrc
di root) alla ricerca di aggiornamenti.
Dopo aver seguito i successivi tre semplici passi, la notifica della presenza di aggiornamenti dei nostri pacchetti sarà visualizzabile direttamente sulla systray, restandoci per un tempo impostabile a piacimento.
Servono fondamentalmente tre cose:
- Uno script che effettua la risincronizzazione dei file contenenti gli indici dei pacchetti;
- Uno script per notificare nella systray gli aggiornamenti eventualmente trovati;
- Un job di Cron che lancia lo script di notifica;
Script per l'aggiornamento degli indici dei pacchetti e il download
Con i permessi di root eseguire il comando:
# crontab -e
e inserire le seguenti righe:
30 15,18,21 * * * /usr/bin/apt-get -qq update && /usr/bin/apt-get -qq -d dist-upgrade @reboot /usr/bin/apt-get -qq update && /usr/bin/apt-get -qq -d dist-upgrade
Verrà eseguito al boot della macchina, e alle 15,30 - 18,30 - 21,30, l'aggiornamento degli indici dei pacchetti e il download dei pacchetti stessi ma senza installarli. Prestare attenzione all'opzione "-qq" che sopprime i messaggi di apt-get e a "dist-upgrade" che può essere sostituito con "upgrade" in base alle proprie esigenze.
Il download automatico dei pacchetti (opzione "-d") permette un successivo aggiornamento del sistema in maniera molto più veloce.
L'aggiunta della riga che inizia con "@reboot" si dimostrerà molto utile, come si vedrà più avanti, nel caso si decidesse di volere la notifica degli aggiornamenti anche all'avvio di una sessione di KDE.
Questa è l'unica parte della guida in cui i comandi vanno dati con i permessi di root; i successivi passi vanno eseguiti attraverso i normali privilegi utente.
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 env DISPLAY=:0 kdialog --passivepopup "È stato trovato un aggiornamento" 600 else env DISPLAY=:0 kdialog --passivepopup "Sono stati trovati $NUM aggiornamenti" 600 fi exit
NUM
- variabile che conterrà il numero di pacchetti aggiornabili;
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;
env DISPLAY=:0 kdialog
- viene utilizzato il comando
env
per settare la variabile d'ambiente DISPLAY ed eseguire il comandokdialog
; --passivepopup
- parametro che indica a Kdialog di mostrare un popup di notifica contenente il testo specificato tra virgolette;
600
- numero che esprime, in secondi, il tempo per cui resta attiva la notifica nella systray;
In maniera simile a quanto fatto con lo script precedente, salvare il file in una directory della nostra home (~/scripts
ad esempio ) chiamandolo notifica (o in qualche altro modo) e renderlo eseguibile:
$ chmod +x ~/scripts/notifica
Nota Nelle versioni di apt a partire dalla 1.0, attualmente presenti in Jessie, Sid e experimental, i pacchetti da installare possono essere visualizzati con il comando: $ apt list --upgradablePertanto, per chi non vuole ricorrere ad aptitude, nello script precedente bisogna sostituire la riga: NUM=`aptitude search ~U | wc -l`con la riga: NUM=$((`apt list --upgradable 2>/dev/null | wc -l` - 1))La soppressione dell'output di errore e il decremento di uno del numero di pacchetti si rende necessario in quanto il comando, da poco introdotto, avverte l'utente di possibili problemi nel suo utilizzo all'interno di script. |
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 * * * * ~/scripts/notifica >/dev/null 2>&1
che può essere inserito dopo aver eseguito il comando:
$ crontab -e
Nell'esempio indicato, il job di Cron
verrà lanciato ogni ora e quando i minuti valgono 30 (01.30, 02.30, 03.30 e così via). L'intervallo di tempo è liberamente modificabile; nell'esempio successivo lo script viene eseguito pochi minuti dopo il job di root definito nel paragrafo "Script per l'aggiornamento degli indici dei pacchetti e il download":
45 15,18,21 * * * ~/scripts/notifica >/dev/null 2>&1
Notifica all'avvio di una sessione KDE
Questo passaggio non è fondamentale ma potrebbe rivelarsi utile per gli utenti che volessero ricevere la notifica di aggiornamenti all'avvio della loro sessione di KDE.
La prima cosa da fare è accertarsi, come spiegato nel primo paragrafo, che Cron
esegua l'aggiornamento della lista dei pacchetti all'avvio del sistema; quindi eseguire il comando:
$ ln -s /percorso/dello/script/script_di_notifica /home/utente/.kde/Autostart/nome_link
che creerà, nella cartella Autostart
, un link simbolico nome_link
allo script di notifica. In questo modo lo script verrà lanciato all'avvio di KDE.
In particolare, per un utente pippo
e con lo script chiamato notifica
contenuto in /home/pippo/scripts/
, il comando diventa:
$ ln -s /home/pippo/scripts/notifica /home/pippo/.kde/Autostart/notifica
o, più semplicemente:
$ ln -s ~/scripts/notifica ~/.kde/Autostart/notifica
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
Guida scritta da: S3v | Debianized 20% |
Estesa da: | |
Verificata da: | |
Verificare ed estendere la guida | Cos'è una guida Debianized |