UFFICIALE L'OT di Linux e altri OS

Pubblicità
@e_ale92 ecco qua la versione definitiva con un paio di modifiche, ma ho preferito non mettere l'installazione di eventuali dipendenze aur, primo perchè preferisco sempre installare a mano così evito sorprese, secondo perchè è complesso pensa a skype che si porta dietro una serie di 'scatole cinesi' di dipendenze aur..appena ho tempo penso a risolvere anche questa opzione.
Codice:
#!/bin/bash
#aur_update.sh v.1.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 () {
 echo -e "\nControllo dipendenze..."
 dipendenze=$(pacman -Qi $package_name | grep "Dipenda da") ; dipendenze=${dipendenze:28} ; dipendenze=${dipendenze//  / }
 numero_dipendenze=$(($(grep -o " " <<<"$dipendenze" | wc -l)+1))
 echo "Dipendenze $package_name:" ; 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
 read -s -p "premi invio per continuare..." && echo
}
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
   dialog --title "pacchetto $package_name" --backtitle "Aggiornamento AUR" --yesno "Verranno installate eventuali dipendenze mancanti. Confermi l'aggiornamento?" 7 60 ; clear
   if [ $? -eq 0 ] ; then
    echo "Controllo connessione internet..."
    wget -q --tries=10 --timeout=20 --spider http://google.com
    if [[ $? -eq 0 ]] ; 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
      controllo_dipendenze
      if makepkg -s ; then
       echo "Disinstallazione $package_name" ; sudo pacman -R $package_name
       echo "Installazione $package_name scaricato" ; sudo pacman -U $package_dir_del/*.pkg.tar.xz
       rm $package_path_old
       [[ -d "$package_dir_del_old" ]] && rm -r $package_dir_del_old
       dialog --title "pacchetto $package_name" --backtitle "Aggiornamento AUR" --msgbox "Aggiornamento eseguito!" 7 60 ; clear
      else
       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
     [[ -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
  fi
 fi
done
exit 0
 
Ultima modifica:
@e_ale92 ecco qua la versione definitiva con un paio di modifiche, ma ho preferito non mettere l'installazione di eventuali dipendenze aur, primo perchè preferisco sempre installare a mano così evito sorprese, secondo perchè è complesso pensa a skype che si porta dietro una serie di 'scatole cinesi' di dipendenze aur..appena ho tempo penso a risolvere anche questa opzione.
Codice:
#!/bin/bash
#aur_update.sh v.1.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 () {
 echo -e "\nControllo dipendenze..."
 dipendenze=$(pacman -Qi $package_name | grep "Dipenda da") ; dipendenze=${dipendenze:28} ; dipendenze=${dipendenze//  / }
 numero_dipendenze=$(grep -o " " <<<"$dipendenze" | wc -l)
 echo "Dipendenze $package_name:" ; for ((i=0;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
 read -s -p "premi invio per continuare..." && echo
}
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
   dialog --title "pacchetto $package_name" --backtitle "Aggiornamento AUR" --yesno "Verranno installate eventuali dipendenze mancanti. Confermi l'aggiornamento?" 7 60 ; clear
   if [ $? -eq 0 ] ; then
    echo "Controllo connessione internet..."
    wget -q --tries=10 --timeout=20 --spider http://google.com
    if [[ $? -eq 0 ]] ; 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
      controllo_dipendenze
      if makepkg -s ; then
       echo "Disinstallazione $package_name" ; sudo pacman -R $package_name
       echo "Installazione $package_name scaricato" ; sudo pacman -U $package_dir_del/*.pkg.tar.xz
       rm $package_path_old
       [[ -d "$package_dir_del_old" ]] && rm -r $package_dir_del_old
       dialog --title "pacchetto $package_name" --backtitle "Aggiornamento AUR" --msgbox "Aggiornamento eseguito!" 7 60 ; clear
      else
       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
     [[ -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
  fi
 fi
done
exit 0
nono le dipendenze AUR meglio si no... lungi da noi avere scatole cinesi e matrioske xD


well done, rebellion :) appena posso lo guardo e lo testo
 
@e_ale92 non vi rilassate son sopravvissuto..:asd:
allora questo è lo script per verificare se il pacchetto da aggiornare è già aggiornato, appena ho tempo lo implemento nello script di aggiornamento:
Codice:
#!/bin/bash
#script di verifica aggiornamento pacchetti aur, by rebellion
loop=""
while [ "$loop" = "" ] ; do
 clear && read -p "Inserisci il pacchetto da aggiornare (q=exit): " package_name
 echo -n "Controllo $package_name..."
 if [ "$package_name" != "q" ] ; then
  if pacman -Qi "$package_name" 1>/dev/null 2>/dev/null; then
   echo " installato." ; echo
   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"
    dipendenze=$(pacman -Qi $package_name | grep "Dipenda da") ; dipendenze=${dipendenze:28} ; dipendenze=${dipendenze//  / }
    numero_dipendenze=$(($(grep -o " " <<<"$dipendenze" | wc -l)+1))
    echo "Dipendenze $package_name:" ; 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
    read -s -p "premi invio per continuare..." && echo
   else
    echo -e "$package_name è già alla versione più recente!\npremi invio per continuare..." ; read
   fi
  else
   echo " non installato." ; echo "premi invio per continuare..." ; read
  fi
 else
  loop="exit"
 fi
done
exit 0
 
Ultima modifica:
Ma secondo voi un powebank da 20.000 mAh che non riesce a caricare neanche a metà un red mi note 4 da 4100 mAh che diavolo di poewrminchia è ? :popo:
 
Io ne utilizzo uno che dovrebbe essere da 12000mah ed arrivo ad 1/3 di una batteria da 3000mah :grrr:
Ah siamo messi bene allora.... io l'ho preso su amazonia ed aveva un buon prezzo ma non era quello il motivo principale, erano le dimensioni ridotte che lo rendevano compatto, e quindi ci stava molto bene nel marsupio. Mi piaceva l'idea di guardare un film intero in santa pace con Kodi sul mio nuovo tablet senza dover mettere continuamente lo spinotto di ricarica nella presa elettrica, ma mi sa che ho fallito nell'impresa. Ma ne esiste uno affidabile? A sto punto non mi interessa più ne prezzo ne dimensioni.
 
Pubblicità
Pubblicità
Indietro
Top