UFFICIALE L'OT di Linux e altri OS

davethecipo

Utente Èlite
3,331
1,163
CPU
i5 4660
Scheda Madre
H97 PC Mate
HDD
qualcuno
RAM
8 GB
GPU
R9 280
Monitor
Samsung SyncMaster 940BW 19'
PSU
Enermax Liberty 620W
Case
Enermax Pandora Midi Tower Black
OS
Arch Linux con KDE...Windows 10
Io ho sostituito ghostery con privacy badger, se ti può interessare (non ho controllato la RAM)
 
  • Mi piace
Reazioni: « MoMy »

e_ale92

Utente Èlite
17,011
5,013
CPU
Intel® Core™ i7-920 Processor - @3.33GHz
Dissipatore
Stock Intel
Scheda Madre
Asus P6T - socket LGA 1366
HDD
Samsung 830 128GB + Samsung Spinpoint F4 320GB + Seagate Barracuda 1,5 TB
RAM
Corsair DDR3 1333MHz CL9 XMS3 DHX (3x2GB) - @1674MHz
GPU
MSI R6970 Lightning
Audio
Realtek ALC 1200
Monitor
HP 2310i
PSU
XFX Pro 750W Core Edition
Case
Cooler Master HAF 922
Periferiche
R.A.T. 5 Cyborg Mad Catz - Keycool KC84
OS
Arch Linux + Windows 10 Pro
cos'è ghostery?

nel senso, ho letto la descrizione, ma perché lo usate? non basta la protezione inclusa in firefox + disabilitare il tracking, l'invio statistiche e i cookie di terze parti?
 

« MoMy »

Utente Èlite
1,529
771
Io ho sostituito ghostery con privacy badger, se ti può interessare (non ho controllato la RAM)
Lo proverò, grazie. ^^
Al di là della ram (100 più, 100 meno) poco importa. Mi dava fastidio il fatto che questa aumentava sempre più :asd: son arrivato anche a 1,4GiB con solo FF e quindi ho chiamato Goodger e gli ho detto ''sali e sistema 'sto coso perché se scendo io son dolori'' e lui ha risposto ''comandi'' :vv:
nel senso, ho letto la descrizione, ma perché lo usate? non basta la protezione inclusa in firefox + disabilitare il tracking, l'invio statistiche e i cookie di terze parti?

Non so se basti, in più ora ci si mette anche il mining, criptovalute e roba varia... sempre peggio. :|
 
  • Mi piace
Reazioni: e_ale92

e_ale92

Utente Èlite
17,011
5,013
CPU
Intel® Core™ i7-920 Processor - @3.33GHz
Dissipatore
Stock Intel
Scheda Madre
Asus P6T - socket LGA 1366
HDD
Samsung 830 128GB + Samsung Spinpoint F4 320GB + Seagate Barracuda 1,5 TB
RAM
Corsair DDR3 1333MHz CL9 XMS3 DHX (3x2GB) - @1674MHz
GPU
MSI R6970 Lightning
Audio
Realtek ALC 1200
Monitor
HP 2310i
PSU
XFX Pro 750W Core Edition
Case
Cooler Master HAF 922
Periferiche
R.A.T. 5 Cyborg Mad Catz - Keycool KC84
OS
Arch Linux + Windows 10 Pro
Lo proverò, grazie. ^^
Al di là della ram (100 più, 100 meno) poco importa. Mi dava fastidio il fatto che questa aumentava sempre più :asd: son arrivato anche a 1,4GiB con solo FF e quindi ho chiamato Goodger e gli ho detto ''sali e sistema 'sto coso perché se scendo io son dolori'' e lui ha risposto ''comandi'' :vv:


Non so se basti, in più ora ci si mette anche il mining, criptovalute e roba varia... sempre peggio. :|
ahahahahahah fantastico xD

dici? per il mining basta ublock e filtro nocoin, sicuro serva un'estensione ciucciaram? devo informarmi meglio :patpat:
 
  • Mi piace
Reazioni: « MoMy »

« MoMy »

Utente Èlite
1,529
771
Al momento ho installato ublock e no coin (no coin in previsione) e i siti/blog/eccecc che mi chiedono di sbloccare ublock chiudo la pagina e ''bonanotte al secchio''.
 
  • Mi piace
Reazioni: e_ale92

e_ale92

Utente Èlite
17,011
5,013
CPU
Intel® Core™ i7-920 Processor - @3.33GHz
Dissipatore
Stock Intel
Scheda Madre
Asus P6T - socket LGA 1366
HDD
Samsung 830 128GB + Samsung Spinpoint F4 320GB + Seagate Barracuda 1,5 TB
RAM
Corsair DDR3 1333MHz CL9 XMS3 DHX (3x2GB) - @1674MHz
GPU
MSI R6970 Lightning
Audio
Realtek ALC 1200
Monitor
HP 2310i
PSU
XFX Pro 750W Core Edition
Case
Cooler Master HAF 922
Periferiche
R.A.T. 5 Cyborg Mad Catz - Keycool KC84
OS
Arch Linux + Windows 10 Pro
@rebellion: sto provando sul fisso e non riesco ad aggiornare l'estensione chrome-gnome-shell-git. sia se premo t=tutto sia se premo s e seleziono il pacchetto, mi dice che non ha aggiornato per scelta dell'utente o.O
purtroppo non ho altri pacchetti da aggiornare, quindi non posso fare altre prove.

