e_ale92
Utente Èlite
- Messaggi
- 17,011
- Reazioni
- 5,013
- Punteggio
- 228
hai provato a compilare con:ho modificato lo script, adesso controlla se c'è connessione internet e ho abbellito la conferma di aggiornamento. è uno script minimale, ti chiede il tar.gz relativo al pacchetto da aggiornare e se non trova la cartella spacchettata nella stessa directory dell'archivio non procede (io ho tutto ordinato in una cartella che chiamo AUR; ci vuole poco per procedere anche in caso contrario ma per me non serviva e non ho molto tempo); inoltre se l'aggiornamento del pacchetto richiede altre dipendenze che non sono installate lo script termina e devi tu installarle (non ho per ora tempo per rendere questa operazione automatica).
Codice:#!/bin/bash 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=$package_dir"/"$package_name package_path_old=$package_path"_old" package_dir_del_old=$package_dir_del"_old" search=$(find $package_dir -type d -name "$package_name") if [ "$search" = "" ] ; then echo "Cartella del pacchetto "$package_name" scompattato assente in "$package_dir": aggiornamento fallito." ; read -p "premi invio per continuare.." ; clear else dialog --title "pacchetto $package_name" --backtitle "Aggiornamento AUR" --yesno "Confermi l'aggiornamento?" 7 60 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" mv $package_path $package_path_old mv $package_dir_del $package_dir_del_old echo -e "Aggiornamento "$package_name" in corso..\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 ; then sudo pacman -U $package_dir_del/*.pkg.tar.xz rm $package_path_old && rm -r $package_dir_del_old echo -e "\n$package_name aggiornato, premi invio per continuare." && read else rm -r $package_dir_del && mv $package_dir_del_old $package_dir_del rm $package_path && mv $package_path_old $package_path echo -e "\nAggiornamento $package_name fallito.\nRipristinato il backup del pacchetto.\npremi invio per continuare." && read fi else echo -e "Errore nel trovare il pacchetto, aggiornamento fallito.\npremi invio per continuare.." && read rm -r $package_dir_del && mv $package_dir_del_old $package_dir_del rm $package_path && mv $package_path_old $package_path fi else echo -e "Connessione assente, aggiornamento fallito.\n premi invio per continuare.." && read fi else clear fi fi fi done exit 0
Codice:
makepkg -s