Desinstalador de aplicativos.
Publicado por David 02/08/2007
[ Hits: 6.370 ]
Homepage: http://twitter.com/dias_david
Alguns programas como google earth, picasa, unreal e outros joguinhos são bem bacanas e fáceis de se instalar, porém, muitas vezes a desinstalação torna-se um suplício.
Esse script feito para o KDE (Kurumin e Kubuntu, por exemplo) é uma mão na roda nesses casos.
Quem se interessar em portá-lo para outras linguagens de scripts, como zenitty e Dialog, fique a vontade.
#!/bin/sh # # Script legal para desinstalar programinhas que não tem desinstalador # # Desenvolvido por professordavid@gmail.com # # Colabore para que este script continue LIVRE e FUNCIONAL. ############################################################################ # Verifica pelo kdialog if ! which kdialog; then echo "Kdialog não foi encontrado em seu sistema. Voce deve instalar o KDE para executar esse script" exit ; fi # Verificação de permissão do sudo. # ( Obrigado à Carlos E. Morimoto ) if ! echo a | sudo -S whoami; then kdialog --yesno "Você não tem permissão suficientes para executar esse script. Gostaria de ativar o sudo para sua execução? Ps.: Será necessário saber a senha de root" if [ $? = 0 ];then kdesu "echo `whoami` ALL = NOPASSWD: ALL >> /etc/sudoers"; else kdialog --error "O desinstalador não poderá ser executado." exit ; fi fi # Limpa pesquisa anterior. if [ -e /tmp/desinstalador ]; then echo "Limpando pesquisa anterior" echo "sudo rm -rf /tmp/desinstalador" sudo rm -rf /tmp/desinstalador fi dia='kdialog --title Desinstalar --caption Programas --icon linuxconf ' msg1="Digite o nome do programa que você quer desinstalar" msg2="Localizando e removendo seu aplicativo, isso pode levar vários minutos." alvo=$($dia --inputbox "$msg1") if [ -z $alvo ]; then exit; fi if [ `echo $alvo |wc -w ` -gt 1 ]; then $dia --error "Escreva apenas uma única palavra para o seu programa. ex: googleearth" exit; fi $dia -passivepopup "$msg2" & progress=`$dia --progressbar "Preparando a desinstalação" 9` dcop $progress setProgress 1 dcop $progress setLabel "Iniciando busca" sleep 1 if [ ! -e /tmp/updatedb ];then pidia=`ps ax |grep kdialog |grep passivepopup |cut -d " " -f 2`; sudo kill -9 $pidia sleep 1 $dia --passivepopup "Na primeira atualização de banco de dados, a busca costuma demorar varios minutos. Essa espera é normal, seu computador não está travado :-D " & touch /tmp/updatedb dcop $progress setProgress 2 dcop $progress setLabel "Atualizando banco de dados pela primeira vez" sudo updatedb --prunefs='smbfs cifs'; else dcop $progress setProgress 2 dcop $progress setLabel "Atualizando banco de dados" sleep 1 fi locate $alvo > /tmp/desinstalador dcop $progress setProgress 5 dcop $progress setLabel "Localizando arquivos de $alvo" sleep 1 dcop $progress setProgress 7 dcop $progress setLabel "Busca por $alvo finalizada" sleep 1 qtfiles=`cat /tmp/desinstalador |wc -l` if [ $qtfiles = 0 ]; then dcop $progress setProgress 9 dcop $progress setLabel "erro encontrado..." sleep 1 dcop $progress close $dia --error "Nenhum arquivo com $alvo foi encontrado. Revise sua busca." exit ; else dcop $progress setProgress 9 dcop $progress setLabel "encontrados $qtfiles arquivos com o nome $alvo. Preparando-se para remover." sleep 1 dcop $progress close fi $dia --yesno "Serão deletados $qtfiles arquivos... Deseja continuar? " if [ $? != 0 ]; then exit; fi progress=`$dia --progressbar "Preparando a desinstalação" $qtfiles` bar=1 dcop $progress setProgress $bar dcop $progress setLabel "Preparando a desinstalação" sleep 1 bar=$((bar+1)) for i in `cat /tmp/desinstalador`; do sudo rm -rf $i dcop $progress setProgress $bar dcop $progress setLabel "Removendo... $i"; bar=$((bar+1)) done dcop $progress close $dia --msgbox "$alvo removido com sucesso!! "
Embaralhando elementos de um vetor
Usando variáveis em shell script
Faciliando copiar DVD com 2 gravadoras pelo terminal
Nenhum comentário foi encontrado.
Fscrypt: protegendo arquivos do seu usuário sem a lentidão padrão de criptograr o disco
Faça suas próprias atualizações de pacotes/programas no Void Linux e torne-se um Contribuidor
Como rodar o Folding@home no Linux
Criando um painel de controle (Dashboard) para seu servidor com o Homepage
O Abismo entre o Código e o Chão: Saltos Tecnológicos e a Exclusão Estrutural no Brasil
Pisando no acelerador do Linux Mint: Kernel XanMod, zRAM e Ajustes de Swap
Como compilar kernel no Linux Mint
Lançamento do Brutal DOOM test 6
Consertando o erro no Brave de webgl
Solução para ter de volta as bordas e barra de títulos das janelas em zenity no Debian 13.x
Seno, Coseno, Tangente em CLIPPER (1)
Inserir uma URL num arquvo pelo Ubuntu (CLIPPER) (0)
VMWare Player não conecta na rede nem consigo intercambiar arquivos (1)