per quanto riguarda la cartella, invece, puoi piazzarla tranquillamente dove dicevi tu, in ~/.cache/aur così da avere vita facile con i permessi :)

p.s. script versione 4.1
 
  • Mi piace
Reazioni: rebellion

cdtux

Utente Èlite
1,829
911
CPU
I7 3770
Scheda Madre
Asrock Z77 Extreme 4
HDD
Samsung 850 pro 250GB
RAM
Corsair Vengeance LP 16GB
GPU
Gigabyte GTX1060 6GB
Monitor
Dell U2412M
PSU
Seasonic Focus Plus 650
Case
Corsair Graphite 760T
OS
Debian / Ubuntu
Per la serie domande amletiche inutili.. :asd:
Che voi sappiate c'è qualche altro linguaggio di programmazione/scripting che può essere scritto con solamente pochi caratteri (6 nello specifico) o in modo cervellotico :asd: come javascript??

Esempio di eval(alert(1)):
JavaScript:
[][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]][([][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]]+[])[!+[]+!+[]+!+[]]+(!![]+[][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]])[+!+[]+[+[]]]+([][[]]+[])[+!+[]]+(![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[+!+[]]+([][[]]+[])[+[]]+([][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]])[+!+[]+[+[]]]+(!![]+[])[+!+[]]]((![]+[])[+!+[]]+(![]+[])[!+[]+!+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]+(!![]+[])[+[]]+(![]+[][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]])[!+[]+!+[]+[+[]]]+[+!+[]]+(!![]+[][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]])[!+[]+!+[]+[+[]]])()

PS. L'istruzione eval serve per eseguire il codice impostato come stringa..
 
  • Mi piace
Reazioni: rebellion

e_ale92

Utente Èlite
17,011
5,013
CPU
Intel® Core™ i7-920 Processor - @3.33GHz
Dissipatore
Stock Intel
Scheda Madre
Asus P6T - socket LGA 1366
HDD
Samsung 830 128GB + Samsung Spinpoint F4 320GB + Seagate Barracuda 1,5 TB
RAM
Corsair DDR3 1333MHz CL9 XMS3 DHX (3x2GB) - @1674MHz
GPU
MSI R6970 Lightning
Audio
Realtek ALC 1200
Monitor
HP 2310i
PSU
XFX Pro 750W Core Edition
Case
Cooler Master HAF 922
Periferiche
R.A.T. 5 Cyborg Mad Catz - Keycool KC84
OS
Arch Linux + Windows 10 Pro
Per la serie domande amletiche inutili.. :asd:
Che voi sappiate c'è qualche altro linguaggio di programmazione/scripting che può essere scritto con solamente pochi caratteri (6 nello specifico) o in modo cervellotico :asd: come javascript??

Esempio di eval(alert(1)):
JavaScript:
[][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]][([][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]]+[])[!+[]+!+[]+!+[]]+(!![]+[][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]])[+!+[]+[+[]]]+([][[]]+[])[+!+[]]+(![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[+!+[]]+([][[]]+[])[+[]]+([][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]])[+!+[]+[+[]]]+(!![]+[])[+!+[]]]((![]+[])[+!+[]]+(![]+[])[!+[]+!+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]+(!![]+[])[+[]]+(![]+[][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]])[!+[]+!+[]+[+[]]]+[+!+[]]+(!![]+[][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]])[!+[]+!+[]+[+[]]])()

PS. L'istruzione eval serve per eseguire il codice impostato come stringa..

LOL ma che roba è? xD

non saprei, cmq... domanda curiosa

------------------

update
@rebellion :sac:

ho purgato pacaur sul portatile, cancellato le sue cartelle di cache e sfoltito la lista dei pacchetti... e finalmente testato il tuo script :love:

1. funziona! quell'estensione di chrome l'ha installata senza problemi
2. mi segnala l'update di chibios ma è un problema che ho creato io. in locale ho la versione 17.6, su aur c'è la 16.1.6... in teoria non dovrebbe segnalare l'update, ma difficilmente ci sarà una condizione simile, a meno che uno non si metta ad aggiornare i pacchetti senza pubblicarli su aur xD anyway, sistemo il pkgbuild e vedo di committare su aur, in modo da risolvere alla radice.
3. suggerimento personale: la cartella la sposterei in /home/$USER/.cache/aur in modo da seguire l'andazzo dei vari aur helper ma una volta compilato il pacchetto, conserverei solo pkguild e pacchetto compilato. conservare la tarball.tar.gz e tutti i file di compilazione, mi sembra uno spreco di spazio inutile
4. non ricordo la risposta e non trovo il post, ergo richiedo. come si comporta lo script in caso di dipendenze da soddisfare? quelle presenti nei repo ufficiali vengono risolte, mentre quelle a catena da aur vengono solo segnalate, giusto?
5. ben fatto! sto script è tanta roba!
 
Ultima modifica:
  • Mi piace
Reazioni: rebellion e cdtux

rebellion

Utente Èlite
1,593
506
CPU
intel i5 9500
Dissipatore
cooler master hyper 212 evo
Scheda Madre
asrock b360 pro4
HDD
samsung 850evo 250GB+samsung 840pro 128GB+seagate barracuda 2TB+seagate barracuda 2TB
RAM
corsair vengeance lpx ddr4 2133MHz 2x4GB CL13
GPU
integrata intel hd graphics 630
Audio
integrata
Monitor
samsung ue55mu6500u
PSU
xfx pro series 550w core edition
Case
mastercooler
OS
archlinux x64 + gnome3.34.1 && windows10 pro x64
@rebellion: sto provando sul fisso e non riesco ad aggiornare l'estensione chrome-gnome-shell-git. sia se premo t=tutto sia se premo s e seleziono il pacchetto, mi dice che non ha aggiornato per scelta dell'utente o.O
purtroppo non ho altri pacchetti da aggiornare, quindi non posso fare altre prove.
ci sto lavorando il problema sembra risolto sto lucidando bene... anche in passato mi ero sbagliato, non avevi premuto per sbaglio il diniego al dialog di conferma installazione...è un problema di un errato riconoscimento dipendenze, sto rifacendo in modo approfondito la faccenda e posto la versione 4.2. in più devo risolvere il bug del mancato salvataggio (dopo installazione) del tar.gz quando manca il vecchio tar.gz ma è robetta da mezz'ora di tempo.
l'uso della cartella .cache è previsto nella versione 4.3 (mi sto montando la testa...:asd:
 
  • Mi piace
Reazioni: e_ale92

rebellion

Utente Èlite
1,593
506
CPU
intel i5 9500
Dissipatore
cooler master hyper 212 evo
Scheda Madre
asrock b360 pro4
HDD
samsung 850evo 250GB+samsung 840pro 128GB+seagate barracuda 2TB+seagate barracuda 2TB
RAM
corsair vengeance lpx ddr4 2133MHz 2x4GB CL13
GPU
integrata intel hd graphics 630
Audio
integrata
Monitor
samsung ue55mu6500u
PSU
xfx pro series 550w core edition
Case
mastercooler
OS
archlinux x64 + gnome3.34.1 && windows10 pro x64
1. funziona! quell'estensione di chrome l'ha installata senza problemi
YEAAAHH!
3. suggerimento personale: la cartella la sposterei in /home/$USER/.cache/aur in modo da seguire l'andazzo dei vari aur helper ma una volta compilato il pacchetto, conserverei solo pkguild e pacchetto compilato. conservare la tarball.tar.gz e tutti i file di compilazione, mi sembra uno spreco di spazio inutile
no a me il PKGBUILD non serve, mentre ho bisogno del $nomepacchetto.tar.gz perchè ne confronto l'hash con quello su AUR per stabilire (con l'incrocio del confronto dei numeri versione) se il pacchetto è aggiornato oppure no. considera che l'archivio (il tar.gz) è poca roba; mentre posso eliminare la cartella della compilazione se non c'è qualche controindicazione?
4. non ricordo la risposta e non trovo il post, ergo richiedo. come si comporta lo script in caso di dipendenze da soddisfare? quelle presenti nei repo ufficiali vengono risolte, mentre quelle a catena da aur vengono solo segnalate, giusto?
verranno segnalate tutte: principali opzionali e per la compilazione!:sisi: quelle non installate e presenti su AUR non vengono installate, devi farlo tu a mano così decidi per bene se farlo oppure no; questo è uno scrpt di aggiornamento.
5. ben fatto! sto script è tanta roba!
e quando ho finito, spero entro fine settimana, che fò?!:look: :pazzo: :asd:


