Removendo permanentemente o apache2

109

Parece que um simples apt-get remove apache2não remove completamente, apache2pois ainda o vejo em um dos processos em execução top. Como se remove apache2completamente em seu servidor ubuntu?

Na verdade, não é removido:

~# which apache2
/usr/sbin/apache2
~# whereis apache2
apache2: /usr/sbin/apache2 /etc/apache2 /usr/lib/apache2 /usr/share/apache2 /usr/share/man/man8/apache2.8.gz

Mas quando eu faço apt-get remove apache2novamente:

# apt-get remove apache2
Reading package lists... Done
Building dependency tree
Reading state information... Done
Package apache2 is not installed, so not removed
0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
Jürgen Paul
fonte
3
correr apt-get purge apache2. Ele removerá todos os arquivos de configuração.
Manula Waidyanatha
Eu segui isso com apt-get autoremovee entãosudo rm -rf /etc/apache2
Matthew Hegarty

Respostas:

153

apache2é um metapacote que apenas seleciona outros pacotes. Se você instalou o apache instalando esse pacote, basta executar isso para limpar os pacotes selecionados automaticamente:

sudo apt autoremove

Se isso não funcionar, você pode ter instalado um dos dependentes manualmente. Você pode direcionar todos os apache2-pacotes do espaço e destruir o lote:

sudo apt remove apache2.*

Para referência futura, para descobrir de qual pacote é um binário, você pode executar o seguinte:

dpkg -S `which apache2`

Eu esperaria que isso voltasse com apache2.2-bin(no momento da redação).

Oli
fonte
6
Também, use --purge se você deseja que os arquivos de configuração a ser eliminado assim: apt-get --purge remover apache2
xyious
1
O último comando é emitidoapache2-mpm-prefork: /usr/sbin/apache2
Jürgen Paul
1
@Everus justo o suficiente - eu estava apenas adivinhando, mas isso faz sentido. Sim, eu apenas usaria o curinga, mas de olho no que ele vai excluir. O apache2-common é usado por algumas ferramentas que não são o httpd do apache2; portanto, talvez seja necessário reinstalar alguma coisa depois.
Oli
@Oli Remover coisas com um regex 'apache2 *' é perigoso, muitas coisas acabam sendo removidas
jhbsk
1
@jasdeepkhalsa Não é "perigoso". apt-get(ao contrário apt-cache) limita suas pesquisas apenas a nomes, para que não seja tão abrangente. Tudo o que captura é dependente do Apache ou Apache. Verifique você mesmo comapt-get -s remove apache2*
Oli
67

Siga estas etapas para remover o apache2serviço usando Terminal:

  1. Primeiro, pare o serviço apache2 se estiver executando com: sudo service apache2 stop
  2. Agora remova e limpe todos os pacotes apache2 com:

    sudo apt-get purge apache2 apache2-utils apache2.2-bin apache2-common
    //or 
    sudo apt-get purge apache2 apache2-utils apache2-bin apache2.2-common
    
  3. Por fim, execute sudo apt-get autoremoveapenas no caso de qualquer outra limpeza necessária

Você pode executar os dois testes a seguir para confirmar que o apache foi removido:

  1. which apache2 - deve retornar uma linha em branco
  2. sudo service apache2 start - deve retornar apache2: unrecognized service
jhbsk
fonte
4
sudo apt-get purge apache2 apache2-utils apache2-bin apache2.2-comum
Hermann Ingjaldsson
funciona perfeito para mim
Nechtan
44

Uma maneira muito simples e direta que funcionou para mim é a seguinte:

  1. Pare o apache2.

    sudo service apache2 stop
    
  2. Desinstale o Apache2 e seus pacotes dependentes.

    sudo apt-get purge apache2 apache2-utils apache2.2-bin apache2-common
    
  3. Use a opção autoremove para se livrar de outras dependências.

    sudo apt-get autoremove
    
  4. Verifique se existem arquivos de configuração que não foram removidos.

    whereis apache2
    
  5. Se você receber uma resposta da seguinte maneira, apache2: /etc/apache2remova o diretório e os arquivos de configuração existentes.

    sudo rm -rf /etc/apache2  
    

Fonte: Como desinstalar e remover o Apache2 no Ubuntu ou Debian por Dan Nanni

Chris S
fonte
1
Para mim foi: sudo apt-get purge apache2 apache2-utils apache2-bin apache2.2-comum
Hermann Ingjaldsson
2

Primeiro verifique se você está usando o nome correto do pacote, o nome correto do pacote IMO é: apache2.x-common

Se você deseja remover completamente o pacote, incluindo os arquivos de configuração, tente:

    dpkg --purge apache2.2-common
Amol Sale
fonte
1

Reserve um tempo para verificar se você está usando o pacote diferente apache2.2-binpara o Ubuntu 16.04.apache2.4-bin

sudo apt-get purge apache2 apache2-utils apache2.4-bin apache2.4-common

Emma
fonte
-1

Nenhum dos conselhos nesses sites funcionou para mim. Fui forçado a fazer isso ...

apt-get remove --purge php* libapache2* apache2*
SamTzu
fonte
@Melebius - Correto. Mas você sempre pode reinstalá-lo, assim como você pode reinstalar o Apache. Quando seu servidor da web está inoperante e 100 clientes estão ligando para exigir uma atualização, é isso que você acaba fazendo. Espero que você tenha um backup da sua pasta de configuração php.
SamTzu 27/03
Se a pergunta solicitar a remoção do Apache, uma resposta não deve remover o PHP como efeito colateral, além disso, sem aviso prévio. Embora o PHP seja usado principalmente em conjunto com o Apache, ele também pode ser usado em outras partes do sistema. Por outro lado, pode haver outros intérpretes usados ​​com o Apache, por exemplo, passageiro (Ruby nos trilhos). Por que você não os remove?
Melebius 27/03
@ Malebius - Claro que deveria, se você não conseguir remover completamente tudo o que o Apache relacionou sem ele. Especialmente se você não conseguir reinstalar o Apache funcionando sem primeiro remover o PHP. Eu não criei essa bagunça, mas geralmente consigo navegar nela. - Sam
SamTzu 03/04