Desinstalador de aplicativos.
Publicado por David 02/08/2007
[ Hits: 6.360 ]
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!! "
Limpar bibliotecas não utilizadas
Copiando um arquivo matriz para vários outros com nomes diferentes...
Criar Script para apagar determinados arquivos
Cálculo de número perfeito único
Instalação do Dropbox no Debian
Nenhum comentário foi encontrado.
SynapSeq - programa para estimular as ondas cerebrais
Por que seu __DIR__ falhou ou o "inferno" dos caminhos no PHP
Preparando-se para certificações da LPI através do LPI Lab
Migração de Arch Linux para repositórios CachyOS (Uso de Instruções v3 e v4)
Jogando "Magic" gratuitamente no Linux
Zoxide e fzf no bash para incrementar o uso do Terminal
As diferencas entre o clipboard comum e a selecao ativa
Arch Linux com repos do CachyOS para otimização ou usar Gentoo?
O que você está ouvindo agora? [2] (243)
Abrir um arquivo URL pelo Clipper (7)
Eu aprendi o segredo das artes! hahaha (0)









