c'è chi da un periodico slackpkg update per vedificare gli aggiornameni
c'è chi usa un modo
c'è chi usa un altro modo
ma in quasi tutti si deve lanciare questo controllo.
Io mi sono fatto uno script che funziona a mo' di windows-update che controlla periodicamente gli aggiornamenti e li notifica nel systray.
Lo script è in bozza, ma funziona.
check-updates:
- Codice: Seleziona tutto
#!/bin/bash
# DEFAULT VALUE. DO NOT CHANGE. USE ~/.check-updates.rc INSTEAD
PRGNAME=$(basename $0)
RC=.check-updates.rc
PIDFILE=/tmp/check-updates.pid
MIN_INTERVAL=60
MAX_INTERVAL=3600
RETRY_INTERVAL=60
REPEATUPDATES=0
ACT="start"
if [ $# -gt 0 ];then
for P in $*;do
case $1 in
"--proxy") shift; export PROXY=$1; shift;;
"start") ACT="start";;
"stop") ACT="stop";;
*) usage; exit 1;;
esac
done
fi
if [ -e ~/$RC ];then
. ~/$RC
fi
if [ ! -z "$PROXY" ];then
export http_proxy=$PROXY
export https_proxy=$PROXY
export ftp_proxy=$PROXY
fi
function message(){
TIME=0
if [ "$1" == "-t" ];then
TIME=$2
shift 2
fi
if tty 2>/dev/null|grep -q dev;then
echo "$*"
else
kdialog --passivepopup "$*" $TIME
fi
sleep $[$TIME+1]
}
do_start() {
if [ -e $PIDFILE ];then
if ps $(cat $PIDFILE) 2>/dev/null|grep -q $PRGNAME;then
echo "Demone già avviato."
exit 1
else
rm $PIDFILE
fi
fi
LAUNCHDAEMON=$$
export LAUNCHDAEMON
$0 &
echo "$!" > $PIDFILE
exit
}
do_stop(){
if [ ! -e $PIDFILE ];then
echo "Demone non avviato"
exit
fi
kill `cat $PIDFILE` 2>/dev/null
rm $PIDFILE
exit
}
usage(){
echo "Usage: $0 { start | stop }"
}
if [ -z "$LAUNCHDAEMON" ];then
## LAUNCHER
if [ "$ACT" == "start" ];then do_start
elif [ "$ACT" == "stop" ];then do_stop
else usage
fi
exit
fi
## DEMONE VERO E PROPRIO
if [ ! -z "$LAUNCHDAEMON" ];then
INTERVAL=$MIN_INTERVAL
messaggio="Check Update started. "
if [ ! -z "$http_proxy" ];then
messaggio="$messaggio Using proxy $http_proxy."
fi
message -t 2 "$messaggio"
NEWUPDATE=0
while true;do
PID=$(ls /var/lock/slackpkg.* 2>/dev/null|sed 's/^.*\.\([0-9]*\)$/\1/'|head -1)
if [ ! -z "$PID" ];then
if ps $PID 2>/dev/null|grep -q slackpkg ;then
sleep $RETRY_INTERVAL
continue
else
rm -f /var/lock/slackpkg.* >/dev/null 2>&1
rm -f /tmp/slackpkg.* >/dev/null 2>&1
sleep $RETRY_INTERVAL
continue
fi
fi
U=$(slackpkg check-updates)
if [ $? -ne 0 ];then
sleep $RETRY_INTERVAL
continue
fi
echo $U|grep -q "News on ChangeLog.txt"
NEWS=$?
if [ $NEWS -eq 0 ];then
if [ $NEWUPDATE -ne 0 ];then
message -t 3 "Sono stati trovati aggiornamenti per slackware"
else
message -t 7 "Trovati nuovi aggiornamenti per slackware:
$(wget -q -O - $(grep -v \# /etc/slackpkg/mirrors)/ChangeLog.txt 2>/dev/null| diff - /var/lib/slackpkg/ChangeLog.txt|grep '^<'|cut -c3-|grep ^[a-z])"
fi
INTERVAL=$MAX_INTERVAL
NEWUPDATE=$[1-$REPEATUPDATES]
else
NEWUPDATE=0
INTERVAL=$MIN_INTERVAL
fi
sleep $INTERVAL
done
fi
io l'ho chiamato "check-updates"
Lo script va lanciato con l'utente con cui è running kde (nota... necessita kde; per le alternative a kde leggere il resto del topic)
Il check viene fatto per default ogni minuto. se trova un aggiornamento te lo ricorda ogni ora
per azzittirlo dare, come root, slackpkg update
Lo script usa un facoltativo file di configurazione
$HOME/.check-updates.rc
il file di configurazione è fatto così:
- Codice: Seleziona tutto
## Il path del pidfile.
#default /tmp/check-updates.pid
#PIDFILE=/tmp/check-updates.pid
## il tempo tra un controllo e l'altro.
#default 60 secondi
#MIN_INTERVAL=60
## se ci sono nuovi aggiornamenti ricordamelo più tardi.
#default 3600 secondi
#MAX_INTERVAL=3600
## se fallisce il check riprova dopo.
#default 60 secondi
#RETRY_INTERVAL=60
## usa il proxy. se vuoto usa le variabili di ambiente http_proxy e ftp_proxy
#default vuoto
#PROXY=192.168.78.69:8080
## negli avvisi di update trovati ripeti la lista dei pacchetti
#default 0 (no)
#REPEATUPDATES=0
Lanciare lo script con
./check-updates
verrà lanciato in background (così si può chiudere la shell).
Per fermarlo ./check-updates stop
Il consiglio è di copiarlo in $HOME/.kde/Autostart
Ciao
01

.


giusto per capire....immagino si debba modificare lo script per trasformarlo da un demone a un "widget" di conky (prendo in prestito la parola widget anche se non è molto adatta a conky)
.
(e lo stesso potrebbe fare ZeroUno con il suo demone).