UFFICIALE L'OT di Linux e altri OS

Pubblicità
bèh dai per la casa con un impianto di 6-9kw e un paio di powerwall2 ti stacchi dall'enel..:asd: sulle rectenne si sa niente?
discorso diverso, io parlavo di quelli che trovi nei powerbank o in quei pannelli che si arrotolano, pensati per i campeggiatori :)

intendi in larga scala? se sì, non saprei proprio. se invece parli della tecnologia in sé, possiamo parlarne :)
 
discorso diverso, io parlavo di quelli che trovi nei powerbank o in quei pannelli che si arrotolano, pensati per i campeggiatori :)

intendi in larga scala? se sì, non saprei proprio. se invece parli della tecnologia in sé, possiamo parlarne :)
larga scala, li sto aspettando per valutarli.
 
@e_ale92 finito e provato, funge bene.
Codice:
#!/bin/bash
#aur_update.sh v.2.0
#script di aggiornamento pacchetti installati da AUR, by rebellion
#preferibilmente da lanciare tramite terminale per visualizzare messaggi di dialogo con lo script
controllo_dipendenze () {
 dipendenze=$(pacman -Qi $package_name | grep "Dipenda da") ; dipendenze=${dipendenze:28} ; dipendenze=${dipendenze//  / }
 numero_dipendenze=$(($(grep -o " " <<<"$dipendenze" | wc -l)+1))
 for ((i=1;i<=$numero_dipendenze;i++)) ; do dip=$(echo $dipendenze | awk -v x=$i '{print$x}') ; dip=${dip%%>*} ; dip=${dip%%<*} ; dip=${dip%%=*} ; if pacman -Q | grep -w "$dip" 1>/dev/null ; then echo $dip"-----> installata" ; else echo $dip"-----> non installata" ; fi ; done
 echo ; read -s -p "premi invio per continuare..."
}
if wget -q --tries=10 --timeout=20 --spider http://google.com ; then
package_path="1"
while [ "$package_path" != "" ] ; do
 dir=$(find /home/$USER -type d -name 'AUR')
 package_path=$(zenity --file-selection --file-filter="*.tar.gz" --filename=$dir/ --title="Seleziona pacchetto.tar.gz AUR da aggiornare" 2>/dev/null)
 if [ "$package_path" != "" ] ; then
  package_name_tar=${package_path##*/}
  lungh_package_name_tar=$((${#package_name_tar}+1))
  package_dir=${package_path:0: -$lungh_package_name_tar}
  package_name=${package_name_tar:0: -7}
  package_dir_del=$(find /home/$USER -type d -name "$package_name") ; package_dir_del=$(echo $package_dir_del | awk '{print$1}')
  package_path_old=$package_path".old"
  package_dir_del_old=$package_dir_del"_old"
  check_package=$(pacman -Q | grep $package_name)
  if [ "$check_package" = "" ] ; then
   dialog --title "pacchetto $package_name" --backtitle "Aggiornamento AUR" --msgbox "Aggiornamento fallito: pacchetto NON installato!" 7 60 ; clear
  else
   echo "Verifica versione..."
   versione_new=$(curl -s "https://aur.archlinux.org/rpc.php?v=5&type=info&arg=$package_name" | grep "Version") ; versione_new=${versione_new//,/ } ; versione_new=$(echo $versione_new | awk '{print$8}') ; versione_new=${versione_new##*:} ; versione_new=${versione_new:1} ; versione_new=${versione_new:0: -1}
   versione_old=$(pacman -Qi $package_name | grep "Versione" | awk '{print$3}')
   if [ "$versione_new" != "$versione_old" ] ; then
    echo -e "Versione installata: $versione_old\nVersione da installare: $versione_new"
    echo ; echo -n "premi invio per continuare..." && read -s
    echo -e "\rControllo dipendenze del pacchetto $package_name:\n"
    controllo_dipendenze
    if dialog --title "pacchetto $package_name" --backtitle "Aggiornamento AUR" --yesno "Verranno installate eventuali dipendenze mancanti se non presenti in AUR, altrimenti installale manualmente. Confermi l'aggiornamento?" 7 60 ; then clear
     echo -n "Controllo connessione internet..."
     if wget -q --tries=10 --timeout=20 --spider http://google.com ; then
      echo "Connessione ok"
      [[ -d "$package_dir_del" ]] && mv $package_dir_del $package_dir_del_old
      mv $package_path $package_path_old
      echo -e "Aggiornamento "$package_name" in corso, non spengere il pc o la connessione.\nbackup "$package_dir_del"---> fatto\nbackup "$package_name_tar"---> fatto"
      if wget -P $package_dir https://aur.archlinux.org/cgit/aur.git/snapshot/$package_name_tar ; then
       tar -xvzf $package_path -C $package_dir
       cd $package_dir_del
       if makepkg -s ; then
        echo "Disinstallazione $package_name" ; sudo pacman -R $package_name
        echo "Installazione $package_name scaricato" ; sudo pacman -U *.pkg.tar.xz
        rm $package_path_old
        echo "Rimozione cartella $package_dir_del_old di backup..."
        [[ -d "$package_dir_del_old" ]] && sudo rm -r $package_dir_del_old
        dialog --title "pacchetto $package_name" --backtitle "Aggiornamento AUR" --msgbox "Aggiornamento eseguito!" 7 60 ; clear
       else
        echo "Rimozione cartella $package_dir_del (cartella scompattata $package_name_tar scaricato)..."
        sudo rm -r $package_dir_del
        [[ -d "$package_dir_del_old" ]] && mv $package_dir_del_old $package_dir_del
        rm $package_path && mv $package_path_old $package_path
        dialog --title "pacchetto $package_name" --backtitle "Aggiornamento AUR" --msgbox "Aggiornamento fallito. Ripristinato il backup del pacchetto." 7 60 ; clear
       fi
      else
       [[ -d "$package_dir_del_old" ]] && mv $package_dir_del_old $package_dir_del
       mv $package_path_old $package_path
       dialog --title "pacchetto $package_name" --backtitle "Aggiornamento AUR" --msgbox "Aggiornamento fallito, sembra che AUR non contenga il pacchetto da aggiornare. Ripristinato il backup del pacchetto." 7 60 ; clear
      fi
     else
      echo "Connessione assente. Ripristino ultima versione di $package_name..." ; sleep 2 ;
      [[ -d "$package_dir_del_old" ]] && mv $package_dir_del_old $package_dir_del
      mv $package_path_old $package_path
      dialog --title "Controllo connessione internet" --backtitle "Aggiornamento AUR" --msgbox "Connessione assente, aggiornamento fallito. $package_name ripristinato all'ultima versione." 7 60 ; clear
     fi
    else
     clear
    fi
   else
    echo -e "$package_name è già alla versione più recente!\npremi invio per continuare..." ; read ; clear
   fi
  fi
 fi
done
else dialog --title "Controllo connessione internet" --backtitle "Aggiornamento AUR" --msgbox "Sembra che manchi la connessione, impossibile proseguire." 7 60
fi
exit 0
stavo pensando di far funzionare lo script in modo che cercasse in modo automatico i pacchetti AUR da aggiornare (magari con la duplice funzione: avvio programmato e avvio manuale con icona in appindicator) ma i problemi sono 2:
1. l'unico comando che lista i pacchetti 'foreign' installati è 'pacman -Qqm' però non mi restituisce univocamente i pacchetti installati da AUR
2. a volte capita che un pacchetto tar.gz scaricato da AUR abbia un numero di versione che poi non corrisponda al numero di versione che effettivamente installa e quindi tutte le volte scarica e reinstalla la stessa versione vecchia (es. il pacchetto 'grub2-theme-vimix-git'; prova a scaricarlo e scompattarlo e confronta il numero di versione presente in PKGBUILD con il numero di versione presente nel nome della cartella dell'archivio .any.pkg.tar.gz che è poi la versione che installa).
 
Ultima modifica:
@e_ale92 finito e provato, funge bene.
Codice:
#!/bin/bash
#aur_update.sh v.2.0
#script di aggiornamento pacchetti installati da AUR, by rebellion
#preferibilmente da lanciare tramite terminale per visualizzare messaggi di dialogo con lo script
controllo_dipendenze () {
 dipendenze=$(pacman -Qi $package_name | grep "Dipenda da") ; dipendenze=${dipendenze:28} ; dipendenze=${dipendenze//  / }
 numero_dipendenze=$(($(grep -o " " <<<"$dipendenze" | wc -l)+1))
 for ((i=1;i<=$numero_dipendenze;i++)) ; do dip=$(echo $dipendenze | awk -v x=$i '{print$x}') ; dip=${dip%%>*} ; dip=${dip%%<*} ; dip=${dip%%=*} ; if pacman -Q | grep -w "$dip" 1>/dev/null ; then echo $dip"-----> installata" ; else echo $dip"-----> non installata" ; fi ; done
 echo ; read -s -p "premi invio per continuare..."
}
if wget -q --tries=10 --timeout=20 --spider http://google.com ; then
package_path="1"
while [ "$package_path" != "" ] ; do
 dir=$(find /home/$USER -type d -name 'AUR')
 package_path=$(zenity --file-selection --file-filter="*.tar.gz" --filename=$dir/ --title="Seleziona pacchetto.tar.gz AUR da aggiornare" 2>/dev/null)
 if [ "$package_path" != "" ] ; then
  package_name_tar=${package_path##*/}
  lungh_package_name_tar=$((${#package_name_tar}+1))
  package_dir=${package_path:0: -$lungh_package_name_tar}
  package_name=${package_name_tar:0: -7}
  package_dir_del=$(find /home/$USER -type d -name "$package_name") ; package_dir_del=$(echo $package_dir_del | awk '{print$1}')
  package_path_old=$package_path".old"
  package_dir_del_old=$package_dir_del"_old"
  check_package=$(pacman -Q | grep $package_name)
  if [ "$check_package" = "" ] ; then
   dialog --title "pacchetto $package_name" --backtitle "Aggiornamento AUR" --msgbox "Aggiornamento fallito: pacchetto NON installato!" 7 60 ; clear
  else
   echo "Verifica versione..."
   versione_new=$(curl -s "https://aur.archlinux.org/rpc.php?v=5&type=info&arg=$package_name" | grep "Version") ; versione_new=${versione_new//,/ } ; versione_new=$(echo $versione_new | awk '{print$8}') ; versione_new=${versione_new##*:} ; versione_new=${versione_new:1} ; versione_new=${versione_new:0: -1}
   versione_old=$(pacman -Qi $package_name | grep "Versione" | awk '{print$3}')
   if [ "$versione_new" != "$versione_old" ] ; then
    echo -e "Versione installata: $versione_old\nVersione da installare: $versione_new"
    echo ; echo -n "premi invio per continuare..." && read -s
    echo -e "\rControllo dipendenze del pacchetto $package_name:\n"
    controllo_dipendenze
    if dialog --title "pacchetto $package_name" --backtitle "Aggiornamento AUR" --yesno "Verranno installate eventuali dipendenze mancanti se non presenti in AUR, altrimenti installale manualmente. Confermi l'aggiornamento?" 7 60 ; then clear
     echo -n "Controllo connessione internet..."
     if wget -q --tries=10 --timeout=20 --spider http://google.com ; then
      echo "Connessione ok"
      [[ -d "$package_dir_del" ]] && mv $package_dir_del $package_dir_del_old
      mv $package_path $package_path_old
      echo -e "Aggiornamento "$package_name" in corso, non spengere il pc o la connessione.\nbackup "$package_dir_del"---> fatto\nbackup "$package_name_tar"---> fatto"
      if wget -P $package_dir https://aur.archlinux.org/cgit/aur.git/snapshot/$package_name_tar ; then
       tar -xvzf $package_path -C $package_dir
       cd $package_dir_del
       if makepkg -s ; then
        echo "Disinstallazione $package_name" ; sudo pacman -R $package_name
        echo "Installazione $package_name scaricato" ; sudo pacman -U *.pkg.tar.xz
        rm $package_path_old
        echo "Rimozione cartella $package_dir_del_old di backup..."
        [[ -d "$package_dir_del_old" ]] && sudo rm -r $package_dir_del_old
        dialog --title "pacchetto $package_name" --backtitle "Aggiornamento AUR" --msgbox "Aggiornamento eseguito!" 7 60 ; clear
       else
        echo "Rimozione cartella $package_dir_del (cartella scompattata $package_name_tar scaricato)..."
        sudo rm -r $package_dir_del
        [[ -d "$package_dir_del_old" ]] && mv $package_dir_del_old $package_dir_del
        rm $package_path && mv $package_path_old $package_path
        dialog --title "pacchetto $package_name" --backtitle "Aggiornamento AUR" --msgbox "Aggiornamento fallito. Ripristinato il backup del pacchetto." 7 60 ; clear
       fi
      else
       [[ -d "$package_dir_del_old" ]] && mv $package_dir_del_old $package_dir_del
       mv $package_path_old $package_path
       dialog --title "pacchetto $package_name" --backtitle "Aggiornamento AUR" --msgbox "Aggiornamento fallito, sembra che AUR non contenga il pacchetto da aggiornare. Ripristinato il backup del pacchetto." 7 60 ; clear
      fi
     else
      echo "Connessione assente. Ripristino ultima versione di $package_name..." ; sleep 2 ;
      [[ -d "$package_dir_del_old" ]] && mv $package_dir_del_old $package_dir_del
      mv $package_path_old $package_path
      dialog --title "Controllo connessione internet" --backtitle "Aggiornamento AUR" --msgbox "Connessione assente, aggiornamento fallito. $package_name ripristinato all'ultima versione." 7 60 ; clear
     fi
    else
     clear
    fi
   else
    echo -e "$package_name è già alla versione più recente!\npremi invio per continuare..." ; read ; clear
   fi
  fi
 fi
done
else dialog --title "Controllo connessione internet" --backtitle "Aggiornamento AUR" --msgbox "Sembra che manchi la connessione, impossibile proseguire." 7 60
fi
exit 0
stavo pensando di far funzionare lo script in modo che cercasse in modo automatico i pacchetti AUR da aggiornare (magari con la duplice funzione: avvio programmato e avvio manuale con icona in appindicator) ma i problemi sono 2:
1. l'unico comando che lista i pacchetti 'foreign' installati è 'pacman -Qqm' però non mi restituisce univocamente i pacchetti installati da AUR
2. a volte capita che un pacchetto tar.gz scaricato da AUR abbia un numero di versione che poi non corrisponda al numero di versione che effettivamente installa e quindi tutte le volte scarica e reinstalla la stessa versione vecchia (es. il pacchetto 'grub2-theme-vimix-git'; prova a scaricarlo e scompattarlo e confronta il numero di versione presente in PKGBUILD con il numero di versione presente nel nome della cartella dell'archivio .any.pkg.tar.gz che è poi la versione che installa).

l'indetazione è oscena :lol:

cmq ottimo lavoro! però mi spieghi bene come funziona? l'ho eseguito e mi dice permesso negato ad alcune cartelle di ~/.cache/pacman (con sudo invece dice che non trova /home/root e arresta), proseguo ma poi si ferma dicendo che non ha trovato il pkgbuild (o qualcosa del genere)... forse sbaglio io qualcosa.

per quanto riguarda la ricerca non sarebbe male, però a quel punto sei sempre più vicino ad una bozza di wrapper... e forse continuare lo sviluppo di pacaur sarebbe meno dispendioso (es.)

per la ricerca da aur, invece, prova con pacman -Qm... dovrebbe listare solo i pacchetti aur. pacman -Qm | wc -l invece ti conta quanti pacchetti aur hai installati.

2. colpa del .ini che molti non aggiornano. non saprei come risolvere
 
l'indetazione è oscena :lol:
sono d'accordo ma premere troppe volte la barra spaziatrice è un inutile spreco di energie..:D

però mi spieghi bene come funziona? l'ho eseguito e mi dice permesso negato ad alcune cartelle di ~/.cache/pacman (con sudo invece dice che non trova /home/root e arresta), proseguo ma poi si ferma dicendo che non ha trovato il pkgbuild (o qualcosa del genere)... forse sbaglio io qualcosa.
quando installi da aur probabilmente adotti un sistema diverso dal mio (scarico il tar.gz nella cartella AUR -nella home/$USER- dove scompatto l'archivio, entro poi nella cartella scompattata e makepkg e pacman -U; quindi lo script lavora in cartelle senza problemi di permessi).

per quanto riguarda la ricerca non sarebbe male, però a quel punto sei sempre più vicino ad una bozza di wrapper... e forse continuare lo sviluppo di pacaur sarebbe meno dispendioso (es.)
ormai è questione di orgoglio.

per la ricerca da aur, invece, prova con pacman -Qm... dovrebbe listare solo i pacchetti aur. pacman -Qm | wc -l invece ti conta quanti pacchetti aur hai installati.
ho dei pacchetti che sono stati tolti dal repository community quindi vengono listati in -Qm (o -Qqm) ma che non ho installato tramite AUR, dove ci sono con nomi diversi.

2. colpa del .ini che molti non aggiornano. non saprei come risolvere
non credo ci sia soluzione, dovrebbe intervenire il maintainer?:nono:
 
sono d'accordo ma premere troppe volte la barra spaziatrice è un inutile spreco di energie..:D

quando installi da aur probabilmente adotti un sistema diverso dal mio (scarico il tar.gz nella cartella AUR -nella home/$USER- dove scompatto l'archivio, entro poi nella cartella scompattata e makepkg e pacman -U; quindi lo script lavora in cartelle senza problemi di permessi).

ormai è questione di orgoglio.

ho dei pacchetti che sono stati tolti dal repository community quindi vengono listati in -Qm (o -Qqm) ma che non ho installato tramite AUR, dove ci sono con nomi diversi.

non credo ci sia soluzione, dovrebbe intervenire il maintainer?:nono:

anche io seguo quella procedura...
il tuo script l'ho avviato e gli ho dato in pasto la tarball/snapshot scaricata da AUR.

aahhh... vabbè è un non-problema, secondo me dato che installando ex novo non avresti nomenclatura stramba.

yes, non puoi farlo tu, a meno che non scarichi lo snapshot ed editi il file tu in locale.
 
anche io seguo quella procedura...
il tuo script l'ho avviato e gli ho dato in pasto la tarball/snapshot scaricata da AUR.
strano allora.

aahhh... vabbè è un non-problema, secondo me dato che installando ex novo non avresti nomenclatura stramba.
vero, avrei preferito farlo in automatico.

yes, non puoi farlo tu, a meno che non scarichi lo snapshot ed editi il file tu in locale.
già, non ci avevo proprio pensato! vado a editare..:brindiamo:
 
Su mr robot fanno vedere una slackware :muro: con xfce.. Nuovi thread su slackware in 3, 2, 1.. :asd:

PS. Bisognerebbe scrivere agli autori di far vedere solo ubuntu e evitare il resto :asd:
 
Su mr robot fanno vedere una slackware :muro: con xfce.. Nuovi thread su slackware in 3, 2, 1.. :asd:

PS. Bisognerebbe scrivere agli autori di far vedere solo ubuntu e evitare il resto :asd:
arrivi tardi, mio caro... l'avevo segnalato qualche post fa

tra mint e slackware non so cosa ci farà ridere di più ahuahuahuahuah
 
manco poco ruzzolavo giù dalle scale, era troppo bello un funssiona! il problema è che ogni volta che controllo la versione su aur mi restituisce sempre il valore sbagliato: deve farlo er mainteineer, sto mariuolo gabbamondo.

eh sì certo. se cerchi su AUR è normale ti trovi la versione vecchia che deve aggiornare il maintainer.
la modifica in locale ti serve solo se vuoi fare un update sulla tua installazione, ma aggiornare anche il build number.

Davvero?? allora o me lo sono perso o è colpa della vecchiaia.. :brindiamo:
Sulle slack ci sarà da divertirsi.. :asd:

PS. La serie comunque è spettacolare..
tantissimo!!!
poi dai, ci voleva un po' di roba tosta

molto! la seconda mi aveva deluso tantissimo, ma ora capisco tutto. ancora non ho finito la terza, ma è fantastica *_*
 
Non vorrei dire ma... guardando le dipendenze di pacaur e pacaur-git, prima diventi inutilizzabile ne passerà del tempo.
A ''me mi'' piaceva Slack. :rolleyes: Se Arch per un qualche motivo dovesse essere abbandonata, tornerei a Slack.
...'sto Firefox ''quantum non me piace''. :doh:
 
Pubblicità
Pubblicità
Indietro
Top