Eliminar permanentemente apache2

109

Parece que un simple apt-get remove apache2no se elimina por completo, apache2ya que todavía puedo verlo en uno de los procesos cuando se ejecuta top. ¿Cómo se elimina por apache2completo en su servidor ubuntu?

No se elimina de hecho:

~# 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

Pero cuando lo hago de apt-get remove apache2nuevo:

# 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
fuente
3
ejecutar apt-get purge apache2. Eliminará todos los archivos de configuración.
Manula Waidyanatha
Seguí esto con apt-get autoremovey luegosudo rm -rf /etc/apache2
Matthew Hegarty

Respuestas:

153

apache2es un metapaquete que solo selecciona otros paquetes. Si instaló apache instalando ese paquete, solo necesita ejecutar esto para limpiar los paquetes seleccionados automáticamente:

sudo apt autoremove

Si eso no funciona, es posible que haya instalado uno de los dependientes manualmente. Puede apuntar a todos los apache2-paquetes desde el espacio y bombardear el lote:

sudo apt remove apache2.*

Para referencia futura, para averiguar de qué paquete proviene un binario, puede ejecutar esto:

dpkg -S `which apache2`

Esperaría que eso regrese apache2.2-bin(al momento de escribir).

Oli
fuente
66
también, use --purge si desea que también se eliminen los archivos de configuración: apt-get --purge remove apache2
xyious
1
El último comando saleapache2-mpm-prefork: /usr/sbin/apache2
Jürgen Paul
1
@Severus es bastante justo, solo estaba adivinando, pero eso tiene sentido. Sí, solo usaría el comodín, pero estoy atento a lo que va a eliminar. Apache2-common es utilizado por algunas herramientas que no son el httpd de apache2, por lo que es posible que deba reinstalar algo después.
Oli
@Oli Eliminar cosas con una expresión regular 'apache2 *' es peligroso, muchas cosas terminan siendo eliminadas
jhbsk
1
@jasdeepkhalsa No es "peligroso". apt-get(a diferencia apt-cache) limita sus búsquedas solo a nombres, por lo que no es tan amplio. Todo lo que captura es Apache o depende de Apache. Compruébelo usted mismo conapt-get -s remove apache2*
Oli
67

Siga estos pasos para eliminar el apache2servicio usando Terminal:

  1. Primero detenga el servicio apache2 si se está ejecutando con: sudo service apache2 stop
  2. Ahora elimine y limpie todos los paquetes de apache2 con:

    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. Finalmente, ejecute sudo apt-get autoremovesolo en caso de que sea necesaria otra limpieza

Puede hacer las siguientes dos pruebas para confirmar que se ha eliminado Apache:

  1. which apache2 - debería devolver una línea en blanco
  2. sudo service apache2 start - debería volver apache2: unrecognized service
jhbsk
fuente
44
sudo apt-get purge apache2 apache2-utils apache2-bin apache2.2-common
Hermann Ingjaldsson el
funciona perfecto para mí
Nechtan
44

Una manera muy simple y directa que funcionó para mí es la siguiente:

  1. Deja de apache2.

    sudo service apache2 stop
    
  2. Desinstale Apache2 y sus paquetes dependientes.

    sudo apt-get purge apache2 apache2-utils apache2.2-bin apache2-common
    
  3. Utilice la opción de eliminación automática para deshacerse de otras dependencias.

    sudo apt-get autoremove
    
  4. Compruebe si hay archivos de configuración que no se hayan eliminado.

    whereis apache2
    
  5. Si obtiene una respuesta de la siguiente manera, apache2: /etc/apache2elimine el directorio y los archivos de configuración existentes.

    sudo rm -rf /etc/apache2  
    

Fuente: Cómo desinstalar y eliminar Apache2 en Ubuntu o Debian por Dan Nanni

Chris S
fuente
1
Para mí fue: sudo apt-get purge apache2 apache2-utils apache2-bin apache2.2-common
Hermann Ingjaldsson
2

Primero verifique si está usando el nombre correcto del paquete, el nombre correcto del paquete IMO es: apache2.x-common

Si desea eliminar por completo el paquete, incluidos los archivos de configuración, intente:

    dpkg --purge apache2.2-common
Venta de Amol
fuente
1

Tómese el tiempo para verificar si está utilizando un paquete diferente apache2.2-binpara Ubuntu 16.04, el último esapache2.4-bin

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

Emma
fuente
-1

Ninguno de los consejos en estos sitios me funcionó. Me vi obligado a hacer esto ...

apt-get remove --purge php* libapache2* apache2*
SamTzu
fuente
@Melebius - Correcto. Pero siempre puede reinstalarlo de la misma manera que puede reinstalar Apache. Cuando su servidor web está inactivo y 100 clientes lo llaman para exigir una actualización, esto es lo que termina haciendo. Espero que tengas una copia de seguridad de tu carpeta de configuración de php.
SamTzu
Si la pregunta solicita eliminar Apache, una respuesta no debería eliminar PHP como efecto secundario, además, sin previo aviso. Aunque PHP se usa principalmente junto con Apache, también se puede usar en otras partes del sistema. Por otro lado, puede haber otros intérpretes utilizados con Apache, por ejemplo, pasajeros (Ruby on rails). ¿Por qué no eliminas estos?
Melebius
@Malebius: por supuesto, debería hacerlo si no puede eliminar completamente todo lo relacionado con Apache sin él. Especialmente si no puede reinstalar Apache en funcionamiento sin eliminar primero PHP. No creé este desastre, pero generalmente puedo navegar por él. - Sam
SamTzu