Repository 32bit  Forum
Repository 64bit  Wiki

[SCRIPT] slackware updates

Se avete problemi con l'installazione e la configurazione di Slackware postate qui. Non usate questo forum per argomenti generali... per quelli usate Gnu/Linux in genere.

Moderatore: Staff

Regole del forum
1) Citare sempre la versione di Slackware usata, la versione del Kernel e magari anche la versione della libreria coinvolta. Questi dati aiutano le persone che possono rispondere.
2) Per evitare confusione prego inserire in questo forum solo topic che riguardano appunto Slackware, se l'argomento è generale usate il forum Gnu/Linux in genere.
3) Leggere attentamente le risposte ricevute.
4) Scrivere i messaggi con il colore di default, evitare altri colori.
5) Scrivere in Italiano o in Inglese, se possibile grammaticalmente corretto, evitate stili di scrittura poco chiari, quindi nessuna abbreviazione tipo telegramma o scrittura stile SMS o CHAT.
6) Appena registrati è consigliato presentarsi nel forum dedicato.

La non osservanza delle regole porta a provvedimenti di vari tipo da parte dello staff, in particolare la non osservanza della regola 5 porta alla cancellazione del post e alla segnalazione dell'utente. In caso di recidività l'utente rischia il ban temporaneo.

[SCRIPT] slackware updates

Messaggioda ZeroUno » sab set 11, 2010 13:20

c'è chi ha ChangeLog.txt come home page.
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
Ultima modifica di ZeroUno il mer set 15, 2010 16:33, modificato 3 volte in totale.
Packages finder: slakfinder.org | Slackpkg+, per aggiungere repository a slackpkg
Codice: Seleziona tutto
1011010 1100101 1110010 1101111 - 0100000 - 1010101 1101110 1101111
Avatar utente
ZeroUno
Staff
Staff
 
Messaggi: 4414
Iscritto il: ven giu 02, 2006 13:52
Località: Roma / Castelli
Nome Cognome: Matteo Rossini
Slackware: current
Kernel: slack-current
Desktop: ktown-latest
Distribuzione: 01000000-current

Re: [SCRIPT] slackware updates

Messaggioda Ansa89 » sab set 11, 2010 13:24

Bel lavoro, peccato che ho smesso di usare kde :? .
Avatar utente
Ansa89
Iper Master
Iper Master
 
Messaggi: 2624
Iscritto il: mer ago 29, 2007 16:57
Località: Modena
Nome Cognome: Stefano Ansaloni
Slackware: 13.1
Kernel: 3.16.6-ck2
Desktop: XFCE 4.6.1

Re: [SCRIPT] slackware updates

Messaggioda hashbang » sab set 11, 2010 13:44

Ansa89 ha scritto:Bel lavoro, peccato che ho smesso di usare kde :? .
idem :(
Adoro il pragmatismo della lingua giapponese, è l'unica in cui per dire ad una ragazza che la ami le dici "suki". (cit.)
Avatar utente
hashbang
Packager
Packager
 
Messaggi: 1840
Iscritto il: ven giu 04, 2010 9:27
Località: Lecce
Nome Cognome: Luca De Pandis
Distribuzione: Windows 8.1 Pro

Re: [SCRIPT] slackware updates

Messaggioda Ansa89 » sab set 11, 2010 13:50

Adesso che ci penso, si potrebbe adattare a conky, nel senso che lo script potrebbe fare un "echo 'nuovi pacchetti disponibili'" (oppure in caso negativo "echo 'nessun nuovo pacchetto'") e dentro ".conkyrc" si potrebbe mettere una cosa tipo:
Codice: Seleziona tutto
${execi 30 slack_updates.sh}


Nota: in questo sarebbe conky a lanciare ogni 30 secondi lo script, quindi non sarebbe necessario la funzione di auto-update integrata nello script.
Avatar utente
Ansa89
Iper Master
Iper Master
 
Messaggi: 2624
Iscritto il: mer ago 29, 2007 16:57
Località: Modena
Nome Cognome: Stefano Ansaloni
Slackware: 13.1
Kernel: 3.16.6-ck2
Desktop: XFCE 4.6.1

Re: [SCRIPT] slackware updates

Messaggioda shark1500 » sab set 11, 2010 15:37

Funziona solo per kde perche` usa le notifiche di kde, basta modificare la funzione message e avvisare nel modo che piace di piu`
Avatar utente
shark1500
Linux 2.6
Linux 2.6
 
Messaggi: 785
Iscritto il: gio apr 03, 2008 13:33
Località: Modna
Slackware: current
Kernel: 2.6.27.7-smp
Desktop: kde

Re: [SCRIPT] slackware updates

Messaggioda Ansa89 » sab set 11, 2010 15:44

shark1500 ha scritto:Funziona solo per kde perche` usa le notifiche di kde, basta modificare la funzione message e avvisare nel modo che piace di piu`

Lo so, ma non conosco l'applet giusto per xfce (senza contare che con fluxbox/icewm/ecc non c'è un tool apposta per le notifiche (che io sappia)).
Avatar utente
Ansa89
Iper Master
Iper Master
 
