UFFICIALE L'OT di Linux e altri OS

Pubblicità
@e_ale92 tu hai problemi di configurazione di tmux? Sto provando a far funzionare la copia da e su clipboard di sistema ma ottengo problemi di configurazione

EDIT: risolto, ho installato da sorgente l'ultima versione stabile (2.6), sui repo ubuntu c'è una versione vecchia come il cucco
 
Ultima modifica:
@e_ale92 tu hai problemi di configurazione di tmux? Sto provando a far funzionare la copia da e su clipboard di sistema ma ottengo problemi di configurazione

EDIT: risolto, ho installato da sorgente l'ultima versione stabile (2.6), sui repo ubuntu c'è una versione vecchia come il cucco
io non uso la clipboard, a dire il vero. stavo per dirti, però, di controllare la versione di tmux :)

p. s. come funzione la clipboard? io non copio mai perché command B parentesi di qua e parentesi di la è folle... divento scemo, mi dimentico i comandi e mi passa la voglia ahuahuahuah
 
@e_ale92 tmux similmente a vim ha un buffer interno in cui puoi tenere più di un testo copiato.

Io ho impostato in modo da usare sempre la clipboard di sistema per poter fare copia/incolla facilmente da e verso le applicazioni di sistema.

Inoltre ho cambiato il comando per entrare in modalità copia (la quadra di cui giustamente ti lamenti), il prefix (Ctrl-a anziché Ctrl-b, più comodo) e il comando per iniziare e finire la selezione (adesso è impostato similmente a vim; "v" per iniziare la copia, "y" per yank, "p" per paste)

