Como remover completamente o PHP?


57

Preciso limpar meu servidor a partir dos pacotes PHP 5.3 (existem muitos) para poder compilar o PHP 5.2. Qual é o método mais fácil / seguro de se livrar de todos?

Respostas:


86

Isso deve remover completamente qualquer pacote com um nome que comece com phpe qualquer coisa relacionada a ele.

sudo apt-get purge 'php*'

OK, obrigado, vocês dois. Eu só escolheu sua resposta, porque Marco não parecem ter falta de Karma :)
corev

Tudo bem, alguma idéia sobre a melhor maneira de instalar o PHP 5.2 agora?
corev 03/09/11

6
Este comando exato acabou de limpar todos os pacotes do meu sistema. Eu não aconselho ninguém a usá-lo.
perfil

13
php*o tratará como um regex, e sempre o pacote com phseu nome será removido.
muru

4
Eu sou o único a pensar que isso não é realmente uma idéia segura?
Daan

67

Eu não recomendo correr sudo apt-get purge php*.

Isso foi assustador! Felizmente, não digitei a -yopção, porque ela escolheu centenas de pacotes sem phpo nome.

sudo apt-get purge `dpkg -l | grep php| awk '{print $2}' |tr "\n" " "`

Como funciona:

Primeiro , uma lista de pacotes é gerado usando esta série de comandos: dpkg -l | grep php| awk '{print $2}' |tr "\n" " ".

Dica: Você pode executar esta parte do comando no seu terminal para ver quais pacotes seriam removidos. Você deve obter algo como: libapache2-mod-php5 php5 php5-cli php5-common php5-json

Finalmente , quando você executa o comando completo, esta lista de pacotes é passada para o sudo apt-get purge, removendo todos os pacotes.

Dica: Se lhe parecer mais seguro, você poderá executá-los com a mesma facilidade e copiar e colar a lista de pacotes para remover da seguinte maneira:sudo apt-get purge libapache2-mod-php5 php5 php5-cli php5-common php5-json


3
Esta deve ser a resposta aceita
Dark Star1

11
Parece que você está sugerindo que uma sintaxe é ruim porque é muito ampla, mas você se importa em explicar o que seu comando faz, para que as pessoas possam julgar se isso é apropriado antes de executá-lo?
Vince

2
E se aptitudenão estiver instalado ou não puder ser instalado no Ubuntu, que tal apt-get cachepesquisar?
Vicky Dev

17

Você provavelmente desejará remover todos os pacotes php * do seu sistema. Algo com um curinga deve funcionar

sudo apt-get purge php.*

Você pode estar interessado em Como reverter para o PHP 5.2 para onde ir a seguir.


5
php*o tratará como um regex, e sempre o pacote com phseu nome será removido.
muru

3

Primeiro, você precisa remover o Apache e todas as suas dependências com:

sudo apt-get purge apache2 php5 libapache2-mod-php5 mysql-server libapache2-mod-auth-mysql php5-mysql phpmyadmin

e depois:

sudo rm -rf /etc/apache2; rm -rf /etc/php5; rm -rf /var/lib/mysql; rm etc/mysql 

Se você tiver algum problema com o phpMyAdmin, tente inseri-lo no terminal:

dpkg-reconfigure phpmyadmin

*** Nota para aqueles que copiar e colar sem ler com cuidado, isso também irá remover apache, que não é o OP pediu
adavea

2
sudo apt-get -y purge libapache2-mod-php5 libapache2-mod-php5filter libexpect-php5 libgv-php5 libow-php5 php5 php5-adodb php5-auth-pam php5-cgi php5-cli php5-common php5-curl php5-dbg php5-enchant php5-exactimage php5-ffmpeg php5-fpm php5-geoip php5-gmp php5-idn php5-imagick php5-imap php5-interbase php5-intl php5-json php5-lasso php5-ldap php5-librdf php5-mapscript php5-memcache php5-memcached php5-mhash php5-midgard2 php5-ming php5-mssql php5-mysql php5-mysqlnd php5-odbc php5-pgsql php5-ps php5-pspell php5-radius php5-recode php5-remctl php5-rrd php5-sasl php5-snmp php5-sqlite php5-suhosin php5-svn php5-sybase php5-tidy php5-tokyo-tyrant php5-uuid php5-xcache php5-xdebug php5-xmlrpc php5-xsl

No seu caso, você pode procurar por todos os pacotes:

sudo aptitude search php5|awk {'print $2'}|grep -v i386|grep -v "^A"|tr "\n"  " "

e limpe-os:

sudo apt-get purge <list of packages found>

aptitudenão está instalado no meu sistema (16.04)
kleinfreund 12/12

Se você deseja instalar o aptitude, pode fazê-lo digitandosudo apt-get install aptitude
Just In Time Berlake

2

Além de quaisquer expurgos mencionados nas outras respostas, se você quiser ter certeza absoluta de que tudo foi removido, é provável que queira executar

cd /
sudo find -name "php"

O que mostra arquivos / pastas com o nome php. Você vai querer verificar cada um desses caminhos de arquivo, ou seja:

cd /usr/local/include/php
ls

E exclua-os conforme apropriado. Porém, tenha cuidado para não excluir nada que seja crítico para outro processo que você precise continuar executando, a menos que queira reinstalá-lo também.

Para remover um diretório ou arquivo, usamos o rmcomentário com o -rfsinalizador, portanto, conforme o exemplo acima, digitamos:

sudo rm -rf /usr/local/include/php

1

O regex que as duas pessoas disseram está incorreto.
Em vez de usar php.*ou php*deve-se usar^php*

Essa é a resposta certa.
Então você usaria:sudo apt-get purge "^php*"

Embora eu não recomende o uso desse método, ele é altamente automatizado e recomendo que você use sudo apt list --installed | grep phppara obter a lista de pacotes e use esses nomes de pacotes que você obteve do comando acima neste comando:

sudo apt-get purge PACKAGENAME_ONE PACKAGENAME_TWO


Isso não remove o libapache2-mod-php, por exemplo.
Patrick B.

@PatrickB. Então você tem que usar os dois ^php*ephp*
AmirHossein

Mas php.*também cobrirá os casos em que phpaparece no início do nome do pacote. Não há razão para usar os dois ^php*e php.*também deve ser ^php.*; O apt-get parece saber que php*é um glob, não um regex, mas quando você adiciona o ^personagem, ele não pode ser um glob, então você receberá todos os pacotes que começam em "ph".
Patrick B.
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.