EDIT: @e_ale92
Codice:
#!/bin/bash
#aur_update.sh v4.2
#script di aggiornamento pacchetti installati da AUR, by rebellion
#preferibilmente da lanciare tramite terminale per visualizzare messaggi di dialogo con lo script
#a es. con: gnome-terminal --geometry 75x25 --hide-menubar --title=\"AUR update\" -e \'sh -c \"sh /home/$USER/aur_update.sh\"\'
controllo_dipendenze () {
   check_dip_aur="ok" ; a="\"Depends\"" ; aa="\",\""
   dipendenze=$(curl -s "https://aur.archlinux.org/rpc.php?v=5&type=info&arg=$package_name")
   make_dip=${dipendenze##*MakeDepends} ; if [ "$make_dip" = "$dipendenze" ] ; then make_dip="nessuna" ; else make_dip=${make_dip%%]*} ; make_dip=${make_dip:4} ; make_dip=${make_dip:0: -1} ; make_dip=${make_dip//$aa/ } ; fi
   main_dip=${dipendenze##*$a} ; if [ "$main_dip" = "$dipendenze" ] ; then main_dip="nessuna" ; else main_dip=${main_dip%%]*} ; main_dip=${main_dip:3} ; main_dip=${main_dip:0: -1} ; main_dip=${main_dip//$aa/ } ; fi
   opt_dip=${dipendenze##*OptDepends} ; if [ "$opt_dip" = "$dipendenze" ] ; then opt_dip="nessuna" ; else opt_dip=${opt_dip%%]*} ; opt_dip=${opt_dip:4} ; opt_dip=${opt_dip:0: -1} ; opt_dip=${opt_dip//$aa/ } ; fi
   echo "DIPENDENZE:"
   if [ "$main_dip" != "nessuna" ] ; then
      numero_dipendenze=$(($(grep -o " " <<<"$main_dip" | wc -l)+1))
      for ((ii=1;ii<=$numero_dipendenze;ii++)) ; do dip=$(echo $main_dip | awk -v xx=$ii '{print$xx}') ; dip=${dip%%>*} ; dip=${dip%%<*} ; dip=${dip%%=*} ; if pacman -Q | grep -w "$dip" 1>/dev/null ; then dips=$dip"-----> ${LIGHT_GREEN}installata${NC}" ; else dips=$dip"-----> ${LIGHT_RED}non installata${NC}" ; fi
         if pacman -Si "$dip" &>/dev/null ; then dips=$dips"(community)" ; else dips=$dips"(AUR)" ; check_dip_aur="no" ; fi
         echo -e $dips
      done
   else echo "NESSUNA dipendenza richiesta."
   fi
   echo -e "\nDIPENDENZE OPZIONALI:"
   if [ "$opt_dip" != "nessuna" ] ; then
      numero_dipendenze=$(($(grep -o " " <<<"$opt_dip" | wc -l)+1))
      for ((ii=1;ii<=$numero_dipendenze;ii++)) ; do dip=$(echo $opt_dip | awk -v xx=$ii '{print$xx}') ; dip=${dip%%>*} ; dip=${dip%%<*} ; dip=${dip%%=*} ; if pacman -Q | grep -w "$dip" 1>/dev/null ; then dips=$dip"-----> ${LIGHT_GREEN}installata${NC}" ; else dips=$dip"-----> ${LIGHT_RED}non installata${NC}" ; fi
         if pacman -Si "$dip" &>/dev/null ; then dips=$dips"(community)" ; else dips=$dips"(AUR)" ; fi
         echo -e $dips
      done
   else echo "NESSUNA dipendenza opzionale richiesta."
   fi
   echo -e "\nDIPENDENZE PER LA COMPILAZIONE (MAKE):"
   if [ "$make_dip" != "nessuna" ] ; then
      numero_dipendenze=$(($(grep -o " " <<<"$make_dip" | wc -l)+1))
      for ((ii=1;ii<=$numero_dipendenze;ii++)) ; do dip=$(echo $make_dip | awk -v xx=$ii '{print$xx}') ; dip=${dip%%>*} ; dip=${dip%%<*} ; dip=${dip%%=*} ; if pacman -Q | grep -w "$dip" 1>/dev/null ; then dips=$dip"-----> ${LIGHT_GREEN}installata${NC}" ; else dips=$dip"-----> ${LIGHT_RED}non installata${NC}" ; fi
         if pacman -Si "$dip" &>/dev/null ; then dips=$dips"(community)" ; else dips=$dips"(AUR)" ; check_dip_aur="no" ; fi
         echo -e $dips
      done
   else echo "NESSUNA dipendenza per la compilazione richiesta."
   fi
   echo ; read -s -p "premi invio per continuare..."
}
seleziona () {
   selezione=()
   row_max=$((${#aur_ok[@]}/4))
   packages="" ; for ((i=0;i<$row_max;i++)) ; do ii=$(( (i*4)+1 )) ; packages=$packages" "${aur_ok[$ii]} ; done
   clear ; echo -e "PACCHETTI DA AGGIORNARE:\n\n" ; for ((i=0;i<$row_max;i++)) ; do package=$(echo $packages | awk -v x=$(( $i+1 )) '{print$x}') ; echo "( ) $package" ; done ; echo -e "\n----------------\ncurs.su/curs.giù per scorrere - invio per (de)selezionare - q per uscire\n----------------"
   tput sc ; tput cuu $(( $row_max+4 )) ; tput cuf 1 ; riga=1
   while [ "$tasto" != "q" ] ; do
      read -s -N1
      ott1="$REPLY"
      read -s -N2 -t 0.001
      ott2="$REPLY"
      read -s -N1 -t 0.001
      ott3="$REPLY"
      tasto="$ott1$ott2$ott3"
      case "$tasto" in
         $'\x1b\x5b\x41')
            if [ "$riga" = 1 ] ; then tput cud $(( $row_max-1 )) ; riga=$row_max ; else tput cuu 1 ; riga=$(( $riga-1 )) ; fi ;;
         $'\x1b\x5b\x42')
            if [ "$riga" = $row_max ] ; then tput cuu $(( $row_max-1 )) ; riga=1 ; else tput cud 1 ; riga=$(( $riga+1 )) ; fi ;;
         "
")
            if [ "${selezione[$riga]}" = "" ] ; then echo "x" ; selezione[$riga]="$riga"; else echo " " ; selezione[$riga]="" ; fi ; tput cuu 1 ; tput cuf 1 ; if [ "$riga" = $row_max ] ; then tput cuu $(( $row_max-1 )) ; riga=1 ; else tput cud 1 ; riga=$(( $riga+1 )) ; fi ;;
      esac
   done
   tput rc
   update=""
   package="" ; for i in "${selezione[@]}" ; do package=$(echo $packages | awk -v x=$i '{print$x}') ; update=$update" "$package ; done
}
updating () {
      risultato=""
      for ((i=1;i<=$numero;i++)) ; do
         clear
         echo -n "Controllo connessione internet..."
         if ping -q -c 1 -W 1 8.8.8.8 >/dev/null || ping -q -c 1 -W 1 google.com >/dev/null ; then
            echo "Connessione ok"
            package_name=$(echo $update | awk -v x=$i '{print$x}')
            echo "Installazione $package_name:"
            package_name_tar=$package_name".tar.gz" ; echo -n "ricerca $package_name_tar..."
            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)" || outofdate=""
            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 -e "\nControllo dipendenze del pacchetto $package_name:\n"
            controllo_dipendenze
            if [ "$check_dip_aur" = "ok" ] && dialog --title "pacchetto $package_name" --backtitle "Aggiornamento AUR" --yesno "Verranno installate eventuali dipendenze mancanti presenti in community. 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_nella_compilazione(make)\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
               [[ "$check_dip_aur" = "ok" ]] && risultato=$risultato" "$package_name"-->non_installato_per_scelta_utente\n" || risultato=$risultato" "$package_name"-->non installato per mancanza dipendenze AUR\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 "[s]udo pacman") ; 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 ping -q -c 1 -W 1 8.8.8.8 >/dev/null || ping -q -c 1 -W 1 google.com >/dev/null ; 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}')
      tput cuu 1 ; tput cuf 47 ; echo "[$(($i+1))/$numero_AUR]" ; tput el ; echo ${aur[$i]} ; tput cuu 1
      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}')
         package_path=$(find /home/$USER -type f -name "${aur[$i]}.tar.gz") ; package_path=$(echo $package_path | awk '{print$1}')
         [[ $package_path != "" ]] && hash_old=$(md5sum $package_path | awk '{print$1}') || hash_old=""
         [[ $hash_old != "" ]] && hash_new=$(curl -s https://aur.archlinux.org/cgit/aur.git/snapshot/"${aur[$i]}.tar.gz" | md5sum | awk '{print$1}') || hash_new=""
         if [ "$versione_new" != "$versione_old" ] && ([ "$hash_old" != "$hash_new" ] || [ "$hash_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
            if [ "$hash_old" = "" ] ; then descrizione=$descrizione"_firme_non_confrontabili" ; 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
      tput cuu 1 ; tput el ; echo "RISULTATO RICERCA PACCHETTI AGGIORNABILI:"
      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 --separator=" " --column="" --column="PACCHETTO" --column="VERSIONE INSTALLATA" --column="VERSIONE DA INSTALLARE" "${aur_ok[@]}" 2>/dev/null) ; numero=$(($(grep -o " " <<<"$update" | wc -l)+1))
#         seleziona ; numero=$(grep -o " " <<<"$update" | wc -l)
          [[ "${update// /}" != "" ]] && 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
mancano l'uso di ~/.cache/AUR e la rimozione della cartella di compilazione del pacchetto ma fammi sapere se quest'ultima operazione abbia controindicazioni.
 
Ultima modifica:
  • Mi piace
Reazioni: e_ale92

rebellion

Utente Èlite
1,593
506
CPU
intel i5 9500
Dissipatore
cooler master hyper 212 evo
Scheda Madre
asrock b360 pro4
HDD
samsung 850evo 250GB+samsung 840pro 128GB+seagate barracuda 2TB+seagate barracuda 2TB
RAM
corsair vengeance lpx ddr4 2133MHz 2x4GB CL13
GPU
integrata intel hd graphics 630
Audio
integrata
Monitor
samsung ue55mu6500u
PSU
xfx pro series 550w core edition
Case
mastercooler
OS
archlinux x64 + gnome3.34.1 && windows10 pro x64
Per la serie domande amletiche inutili.. :asd:
Che voi sappiate c'è qualche altro linguaggio di programmazione/scripting che può essere scritto con solamente pochi caratteri (6 nello specifico) o in modo cervellotico :asd: come javascript??[]]+(!![]+[])[+!+[]]][([][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]]+[])[!+[]+!+[]+!+[]]+(!![]+[][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]])[+!+[]+[+[]]]+([][[]]+[])[+!+[]]+(![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[+!+[]]+([][[]]+[])[+[]]+([][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]])[+!+[]+[+[]]]+(!+[
ogni linguaggio! io riscriverei lo script in base 6 diciamo, tramite un crittografo, per eseguirlo usi il traduttore con argomento lo script crittografato evvuallà! :D
 

cdtux

Utente Èlite
1,829
911
CPU
I7 3770
Scheda Madre
Asrock Z77 Extreme 4
HDD
Samsung 850 pro 250GB
RAM
Corsair Vengeance LP 16GB
GPU
Gigabyte GTX1060 6GB
Monitor
Dell U2412M
PSU
Seasonic Focus Plus 650
Case
Corsair Graphite 760T
OS
Debian / Ubuntu
ogni linguaggio! io riscriverei lo script in base 6 diciamo, tramite un crittografo, per eseguirlo usi il traduttore con argomento lo script crittografato evvuallà! :D

A parte il cripting, tecnicamente quello sopra è un encode del codice creato utilizzando solamente 6 caratteri..
Forse la domanda corretta sarebbe: quale altro linguaggio può essere scritto utilizzando solamente un set (molto) ristretto di caratteri??

Ho aperto una discussione in programmazione, vediamo quanti insulti mi prendo :asd:
 

e_ale92

Utente Èlite
17,011
5,013
CPU
Intel® Core™ i7-920 Processor - @3.33GHz
Dissipatore
Stock Intel
Scheda Madre
Asus P6T - socket LGA 1366
HDD
Samsung 830 128GB + Samsung Spinpoint F4 320GB + Seagate Barracuda 1,5 TB
RAM
Corsair DDR3 1333MHz CL9 XMS3 DHX (3x2GB) - @1674MHz
GPU
MSI R6970 Lightning
Audio
Realtek ALC 1200
Monitor
HP 2310i
PSU
XFX Pro 750W Core Edition
Case
Cooler Master HAF 922
Periferiche
R.A.T. 5 Cyborg Mad Catz - Keycool KC84
OS
Arch Linux + Windows 10 Pro
A parte il cripting, tecnicamente quello sopra è un encode del codice creato utilizzando solamente 6 caratteri..
Forse la domanda corretta sarebbe: quale altro linguaggio può essere scritto utilizzando solamente un set (molto) ristretto di caratteri??

Ho aperto una discussione in programmazione, vediamo quanti insulti mi prendo :asd:
ma a che ti serve? xD
 

e_ale92

Utente Èlite
17,011
5,013
CPU
Intel® Core™ i7-920 Processor - @3.33GHz
Dissipatore
Stock Intel
Scheda Madre
Asus P6T - socket LGA 1366
HDD
Samsung 830 128GB + Samsung Spinpoint F4 320GB + Seagate Barracuda 1,5 TB
RAM
Corsair DDR3 1333MHz CL9 XMS3 DHX (3x2GB) - @1674MHz
GPU
MSI R6970 Lightning
Audio
Realtek ALC 1200
Monitor
HP 2310i
PSU
XFX Pro 750W Core Edition
Case
Cooler Master HAF 922
Periferiche
R.A.T. 5 Cyborg Mad Catz - Keycool KC84
OS
Arch Linux + Windows 10 Pro
YEAAAHH!
no a me il PKGBUILD non serve, mentre ho bisogno del $nomepacchetto.tar.gz perchè ne confronto l'hash con quello su AUR per stabilire (con l'incrocio del confronto dei numeri versione) se il pacchetto è aggiornato oppure no. considera che l'archivio (il tar.gz) è poca roba; mentre posso eliminare la cartella della compilazione se non c'è qualche controindicazione?
verranno segnalate tutte: principali opzionali e per la compilazione!:sisi: quelle non installate e presenti su AUR non vengono installate, devi farlo tu a mano così decidi per bene se farlo oppure no; questo è uno scrpt di aggiornamento.
e quando ho finito, spero entro fine settimana, che fò?!:look: :pazzo: :asd:


EDIT: @e_ale92
Codice:
#!/bin/bash
#aur_update.sh v4.2
#script di aggiornamento pacchetti installati da AUR, by rebellion
#preferibilmente da lanciare tramite terminale per visualizzare messaggi di dialogo con lo script
#a es. con: gnome-terminal --geometry 75x25 --hide-menubar --title=\"AUR update\" -e \'sh -c \"sh /home/$USER/aur_update.sh\"\'
controllo_dipendenze () {
   check_dip_aur="ok" ; a="\"Depends\"" ; aa="\",\""
   dipendenze=$(curl -s "https://aur.archlinux.org/rpc.php?v=5&type=info&arg=$package_name")
   make_dip=${dipendenze##*MakeDepends} ; if [ "$make_dip" = "$dipendenze" ] ; then make_dip="nessuna" ; else make_dip=${make_dip%%]*} ; make_dip=${make_dip:4} ; make_dip=${make_dip:0: -1} ; make_dip=${make_dip//$aa/ } ; fi
   main_dip=${dipendenze##*$a} ; if [ "$main_dip" = "$dipendenze" ] ; then main_dip="nessuna" ; else main_dip=${main_dip%%]*} ; main_dip=${main_dip:3} ; main_dip=${main_dip:0: -1} ; main_dip=${main_dip//$aa/ } ; fi
   opt_dip=${dipendenze##*OptDepends} ; if [ "$opt_dip" = "$dipendenze" ] ; then opt_dip="nessuna" ; else opt_dip=${opt_dip%%]*} ; opt_dip=${opt_dip:4} ; opt_dip=${opt_dip:0: -1} ; opt_dip=${opt_dip//$aa/ } ; fi
   echo "DIPENDENZE:"
   if [ "$main_dip" != "nessuna" ] ; then
      numero_dipendenze=$(($(grep -o " " <<<"$main_dip" | wc -l)+1))
      for ((ii=1;ii<=$numero_dipendenze;ii++)) ; do dip=$(echo $main_dip | awk -v xx=$ii '{print$xx}') ; dip=${dip%%>*} ; dip=${dip%%<*} ; dip=${dip%%=*} ; if pacman -Q | grep -w "$dip" 1>/dev/null ; then dips=$dip"-----> ${LIGHT_GREEN}installata${NC}" ; else dips=$dip"-----> ${LIGHT_RED}non installata${NC}" ; fi
         if pacman -Si "$dip" &>/dev/null ; then dips=$dips"(community)" ; else dips=$dips"(AUR)" ; check_dip_aur="no" ; fi
         echo -e $dips
      done
   else echo "NESSUNA dipendenza richiesta."
   fi
   echo -e "\nDIPENDENZE OPZIONALI:"
   if [ "$opt_dip" != "nessuna" ] ; then
      numero_dipendenze=$(($(grep -o " " <<<"$opt_dip" | wc -l)+1))
      for ((ii=1;ii<=$numero_dipendenze;ii++)) ; do dip=$(echo $opt_dip | awk -v xx=$ii '{print$xx}') ; dip=${dip%%>*} ; dip=${dip%%<*} ; dip=${dip%%=*} ; if pacman -Q | grep -w "$dip" 1>/dev/null ; then dips=$dip"-----> ${LIGHT_GREEN}installata${NC}" ; else dips=$dip"-----> ${LIGHT_RED}non installata${NC}" ; fi
         if pacman -Si "$dip" &>/dev/null ; then dips=$dips"(community)" ; else dips=$dips"(AUR)" ; fi
         echo -e $dips
      done
   else echo "NESSUNA dipendenza opzionale richiesta."
   fi
   echo -e "\nDIPENDENZE PER LA COMPILAZIONE (MAKE):"
   if [ "$make_dip" != "nessuna" ] ; then
      numero_dipendenze=$(($(grep -o " " <<<"$make_dip" | wc -l)+1))
      for ((ii=1;ii<=$numero_dipendenze;ii++)) ; do dip=$(echo $make_dip | awk -v xx=$ii '{print$xx}') ; dip=${dip%%>*} ; dip=${dip%%<*} ; dip=${dip%%=*} ; if pacman -Q | grep -w "$dip" 1>/dev/null ; then dips=$dip"-----> ${LIGHT_GREEN}installata${NC}" ; else dips=$dip"-----> ${LIGHT_RED}non installata${NC}" ; fi
         if pacman -Si "$dip" &>/dev/null ; then dips=$dips"(community)" ; else dips=$dips"(AUR)" ; check_dip_aur="no" ; fi
         echo -e $dips
      done
   else echo "NESSUNA dipendenza per la compilazione richiesta."
   fi
   echo ; read -s -p "premi invio per continuare..."
}
seleziona () {
   selezione=()
   row_max=$((${#aur_ok[@]}/4))
   packages="" ; for ((i=0;i<$row_max;i++)) ; do ii=$(( (i*4)+1 )) ; packages=$packages" "${aur_ok[$ii]} ; done
   clear ; echo -e "PACCHETTI DA AGGIORNARE:\n\n" ; for ((i=0;i<$row_max;i++)) ; do package=$(echo $packages | awk -v x=$(( $i+1 )) '{print$x}') ; echo "( ) $package" ; done ; echo -e "\n----------------\ncurs.su/curs.giù per scorrere - invio per (de)selezionare - q per uscire\n----------------"
   tput sc ; tput cuu $(( $row_max+4 )) ; tput cuf 1 ; riga=1
   while [ "$tasto" != "q" ] ; do
      read -s -N1
      ott1="$REPLY"
      read -s -N2 -t 0.001
      ott2="$REPLY"
      read -s -N1 -t 0.001
      ott3="$REPLY"
      tasto="$ott1$ott2$ott3"
      case "$tasto" in
         $'\x1b\x5b\x41')
            if [ "$riga" = 1 ] ; then tput cud $(( $row_max-1 )) ; riga=$row_max ; else tput cuu 1 ; riga=$(( $riga-1 )) ; fi ;;
         $'\x1b\x5b\x42')
            if [ "$riga" = $row_max ] ; then tput cuu $(( $row_max-1 )) ; riga=1 ; else tput cud 1 ; riga=$(( $riga+1 )) ; fi ;;
         "
")
            if [ "${selezione[$riga]}" = "" ] ; then echo "x" ; selezione[$riga]="$riga"; else echo " " ; selezione[$riga]="" ; fi ; tput cuu 1 ; tput cuf 1 ; if [ "$riga" = $row_max ] ; then tput cuu $(( $row_max-1 )) ; riga=1 ; else tput cud 1 ; riga=$(( $riga+1 )) ; fi ;;
      esac
   done
   tput rc
   update=""
   package="" ; for i in "${selezione[@]}" ; do package=$(echo $packages | awk -v x=$i '{print$x}') ; update=$update" "$package ; done
}
updating () {
      risultato=""
      for ((i=1;i<=$numero;i++)) ; do
         clear
         echo -n "Controllo connessione internet..."
         if ping -q -c 1 -W 1 8.8.8.8 >/dev/null || ping -q -c 1 -W 1 google.com >/dev/null ; then
            echo "Connessione ok"
            package_name=$(echo $update | awk -v x=$i '{print$x}')
            echo "Installazione $package_name:"
            package_name_tar=$package_name".tar.gz" ; echo -n "ricerca $package_name_tar..."
            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)" || outofdate=""
            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 -e "\nControllo dipendenze del pacchetto $package_name:\n"
            controllo_dipendenze
            if [ "$check_dip_aur" = "ok" ] && dialog --title "pacchetto $package_name" --backtitle "Aggiornamento AUR" --yesno "Verranno installate eventuali dipendenze mancanti presenti in community. 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_nella_compilazione(make)\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
               [[ "$check_dip_aur" = "ok" ]] && risultato=$risultato" "$package_name"-->non_installato_per_scelta_utente\n" || risultato=$risultato" "$package_name"-->non installato per mancanza dipendenze AUR\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 "[s]udo pacman") ; 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 ping -q -c 1 -W 1 8.8.8.8 >/dev/null || ping -q -c 1 -W 1 google.com >/dev/null ; 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}')
      tput cuu 1 ; tput cuf 47 ; echo "[$(($i+1))/$numero_AUR]" ; tput el ; echo ${aur[$i]} ; tput cuu 1
      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}')
         package_path=$(find /home/$USER -type f -name "${aur[$i]}.tar.gz") ; package_path=$(echo $package_path | awk '{print$1}')
         [[ $package_path != "" ]] && hash_old=$(md5sum $package_path | awk '{print$1}') || hash_old=""
         [[ $hash_old != "" ]] && hash_new=$(curl -s https://aur.archlinux.org/cgit/aur.git/snapshot/"${aur[$i]}.tar.gz" | md5sum | awk '{print$1}') || hash_new=""
         if [ "$versione_new" != "$versione_old" ] && ([ "$hash_old" != "$hash_new" ] || [ "$hash_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
            if [ "$hash_old" = "" ] ; then descrizione=$descrizione"_firme_non_confrontabili" ; 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
      tput cuu 1 ; tput el ; echo "RISULTATO RICERCA PACCHETTI AGGIORNABILI:"
      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 --separator=" " --column="" --column="PACCHETTO" --column="VERSIONE INSTALLATA" --column="VERSIONE DA INSTALLARE" "${aur_ok[@]}" 2>/dev/null) ; numero=$(($(grep -o " " <<<"$update" | wc -l)+1))
#         seleziona ; numero=$(grep -o " " <<<"$update" | wc -l)
          [[ "${update// /}" != "" ]] && 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
mancano l'uso di ~/.cache/AUR e la rimozione della cartella di compilazione del pacchetto ma fammi sapere se quest'ultima operazione abbia controindicazioni.

i vari aur helper lo conservano lo stesso... buh vabbè puoi anche toglierlo, tanto basta avere il tar.xz compilato :)

la cartella di compilazione non serve. una volta compilato, non credo serva... a meno di non voler vedere i file di compilazione, cosa che a noi non serve fare xD quindi se ha compilato con successo, puoi cancellare senza problemi.

ottimo per le dipendenze!

ahahahahah ti stai gasando, ve? ahahah per questo dicevo di githubbare come i veri pro :figo: fare i commit è così professionale e figo che ti fa sentire potente :figo:
 
  • Mi piace
Reazioni: rebellion

cdtux

Utente Èlite
1,829
911
CPU
I7 3770
Scheda Madre
Asrock Z77 Extreme 4
HDD
Samsung 850 pro 250GB
RAM
Corsair Vengeance LP 16GB
GPU
Gigabyte GTX1060 6GB
Monitor
Dell U2412M
PSU
Seasonic Focus Plus 650
Case
Corsair Graphite 760T
OS
Debian / Ubuntu
  • Mi piace
Reazioni: e_ale92

Entra

oppure Accedi utilizzando
Discord Ufficiale Entra ora!

Discussioni Simili