Se vuoi la config:
Codice:
# some taken from https://gist.github.com/spicycode/1229612
# fish is the default shell
set-option -g default-shell "/usr/bin/fish"
# control-a is faster as a prefix
set-option -g prefix C-a
unbind C-b
bind C-a send-prefix
# use 256 colors
set -g default-terminal "xterm-256color"
# empty text in prompt when renaming window
# https://unix.stackexchange.com/questions/269537/how-do-i-make-the-tmux-rename-window-prompt-empty-by-default
bind-key          , command-prompt "rename-window '%%'"
# 0 is too far from ` ;)
set -g base-index 1
# cambia colori nella barra quando è cambiato qualcosa in un terminale
setw -g monitor-activity on
# Automatically set window title
set-window-option -g automatic-rename on
set-option -g set-titles on
# No delay for escape key press
set -sg escape-time 0
# Reload tmux config
bind-key r source-file ~/.tmux.conf; display-message "tmux.conf reloaded."
# attiva il mouse (permette scroll e binding di eventi ad esso legati)
set-option -g mouse on
# spiegato qua https://unix.stackexchange.com/questions/348913/copy-selection-to-a-clipboard-in-tmux
set-option -s set-clipboard off
# copia il testo selezionato trascinando il mouse nella clipboard di sistema
# esce dalla modalità copia
bind-key -T copy-mode-vi MouseDragEnd1Pane send-keys -X copy-pipe-and-cancel "xclip -se c -i"
# alternantivamente scegliere questo comando per non uscire dalla modalità copia
# bind-key -T copy-mode-vi MouseDragEnd1Pane send -X copy-pipe "xclip -se c -i" \; send -X clear-selection
bind -T copy-mode-vi p send -X copy-pipe-and-cancel 'xsel -ip'
bind -T copy-mode-vi s send -X copy-pipe-and-cancel 'xsel -is'
bind -T copy-mode-vi o send -X copy-pipe-and-cancel 'xsel -ib'
bind -T copy-mode-vi v send -X begin-selection
# anziché `Ctrl-a [` per entrare in modalità copia, usa `Ctrl-a Esc`
unbind [
bind Escape copy-mode
# una volta entrati in modalità copia, premere V per selezionare la riga intera (come su vim)
bind -T copy-mode-vi V send-keys "0v\$"
# premi r in modalità copia per passare a selezione rettangolare
bind -T copy-mode-vi r send -X rectangle-toggle
 
@e_ale92 tmux similmente a vim ha un buffer interno in cui puoi tenere più di un testo copiato.

Io ho impostato in modo da usare sempre la clipboard di sistema per poter fare copia/incolla facilmente da e verso le applicazioni di sistema.

Inoltre ho cambiato il comando per entrare in modalità copia (la quadra di cui giustamente ti lamenti), il prefix (Ctrl-a anziché Ctrl-b, più comodo) e il comando per iniziare e finire la selezione (adesso è impostato similmente a vim; "v" per iniziare la copia, "y" per yank, "p" per paste)

Se vuoi la config:
Codice:
# some taken from https://gist.github.com/spicycode/1229612
# fish is the default shell
set-option -g default-shell "/usr/bin/fish"
# control-a is faster as a prefix
set-option -g prefix C-a
unbind C-b
bind C-a send-prefix
# use 256 colors
set -g default-terminal "xterm-256color"
# empty text in prompt when renaming window
# https://unix.stackexchange.com/questions/269537/how-do-i-make-the-tmux-rename-window-prompt-empty-by-default
bind-key          , command-prompt "rename-window '%%'"
# 0 is too far from ` ;)
set -g base-index 1
# cambia colori nella barra quando è cambiato qualcosa in un terminale
setw -g monitor-activity on
# Automatically set window title
set-window-option -g automatic-rename on
set-option -g set-titles on
# No delay for escape key press
set -sg escape-time 0
# Reload tmux config
bind-key r source-file ~/.tmux.conf; display-message "tmux.conf reloaded."
# attiva il mouse (permette scroll e binding di eventi ad esso legati)
set-option -g mouse on
# spiegato qua https://unix.stackexchange.com/questions/348913/copy-selection-to-a-clipboard-in-tmux
set-option -s set-clipboard off
# copia il testo selezionato trascinando il mouse nella clipboard di sistema
# esce dalla modalità copia
bind-key -T copy-mode-vi MouseDragEnd1Pane send-keys -X copy-pipe-and-cancel "xclip -se c -i"
# alternantivamente scegliere questo comando per non uscire dalla modalità copia
# bind-key -T copy-mode-vi MouseDragEnd1Pane send -X copy-pipe "xclip -se c -i" \; send -X clear-selection
bind -T copy-mode-vi p send -X copy-pipe-and-cancel 'xsel -ip'
bind -T copy-mode-vi s send -X copy-pipe-and-cancel 'xsel -is'
bind -T copy-mode-vi o send -X copy-pipe-and-cancel 'xsel -ib'
bind -T copy-mode-vi v send -X begin-selection
# anziché `Ctrl-a [` per entrare in modalità copia, usa `Ctrl-a Esc`
unbind [
bind Escape copy-mode
# una volta entrati in modalità copia, premere V per selezionare la riga intera (come su vim)
bind -T copy-mode-vi V send-keys "0v\$"
# premi r in modalità copia per passare a selezione rettangolare
bind -T copy-mode-vi r send -X rectangle-toggle
devo provare a cambiare la quadra etc., allora, e vedere se mi trovo bene.

p.s. ctrl+a anche io lo trovo noooooooooooolto più comodo. non capisco perché abbiano scelto la B xD
 
io invece ho letto ho un po' di cose tecniche a riguardo e che dire... complimenti a chi ha scovato la falla xD

una piccola tirata di orecchie, seppur piena di comprensione, per i designer responsabili e che nel corso degli anni non si sono mai resi conto del problema.
 
sulla comprensione?
sulla malizia...c'è materiale per i complottisti, tipo big brother is watching you (cit.).

p. s. ancora non ho avuto modo di testare lo script. non tocco il pc da non so quanti giorni :(
lo script serve per verificare i pacchetti installati 'foreign' cioè installati non tramite i repository community e tra essi quali aggiornabili in AUR. visto che il primo script ti segnalava errori questo fa tutto in automatico tramite il gestore pacchetti. in esteso è questo (ho commentato la chiamata della funzione 'updating' perchè è la parte operativa e perchè non l'ho ancora provato del tutto:
Codice:
#!/bin/bash
#aur_update.sh v.3.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 ((ii=1;ii<=$numero_dipendenze;ii++)) ; do dip=$(echo $dipendenze | awk -v xx=$ii '{print$xx}') ; 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..."
}
updating () {
      risultato=""
      for ((i=1;<=$numero;i++)) ; do
         clear
         echo -n "Controllo connessione internet..."
         if wget -q --tries=10 --timeout=20 --spider http://google.com ; then
            echo "Connessione ok"
            package_name=$(echo $update | awk -v x=$i '{print$x}')
            echo "Installazione $package_name:" ; echo -n "ricerca $package_name_tar..."
            package_name_tar=$package_name".tar.gz"
            package_dir_del=$(find /home/$USER -type d -name "$package_name") ; package_dir_del=$(echo $package_dir_del | awk '{print$1}')
            [[ "$package_dir_del" != "" ]] && package_dir_del_old=$package_dir_del"_old"
            package_dir=$(find /home/$USER -type d -name "AUR") ; [[ "$package_dir" = "" ]] && package_dir=/home/$USER/AUR && mkdir /home/$USER/AUR
            package_path=$(find /home/$USER -type f -name "$package_name_tar") ; package_path=$(echo $package_path | awk '{print$1}')
            [[ "$package_path" != "" ]] && package_path_old=$package_path".old"
            echo "Fatto." ; echo -n "Ricerca versioni..."
            versione_new=$(curl -s "https://aur.archlinux.org/rpc.php?v=5&type=info&arg=$package_name" | grep "Version") ; outofdate=$(echo $versione_new | grep "OutOfDate\":null") ; [[ "$outofdate" = "" ]] && outofdate="(OutOfDate)" || outfdate=""
            versione_new=${versione_new//,/ } ; versione_new=$(echo $versione_new | awk '{print$8}') ; versione_new=${versione_new:11} ; versione_new=${versione_new:0: -1}$outofdate
            versione_old=$(pacman -Qi $package_name | grep "Versione" | awk '{print$3}')
            echo "Fatto." ; 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
               [[ -d "$package_dir_del" ]] && mv $package_dir_del $package_dir_del_old
               [[ "$package_path" != "" ]] && 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_dir/$package_name_tar -C $package_dir
                  cd $package_dir/$package_name
                  if makepkg -s ; then
                     echo "Disinstallazione $package_name" ; sudo pacman -R $package_name
                     echo "Installazione $package_name scaricato" ; sudo pacman -U *.pkg.tar.xz
                     [[ "$package_path_old" != "" ]] && echo -n "Rimozione $package_path_old..." && rm $package_path_old && echo "Fatto."
                     [[ -d "$package_dir_del_old" ]] && echo -n "Rimozione cartella $package_dir_del_old di backup..." && sudo rm -r $package_dir_del_old && echo "Fatto." ; sleep 2
                     dialog --title "pacchetto $package_name" --backtitle "Aggiornamento AUR" --msgbox "Aggiornamento eseguito!" 7 60 ; clear ; risultato=$risultato" "$package_name"-->installato\n"
                  else
                     echo "Rimozione cartella $package_dir_del (cartella scompattata $package_name_tar scaricato)..."
                     sudo rm -r $package_dir/$package_name
                     [[ -d "$package_dir_del_old" ]] && mv $package_dir_del_old $package_dir_del
                     rm $package_dir/$package_name_tar ; [[ "$package_path_old" != "" ]] && 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 ; risultato=$risultato" "$package_name"-->non_installato_problemi_con_dipendenze_o_compilazione\n"
                  fi
               else
                  [[ -d "$package_dir_del_old" ]] && mv $package_dir_del_old $package_dir_del
                  [[ "$package_path_old" != "" ]] && 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
                  risultato=$risultato" "$package_name"-->non_installato_non_presente_in_AUR\n"
               fi
            else risultato=$risultato" "$package_name"-->non_installato_per_scelta_utente\n"
            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
            [[ "$package_path_old" != "" ]] && 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
            risultato=$risultato" "$package_name"-->non_installato_per_assenza_connessione_internet\n"
         fi
      done
      clear ; echo "Riassunto aggiornamento:" ; echo -e "\n$risultato" ; echo ; echo "premi invio per terminare..." ; read -s -n 1
}
check=$(ps aux | grep [p]acman) ; if [ "$check" = "" ] ; then
LIGHT_RED=='\033[0;31m' ; LIGHT_GREEN='\033[0;32m' ; LIGHT_WHITE='\033[1;37m' ; NC='\033[0m'
clear && echo -n "Controllo connessione internet..."
if wget -q --tries=10 --timeout=20 --spider http://google.com ; then
   echo "Connesso a internet."
   echo -e "\nCONTROLLO PACCHETTI AGGIORNABILI, attendere..."
   aur=()
   aur_ok=()
   update=""
   AUR=$(pacman -Qqm)
   numero_AUR=$(pacman -Qqm | wc -l)
   for ((i=0;i<$numero_AUR;i++)) ; do ii=$((i+1)) ; aur[$i]=$(echo $AUR | awk -v x=$ii '{print$x}')
      versione_new=$(curl -s "https://aur.archlinux.org/rpc.php?v=5&type=info&arg=${aur[$i]}" | grep "Version") ; outofdate=$(echo $versione_new | grep "OutOfDate\":null")
      if [ "$versione_new" != "" ] ; then
         versione_new=${versione_new//,/ } ; versione_new=$(echo $versione_new | awk '{print$8}') ; versione_new=${versione_new:11} ; versione_new=${versione_new:0: -1}
         versione_old=$(pacman -Qi ${aur[$i]} | grep "Versione" | awk '{print$3}')
         if [ "$versione_new" != "$versione_old" ] ; then
            if [ "$outofdate" != "" ] ; then descrizione="${LIGHT_GREEN}AGGIORNABILE${NC}" ; descr="AGGIORNABILE" ; else descrizione="${LIGHT_GREEN}AGGIORNABILE${NC}(${LIGHT_RED}OutOfDate${NC})" ; descr="AGGIORNABILE_(OutOfDate)" ; fi
            aur_ok+=( False ${aur[$i]} $versione_old $versione_new)
            aur[$i]=${aur[$i]}" --->"$descrizione
         else if [ "$outofdate" != "" ] ; then descrizione="${LIGHT_WHITE}AGGIORNATO${NC}" ; else descrizione="${LIGHT_WHITE}AGGIORNATO${NC}(${LIGHT_RED}OutOfDate${NC})" ; fi ; aur[$i]=${aur[$i]}" --->"$descrizione
         fi
      else descrizione="${LIGHT_RED}NON PRESENTE IN AUR${NC}" ; aur[$i]=${aur[$i]}" --->"$descrizione
      fi
   done
   if [ "$aur_ok" = "" ] ; then
      dialog --title "Controllo pacchetti installati" --backtitle "Aggiornamento AUR" --msgbox "Tutti i pacchetti AUR installati sono aggiornati alla versione più recente!" 7 60
   else
      for ((i=0;i<$numero_AUR;i++)) ; do echo -e ${aur[$i]} ; done ; echo -e "\tt=aggiorna tutto | s=seleziona aggiornamenti | altro=esci" ; read -n 1 -s azione
      if [ "$azione" = "s" ] ; then
         update=$(zenity --list --title="PACCHETTI AUR AGGIORNABILI" --text="seleziona per aggiornare" --width=1000 --height=650 --checklist --column="" --column="PACCHETTO" --column="VERSIONE INSTALLATA" --column="VERSIONE DA INSTALLARE" "${aur_ok[@]}" 2&>/dev/null)
         numero=$(($(grep -o " " <<<"$update" | wc -l)+1)) ; #updating
      elif [ "$azione" = "t" ] ; then numero=$((${#aur_ok[@]}/4))
         for ((i=0;i<$numero;i++)) ; do ii=$(( (i*4)+1 )) ; update=$update" "$aur_ok[$ii] ; done
         #updating
      fi
   fi
else
   dialog --title "Controllo connessione internet" --backtitle "Aggiornamento AUR" --msgbox "Sembra che manchi la connessione, impossibile proseguire." 7 60
fi
else dialog --title "Controllo gestione pacchetti (PACMAN)" --backtitle "Aggiornamento AUR" --msgbox "C'è già in esecuzione il gestore pacchetti, attenderne la fine." 7 60
fi
exit 0
c'è anche il controllo di un uso in parallelo di pacman per cui si pianterebbe l'updating.
Ovviamente hai bisogno di gnome-terminal e di zenity (che in realtà chiamo una sola volta -c'è un piccolo bug sul numero di item in checklist che devo risolvere- e potrei sostituire con dialog ma non c'ho voglia).
 
sulla malizia...c'è materiale per i complottisti, tipo big brother is watching you (cit.).

lo script serve per verificare i pacchetti installati 'foreign' cioè installati non tramite i repository community e tra essi quali aggiornabili in AUR. visto che il primo script ti segnalava errori questo fa tutto in automatico tramite il gestore pacchetti. in esteso è questo (ho commentato la chiamata della funzione 'updating' perchè è la parte operativa e perchè non l'ho ancora provato del tutto:
Codice:
#!/bin/bash
#aur_update.sh v.3.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 ((ii=1;ii<=$numero_dipendenze;ii++)) ; do dip=$(echo $dipendenze | awk -v xx=$ii '{print$xx}') ; 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..."
}
updating () {
      risultato=""
      for ((i=1;<=$numero;i++)) ; do
         clear
         echo -n "Controllo connessione internet..."
         if wget -q --tries=10 --timeout=20 --spider http://google.com ; then
            echo "Connessione ok"
            package_name=$(echo $update | awk -v x=$i '{print$x}')
            echo "Installazione $package_name:" ; echo -n "ricerca $package_name_tar..."
            package_name_tar=$package_name".tar.gz"
            package_dir_del=$(find /home/$USER -type d -name "$package_name") ; package_dir_del=$(echo $package_dir_del | awk '{print$1}')
            [[ "$package_dir_del" != "" ]] && package_dir_del_old=$package_dir_del"_old"
            package_dir=$(find /home/$USER -type d -name "AUR") ; [[ "$package_dir" = "" ]] && package_dir=/home/$USER/AUR && mkdir /home/$USER/AUR
            package_path=$(find /home/$USER -type f -name "$package_name_tar") ; package_path=$(echo $package_path | awk '{print$1}')
            [[ "$package_path" != "" ]] && package_path_old=$package_path".old"
            echo "Fatto." ; echo -n "Ricerca versioni..."
            versione_new=$(curl -s "https://aur.archlinux.org/rpc.php?v=5&type=info&arg=$package_name" | grep "Version") ; outofdate=$(echo $versione_new | grep "OutOfDate\":null") ; [[ "$outofdate" = "" ]] && outofdate="(OutOfDate)" || outfdate=""
            versione_new=${versione_new//,/ } ; versione_new=$(echo $versione_new | awk '{print$8}') ; versione_new=${versione_new:11} ; versione_new=${versione_new:0: -1}$outofdate
            versione_old=$(pacman -Qi $package_name | grep "Versione" | awk '{print$3}')
            echo "Fatto." ; 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
               [[ -d "$package_dir_del" ]] && mv $package_dir_del $package_dir_del_old
               [[ "$package_path" != "" ]] && 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_dir/$package_name_tar -C $package_dir
                  cd $package_dir/$package_name
                  if makepkg -s ; then
                     echo "Disinstallazione $package_name" ; sudo pacman -R $package_name
                     echo "Installazione $package_name scaricato" ; sudo pacman -U *.pkg.tar.xz
                     [[ "$package_path_old" != "" ]] && echo -n "Rimozione $package_path_old..." && rm $package_path_old && echo "Fatto."
                     [[ -d "$package_dir_del_old" ]] && echo -n "Rimozione cartella $package_dir_del_old di backup..." && sudo rm -r $package_dir_del_old && echo "Fatto." ; sleep 2
                     dialog --title "pacchetto $package_name" --backtitle "Aggiornamento AUR" --msgbox "Aggiornamento eseguito!" 7 60 ; clear ; risultato=$risultato" "$package_name"-->installato\n"
                  else
                     echo "Rimozione cartella $package_dir_del (cartella scompattata $package_name_tar scaricato)..."
                     sudo rm -r $package_dir/$package_name
                     [[ -d "$package_dir_del_old" ]] && mv $package_dir_del_old $package_dir_del
                     rm $package_dir/$package_name_tar ; [[ "$package_path_old" != "" ]] && 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 ; risultato=$risultato" "$package_name"-->non_installato_problemi_con_dipendenze_o_compilazione\n"
                  fi
               else
                  [[ -d "$package_dir_del_old" ]] && mv $package_dir_del_old $package_dir_del
                  [[ "$package_path_old" != "" ]] && 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
                  risultato=$risultato" "$package_name"-->non_installato_non_presente_in_AUR\n"
               fi
            else risultato=$risultato" "$package_name"-->non_installato_per_scelta_utente\n"
            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
            [[ "$package_path_old" != "" ]] && 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
            risultato=$risultato" "$package_name"-->non_installato_per_assenza_connessione_internet\n"
         fi
      done
      clear ; echo "Riassunto aggiornamento:" ; echo -e "\n$risultato" ; echo ; echo "premi invio per terminare..." ; read -s -n 1
}
check=$(ps aux | grep [p]acman) ; if [ "$check" = "" ] ; then
LIGHT_RED=='\033[0;31m' ; LIGHT_GREEN='\033[0;32m' ; LIGHT_WHITE='\033[1;37m' ; NC='\033[0m'
clear && echo -n "Controllo connessione internet..."
if wget -q --tries=10 --timeout=20 --spider http://google.com ; then
   echo "Connesso a internet."
   echo -e "\nCONTROLLO PACCHETTI AGGIORNABILI, attendere..."
   aur=()
   aur_ok=()
   update=""
   AUR=$(pacman -Qqm)
   numero_AUR=$(pacman -Qqm | wc -l)
   for ((i=0;i<$numero_AUR;i++)) ; do ii=$((i+1)) ; aur[$i]=$(echo $AUR | awk -v x=$ii '{print$x}')
      versione_new=$(curl -s "https://aur.archlinux.org/rpc.php?v=5&type=info&arg=${aur[$i]}" | grep "Version") ; outofdate=$(echo $versione_new | grep "OutOfDate\":null")
      if [ "$versione_new" != "" ] ; then
         versione_new=${versione_new//,/ } ; versione_new=$(echo $versione_new | awk '{print$8}') ; versione_new=${versione_new:11} ; versione_new=${versione_new:0: -1}
         versione_old=$(pacman -Qi ${aur[$i]} | grep "Versione" | awk '{print$3}')
         if [ "$versione_new" != "$versione_old" ] ; then
            if [ "$outofdate" != "" ] ; then descrizione="${LIGHT_GREEN}AGGIORNABILE${NC}" ; descr="AGGIORNABILE" ; else descrizione="${LIGHT_GREEN}AGGIORNABILE${NC}(${LIGHT_RED}OutOfDate${NC})" ; descr="AGGIORNABILE_(OutOfDate)" ; fi
            aur_ok+=( False ${aur[$i]} $versione_old $versione_new)
            aur[$i]=${aur[$i]}" --->"$descrizione
         else if [ "$outofdate" != "" ] ; then descrizione="${LIGHT_WHITE}AGGIORNATO${NC}" ; else descrizione="${LIGHT_WHITE}AGGIORNATO${NC}(${LIGHT_RED}OutOfDate${NC})" ; fi ; aur[$i]=${aur[$i]}" --->"$descrizione
         fi
      else descrizione="${LIGHT_RED}NON PRESENTE IN AUR${NC}" ; aur[$i]=${aur[$i]}" --->"$descrizione
      fi
   done
   if [ "$aur_ok" = "" ] ; then
      dialog --title "Controllo pacchetti installati" --backtitle "Aggiornamento AUR" --msgbox "Tutti i pacchetti AUR installati sono aggiornati alla versione più recente!" 7 60
   else
      for ((i=0;i<$numero_AUR;i++)) ; do echo -e ${aur[$i]} ; done ; echo -e "\tt=aggiorna tutto | s=seleziona aggiornamenti | altro=esci" ; read -n 1 -s azione
      if [ "$azione" = "s" ] ; then
         update=$(zenity --list --title="PACCHETTI AUR AGGIORNABILI" --text="seleziona per aggiornare" --width=1000 --height=650 --checklist --column="" --column="PACCHETTO" --column="VERSIONE INSTALLATA" --column="VERSIONE DA INSTALLARE" "${aur_ok[@]}" 2&>/dev/null)
         numero=$(($(grep -o " " <<<"$update" | wc -l)+1)) ; #updating
      elif [ "$azione" = "t" ] ; then numero=$((${#aur_ok[@]}/4))
         for ((i=0;i<$numero;i++)) ; do ii=$(( (i*4)+1 )) ; update=$update" "$aur_ok[$ii] ; done
         #updating
      fi
   fi
else
   dialog --title "Controllo connessione internet" --backtitle "Aggiornamento AUR" --msgbox "Sembra che manchi la connessione, impossibile proseguire." 7 60
fi
else dialog --title "Controllo gestione pacchetti (PACMAN)" --backtitle "Aggiornamento AUR" --msgbox "C'è già in esecuzione il gestore pacchetti, attenderne la fine." 7 60
fi
exit 0
c'è anche il controllo di un uso in parallelo di pacman per cui si pianterebbe l'updating.
ah beh, dei complottisti fregacapperi. per me possono gridare a tutti gli scandali che vogliono, basta che non vengono a scriverlo a destra e manca xD

per dire, il tg5 nel servizio sulle falle ha parlato solo di Apple e di come la falla colpisca i suoi prodotti. cioè dai, co sta gente non c'è manco da discutere.

la mia comprensione nasce dal fatto che so cosa c'è dentro una cpu e cosa significa progettarla e progettare un'intera architettura. tra l'altro una falla scoperta dopo dieci anni, non è una falla facile da rilevare... cioè, voglio dire...

testerò e ti farò sapere, promesso :)
 
ah beh, dei complottisti fregacapperi. per me possono gridare a tutti gli scandali che vogliono, basta che non vengono a scriverlo a destra e manca xD

per dire, il tg5 nel servizio sulle falle ha parlato solo di Apple e di come la falla colpisca i suoi prodotti. cioè dai, co sta gente non c'è manco da discutere.

la mia comprensione nasce dal fatto che so cosa c'è dentro una cpu e cosa significa progettarla e progettare un'intera architettura. tra l'altro una falla scoperta dopo dieci anni, non è una falla facile da rilevare... cioè, voglio dire...
sono d'accordo.

testerò e ti farò sapere, promesso :)
tra poco correggo lo script completo perchè c'è un paio di inesattezze (variabili nei cicli for che si ripetono ed essendo cicli annidati...:asd:) era solo a scopo dimostrativo; lo scriptino sulla rilevazione dei pacchetti aggiornabili invece va benissimo e non ti modifica niente quindi prova a vedere se ti funziona.
 
sono d'accordo.

tra poco correggo lo script completo perchè c'è un paio di inesattezze (variabili nei cicli for che si ripetono ed essendo cicli annidati...:asd:) era solo a scopo dimostrativo; lo scriptino sulla rilevazione dei pacchetti aggiornabili invece va benissimo e non ti modifica niente quindi prova a vedere se ti funziona.
githubba tutto, come i vedi pro :figo:
 
Salve, ho fatto diversi pasticci con configurazioni varie e non riesco più a collegarmi alla rete, esiste un sistema per ripristinare le impostazioni di rete di default su ubuntu 16.04 ?
 
Pubblicità
Pubblicità
Indietro
Top