Atualização automática do Slackware
Publicado por Perfil removido (última atualização em 22/12/2009)
[ Hits: 6.735 ]
Simplifique na hora de atualizar o seu Slackware, torne esta tarefa automática!
Testado em Slackware 13
Requerimentos:
- slackpkg já configurado
- dialog
#!/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
Levantamento de hardware e software no Mandriva 2006
Automação para midias removíveis
LazyDocker – Interface de Usuário em Tempo Real para o Docker
Instalando COSMIC no Linux Mint
Turbinando o Linux Mint: o poder das Nemo Actions
Inteligência Artificial no desenvolvimento de software: quando começar a usar?
[Resolvido] Algo deu errado ao abrir seu perfil
Usando o VNSTAT para medir o seu consumo de internet
Habilitando clipboard manager no ambiente COSMIC
Problema com som no laptop (5)
Quando vocês pararam de testar distros? (11)
Não estou conseguindo fazer funcionar meu Postfix na versão 2.4 no Deb... (2)