Messaggi: 2624
Iscritto il: mer ago 29, 2007 16:57
Località: Modena
Nome Cognome: Stefano Ansaloni
Slackware: 13.1
Kernel: 3.16.6-ck2
Desktop: XFCE 4.6.1

Re: [SCRIPT] slackware updates

Messaggioda shark1500 » sab set 11, 2010 15:50

Ansa89 ha scritto:Lo so, ma non conosco l'applet giusto per xfce (senza contare che con fluxbox/icewm/ecc non c'è un tool apposta per le notifiche (che io sappia)).


Puoi farti mandare una mail o farti suonare una canzoncina o...boh, usa la fantasia :-)
Avatar utente
shark1500
Linux 2.6
Linux 2.6
 
Messaggi: 785
Iscritto il: gio apr 03, 2008 13:33
Località: Modna
Slackware: current
Kernel: 2.6.27.7-smp
Desktop: kde

Re: [SCRIPT] slackware updates

Messaggioda Ansa89 » sab set 11, 2010 15:52

shark1500 ha scritto:boh, usa la fantasia :-)

Usare conky.
Avatar utente
Ansa89
Iper Master
Iper Master
 
Messaggi: 2624
Iscritto il: mer ago 29, 2007 16:57
Località: Modena
Nome Cognome: Stefano Ansaloni
Slackware: 13.1
Kernel: 3.16.6-ck2
Desktop: XFCE 4.6.1

Re: [SCRIPT] slackware updates

Messaggioda hashbang » sab set 11, 2010 16:06

Ansa89 ha scritto:
shark1500 ha scritto:boh, usa la fantasia :-)

Usare conky.
Offtopic: Ansa come fai ad adattarlo a conky? :-k 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)
Adoro il pragmatismo della lingua giapponese, è l'unica in cui per dire ad una ragazza che la ami le dici "suki". (cit.)
Avatar utente
hashbang
Packager
Packager
 
Messaggi: 1840
Iscritto il: ven giu 04, 2010 9:27
Località: Lecce
Nome Cognome: Luca De Pandis
Distribuzione: Windows 8.1 Pro

Re: [SCRIPT] slackware updates

Messaggioda Ansa89 » sab set 11, 2010 16:28

atomix600 ha scritto:Offtopic: Ansa come fai ad adattarlo a conky? :-k 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)

A dire il vero con conky si ridurrebbe tutto in uno script tipo questo:
Codice: Seleziona tutto
#!/bin/bash
LOG=`/usr/sbin/slackpkg check-updates`
if [ "$?" != 0 ]; then
  echo "Error checking updates...Wait until next try."
elif echo $LOG | grep "News on ChangeLog.txt" &> /dev/null ; then
  echo "New updates for slackware!"
else
  echo "No new updates."
fi

Il quale andrebbe inserito nella configurazione di conky:
Codice: Seleziona tutto
${execi *INTERVALLO_IN_SECONDI* check_updates.sh}

Alla fine in conky verrà visualizzato l'output dello script.
Ultima modifica di Ansa89 il sab set 11, 2010 19:33, modificato 1 volta in totale.
Avatar utente
Ansa89
Iper Master
Iper Master
 
Messaggi: 2624
Iscritto il: mer ago 29, 2007 16:57
Località: Modena
Nome Cognome: Stefano Ansaloni
Slackware: 13.1
Kernel: 3.16.6-ck2
Desktop: XFCE 4.6.1

Re: [SCRIPT] slackware updates

Messaggioda ZeroUno » sab set 11, 2010 17:06

A dire il vero con conky si ridurrebbe tutto in uno script tipo questo:


non conosco conky (ma lo intuisco) ma
okkio, e questo è quello di cui si occupa il mio script, che in questo modo tu controlli gli aggiornamenti diciamo ogni minuto e ti avverte prontamente che ci sono, ma dopo un minuto ti ri-avverte, a meno che tu non lanci l'aggiornamento, e la cosa è alquanto scomoda se non ha tempo o stai lavorando ecc..., per non parlare che se ti assenti dal pc trovi un mare di notifiche.
Il mio script effettua questo controllo e non ti riavverte dopo un minuto ma dopo un'ora.

chi non usa kde ma non lo ha disinstallato:
1) prova a usare comunque lo script (non sono sicuro che non funziona)
2) oppure sostituisce
Codice: Seleziona tutto
    kdialog --passivepopup "$*" 5

con
Codice: Seleziona tutto
    kdialog --msgbox "$*"

oppure
Codice: Seleziona tutto
    kdialog --msgbox "$*" & sleep 5; kill $!

(dovrebbe funzionare senza kde running)

chi l'ha disinstallato può
1) installa xdialog e sostituisce la riga di cui sopra con:
Codice: Seleziona tutto
    Xdialog --infobox "$*" 0 0 5000

2) oppure la sostituisce con
Codice: Seleziona tutto
    xterm -geometry 30x8+400+200 -e "sleep 5|dialog --infobox \"$*\" 0 0 "


e chi più ne ha più ne metta
Packages finder: slakfinder.org | Slackpkg+, per aggiungere repository a slackpkg
Codice: Seleziona tutto
1011010 1100101 1110010 1101111 - 0100000 - 1010101 1101110 1101111
Avatar utente
ZeroUno
Staff
Staff
 
Messaggi: 4414
Iscritto il: ven giu 02, 2006 13:52
Località: Roma / Castelli
Nome Cognome: Matteo Rossini
Slackware: current
Kernel: slack-current
Desktop: ktown-latest
Distribuzione: 01000000-current

Re: [SCRIPT] slackware updates

Messaggioda Ansa89 » sab set 11, 2010 17:13

ZeroUno ha scritto:chi l'ha disinstallato può
1) installa xdialog e sostituisce la riga di cui sopra con:
Codice: Seleziona tutto
    Xdialog --infobox "$*" 0 0 5000

2) oppure la sostituisce con
Codice: Seleziona tutto
    xterm -geometry 30x8+400+200 -e "sleep 5|dialog --infobox \"$*\" 0 0 "

Queste due opzioni sono interessanti e risolvono il mio problema.

Comunque con conky ti resta semplicemente scritto "New updates....bla bla..." e resta scritto così finché non fai l'aggiornamento, quindi non ci sono notifiche che si accumulano inutilmente ;) .
Avatar utente
Ansa89
Iper Master
Iper Master
 
Messaggi: 2624
Iscritto il: mer ago 29, 2007 16:57
Località: Modena
Nome Cognome: Stefano Ansaloni
Slackware: 13.1
Kernel: 3.16.6-ck2
Desktop: XFCE 4.6.1

Re: [SCRIPT] slackware updates

Messaggioda hashbang » sab set 11, 2010 18:08

Ansa89 ha scritto:
ZeroUno ha scritto:chi l'ha disinstallato può
1) installa xdialog e sostituisce la riga di cui sopra con:
Codice: Seleziona tutto
    Xdialog --infobox "$*" 0 0 5000

2) oppure la sostituisce con
Codice: Seleziona tutto
    xterm -geometry 30x8+400+200 -e "sleep 5|dialog --infobox \"$*\" 0 0 "

Queste due opzioni sono interessanti e risolvono il mio problema.

Comunque con conky ti resta semplicemente scritto "New updates....bla bla..." e resta scritto così finché non fai l'aggiornamento, quindi non ci sono notifiche che si accumulano inutilmente ;) .
Ansa89, lo script da user normale nn parte perchè non riconosce il comando "slackpkg"...ho modificato la riga in "/usr/sbin/slackpkg ed ora il comando va perfettamente" ;) e comunque se non si è root dice sempre che non ci sono aggiornamenti. L'ho testato anche lanciando semplicemente /usr/sbin/slackpkg update e giustamente chiede di essere root
Ultima modifica di hashbang il sab set 11, 2010 18:11, modificato 1 volta in totale.
Adoro il pragmatismo della lingua giapponese, è l'unica in cui per dire ad una ragazza che la ami le dici "suki". (cit.)
Avatar utente
hashbang
Packager
Packager
 
Messaggi: 1840
Iscritto il: ven giu 04, 2010 9:27
Località: Lecce
Nome Cognome: Luca De Pandis
Distribuzione: Windows 8.1 Pro

Re: [SCRIPT] slackware updates

Messaggioda Ansa89 » sab set 11, 2010 18:10

atomix600 ha scritto:Ansa89, lo script da user normale nn parte perchè non riconosce il comando "slackpkg"...ho modificato la riga in "/usr/sbin/slackpkg ed ora il comando va perfettamente" ;)

Sì, non sono stato a controllare tutto nei minimi dettagli, l'ho fatto in due minuti "un tanto al braccio".

Se pensate che sia utile, posso metterlo anche sul wiki :roll: (e lo stesso potrebbe fare ZeroUno con il suo demone).
Avatar utente
Ansa89
Iper Master
Iper Master
 
Messaggi: 2624
Iscritto il: mer ago 29, 2007 16:57
Località: Modena
Nome Cognome: Stefano Ansaloni
Slackware: 13.1
Kernel: 3.16.6-ck2
Desktop: XFCE 4.6.1

Re: [SCRIPT] slackware updates

Messaggioda hashbang » sab set 11, 2010 18:14

sono d'accordo sul wiki ma prima conviene tentare un workaround al fatto che se non si è root lo script da sempre "No new updates"
Adoro il pragmatismo della lingua giapponese, è l'unica in cui per dire ad una ragazza che la ami le dici "suki". (cit.)
Avatar utente
hashbang
Packager
Packager
 
Messaggi: 1840
Iscritto il: ven giu 04, 2010 9:27
Località: Lecce
Nome Cognome: Luca De Pandis
Distribuzione: Windows 8.1 Pro

Prossimo

Torna a Slackware

Chi c’è in linea

Visitano il forum: Nessuno e 2 ospiti

cron