Desinstalando o software construído a partir da fonte [duplicado]

3

Como você pode desinstalar o software que foi criado e instalado a partir do código-fonte? (Usando make install ?)

    
por Quinma 19.06.2013 / 21:02

4 respostas

4

Você ainda tem o pacote de fontes? Você pode analisar o Makefile para comandos de instalação ou pode instalá-lo novamente (com outro $PREFIX ) para capturar uma lista de arquivos instalados. Além disso, é impresso em STDOUT. Você pode então remover esses arquivos do diretório onde eles foram originalmente instalados.

Editar:

Eu só desenterrei minhas anotações sobre como fazer um script de desinstalação. Fique comigo, estou parafraseando aqui.

Depois de criar e instalar em um diretório de destino temporário, faça o seguinte. (Onde $PREFIX é o que você usou com ./configure .)

cd $PREFIX
find . -type f | cut -b 1 --complement | sed 's/^/rm -f \/usr\/local/g' > uninstall.sh
find . -type d | cut -b 1 --complement | sed 's/^/rmdir --ignore-fail-on-non-empty \/usr\/local/g' >> uninstall.sh

A saída será parecida com:

rm -f /usr/local/lib/somelib.so
rm -f /usr/local/bin/somebin
rm -f /usr/local/include/someapp/someheaders.h
rmdir --ignore-fail-on-non-empty /usr/local/share
rmdir --ignore-fail-on-non-empty /usr/local/bin
rmdir --ignore-fail-on-non-empty /usr/local/include/someapp
...

Isso não remove os diretórios críticos do sistema ( /usr/local/bin , etc) porque eles não estarão vazios. Além disso, você desejará confirmar que o script ./configure usa /usr/local como o padrão $PREFIX . Ajuste o comando sed conforme necessário.

    
por 19.06.2013 / 21:16
2

Eu verifiquei com a versão 5.4.16 do PHP


cd php-5.4.16

make clean
make clean all

find / -name php

rm -fr /usr/local/php /usr/local/lib/php /usr/local/bin/php /usr/local/include/php

whereis {php-config,phpize,php-cgi}
rm /usr/local/bin/php-config /usr/local/bin/phpize /usr/local/bin/php-cgi

whereis {pear,peardev}
rm /usr/local/bin/pear

rm /usr/local/bin/peardev


why I select phpize and php-config
because after ./configure I got this output

config.status: creating php5.spec
config.status: creating main/build-defs.h
config.status: creating scripts/phpize
config.status: creating scripts/man1/phpize.1
config.status: creating scripts/php-config
config.status: creating scripts/man1/php-config.1
config.status: creating sapi/cli/php.1
config.status: creating main/php_config.h

    
por 19.06.2013 / 23:33
0

Você poderia tentar forçar isso:

Faça um find / > /tmp/all_files e salve em um arquivo all_files . (Exclui sysfs e procfs e outros se você souber que os arquivos não estão lá)

Faça um rpm -qa | xargs rpm -al > /tmp/all_owned_files para obter uma lista de todos os arquivos "de propriedade" por rpm. (Supondo que este seja um sistema baseado em rpm, use outros comandos para sistemas não-rpm)

Faça uma diferença entre esses dois arquivos e vasculhe-os.

    
por 19.06.2013 / 23:02
-1

verifique o comando no diretório de origem

make clean

make clean all

Ou você tem que remover todos os arquivos conforme descrito por Aaron

    
por 19.06.2013 / 21:24

Tags