Desinstalador de aplicativos.
Publicado por David 02/08/2007
[ Hits: 6.000 ]
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!! "
Tratamento de zeros a esquerda
Nenhum comentário foi encontrado.
Compartilhando a tela do Computador no Celular via Deskreen
Como Configurar um Túnel SSH Reverso para Acessar Sua Máquina Local a Partir de uma Máquina Remota
Configuração para desligamento automatizado de Computadores em um Ambiente Comercial
Efeito "livro" em arquivos PDF
Como resolver o erro no CUPS: Unable to get list of printer drivers
Flatpak: remover runtimes não usados e pacotes
Mudar o gerenciador de login (GDM para SDDM e vice-versa) - parte 2
Como atualizar o Debian 8 para o 10 (10)
Dica sobre iptables ACCEPT e DROP (6)
NGNIX - Aplicar SNAT para evitar roteamento assimetrico (29)
[Python] Automação de scan de vulnerabilidades
[Python] Script para analise de superficie de ataque
[Shell Script] Novo script para redimensionar, rotacionar, converter e espelhar arquivos de imagem
[Shell Script] Iniciador de DOOM (DSDA-DOOM, Doom Retro ou Woof!)
[Shell Script] Script para adicionar bordas às imagens de uma pasta