Atualização automática do Slackware

Publicado por Perfil removido (última atualização em 22/12/2009)

[ Hits: 6.444 ]

Download dgfconf




Simplifique na hora de atualizar o seu Slackware, torne esta tarefa automática!

Testado em Slackware 13

Requerimentos:

- slackpkg já configurado
- dialog

  



Esconder código-fonte

#!/bin/bash

#verifica se o usuario logado é o root, caso nao seja ele sai do script
if [ ! `whoami` = "root" ]; then 
echo
echo
echo "########" "Você precisa do prefilegio root para atualizar" "########" 
echo
echo
sleep 1
exit 1
fi

clear

# FUNÇÔES

Manual() {

if [ -n "$zzz" ]; then

  if [ "$zzz" = aaa ];then
  
    dialog --title 'Erro' --msgbox "\nInsira um parametro valido" 0 0
    zzz=a
    Manual
    exit 1

  fi

fi

h=`echo -e "-h \t help 'manual'"`
r=`echo -e "-r \t remover os dados criados"`
rl=`echo -e "-rl \t remover os logs do slackpkg"`
i=`echo -e "-i \t instala programas"`

dialog --title 'Manual' --backtitle 'dgf' --msgbox "\n$h \n$r \n$rl \n$i"  0 0

}

#====================================================================================

# remove arquivos se desejar
Remover() {

texto=`echo -e "Deseja remover os arquivos criado pelo script?"`
dialog --title 'dgf atualização' --backtitle 'dgf' --yesno "$texto" 0 0

   case "$?" in #remove os arquivos criados se desejar

     0) 
        rm -rf $DIR
       dialog --title 'Aguarde' --infobox '\nArquivos removidos!' 0 0 ; sleep 1 ;;

     1) 
       exit 1 ;;

   esac

}

#=====================================================================================

Remover2() {

texto=`echo -e "Deseja remover os logs do slackpkg?"`
dialog --title 'dgf atualização' --backtitle 'dgf' --yesno "$texto" 0 0

      case "$?" in #remove os logs criados se desejar

        0) 
          rm -rf /var/lock/slackpkg.* 
          dialog --title 'Aguarde' --infobox '\nLogs removidos!' 0 0 ;;

        1) 
          exit 1 ;;

       esac

}

#=====================================================================================

# verifica se o slackpkg esta instalado ou baixa e instala se desejar
Atualiza() {

while [ "$s" = "$d" ] ; do
    
texto=`echo -e "Deseja baixar agora?"`
texto2=`echo -e "Instale o slackpkg para executar a atualização"`
dialog --msgbox "$texto2" 0 0 ; sleep 2
dialog --title 'dgf atualização' --backtitle 'dgf' --yesno "$texto" 0 0

    case $? in

      0) 
   dialog --title 'Atualização' --infobox '\nBaixando dependencias...' 0 0 
   wget -c "http://downloads.sourceforge.net/project/slackpkg/slackpkg/slackpkg-2.70.4/slackpkg-2.70.4-noarch-1.tgz?use_mirror=ufpr" 

   Atualiza1B() {
   texto=`echo -e "Deseja instalar agora?"`
   dialog --title 'dgf atualização' --backtitle 'dgf' --yesno "$texto" 0 0

   case "$?" in

     0) 
       dialog --title 'Instalação' --infobox 'Instalando...' 0 0
       installpkg slackpkg-*.tgz ;;

     1) 
       exit 1 ;;

   esac 

     }

     Atualiza1B ;;

      1) 
   exit 1 ;;

     esac 
   
done

}

#=====================================================================================

#verifica se o sistema esta atualizado e se o usuario quer instalar a(s) atualização(ões)
Atualiza2() {

   texto=`echo -e "Deseja atualizar seu sistema agora?"`
   dialog --title 'dgf atualização' --backtitle 'dgf' --yesno "$texto" 0 0

case "$?" in

  0) 
    dialog --title 'Aguarde' --infobox '\nAtualizando...!' 0 0
    slackpkg upgrade-all
    Remover


;;

  1) 
    Remover
  
;;  

  
esac
}

#=====================================================================================

Bloco1() {
slackpkg > $DIR/a

s=`grep "command not found" $DIR/a`
d="command not found"
}

#=====================================================================================

Bloco2() {
slackpkg check-updates > $DIR/aa

a=`grep "No news is good news" $DIR/aa` 
i="No news is good news"
}

#=====================================================================================

Diretorio() {
DIR=~/ATUALIZAÇÃO

if [ -e "$DIR" ]; then

dialog                                         \
   --title 'Aguarde'                           \
   --infobox '\nDiretorio verificado!'  \
   0 0

  else

    dialog --title 'Aguarde' --infobox '\nCriando diretorio!' 0 0 && mkdir "$DIR"

fi
}

#=====================================================================================

Atualiza() {
#verifica se o slackpkg esta atualizado, se nao estiver atualiza o slackpkg 
until [ "$a" = "$i" ] ; do

    slackpkg update 

    slackpkg check-updates > $DIR/aa 

    a=`grep "No news is good news" $DIR/aa` 
    
done
}

#=====================================================================================



#=====================================================================================



#=====================================================================================



#=====================================================================================



# FIM DAS FUNÇÔES

if [ -z "$1"  ]; then

  Diretorio

  Bloco1

  Atualiza

  Bloco2

  Atualiza

  Atualiza2
else

  if [ -z "$2" ]; then

    if [ "$1" = "-h" ]; then
      Manual
    elif [ "$1" = "-r" ]; then
      Remover
    elif [ "$1" = "-rl" ]; then
      Remover2
    elif [ "$1" = "-i" ]; then

   Diretorio
         texto=`echo -e "Digite o nome do programa:"`
   nome=$( dialog --stdout --title 'dgf atualização' --backtitle 'dgf' --inputbox "$texto" 0 0 )
   dialog --title 'Instalação' --infobox '\nVerificando possivel instalação!' 0 0 
   slackpkg install $nome > $DIR/log
   Remover

    fi

  else
    if [ "$1" = "-i" ]; then

      Diretorio
      dialog --title 'Instalação' --infobox '\nVerificando possivel instalação!' 0 0 ; sleep 1  
      slackpkg install $2 > $DIR/log
      Remover

      else

   zzz=aaa
   Manual

    fi

  fi

fi

Scripts recomendados

Gerando ISO com o camando dd, e exibindo "barra de progresso".

Restaurar backup de uma conta cpanel mesmo que ela já exista

Script em Bash para gerenciar as novas versões do Java e permitir escolher a versão pa

Backup Incremental - tar

Captura ip estatico !!


  

Comentários
[1] Comentário enviado por nilodanx52 em 22/12/2009 - 10:13h

Douglas eu to com o slackware 12.2 porem consego usar pacotes do 13(.txz) e como sou iniciante em linux ainda quero saber se esse script funfa no meu S.O.?

É um simples: SIm ou Não! rsrsrsrs

[2] Comentário enviado por removido em 22/12/2009 - 11:51h

script eh traduzido pelo shell, caso seu slackware tenha o shell "logico que tem xD" que tenha o slackpkg "caso nao tenha, instale aki na comu tem artigos sobre ele" e caso tenha o dialog "normalmente ja vem em todos os linux" vai funcionar sim xD


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts