Cómo eliminar completamente Apache2 en Linux cuando la instalación está corrupta

Artículos Guías Manuales Sistemas Linux Windows Redes MySql Binario 0 Binario Cero Artículos Guías Manuales Sistemas Linux Windows Redes MySql Binario 0 Binario Cero

En algunos sistemas Debian o derivados (como Ubuntu), al instalar o actualizar Apache2 puede aparecer el error:

ERROR: Conf javascript-common does not exist!
dpkg: error processing package apache2 (--configure):
 installed apache2 package post-installation script subprocess returned error exit status 1

Este problema se produce porque el script post-installation de apache2 intenta habilitar una configuración (a2enconf javascript-common) que no existe en el sistema. Como resultado, dpkg no puede completar la configuración del paquete, dejando a Apache en un estado roto (broken package).

Este artículo explica cómo eliminar completamente Apache2 en este escenario, evitando conflictos y liberando el puerto 80.

1. Entendiendo el problema

Cuando un paquete queda “a medias” en Debian/Ubuntu:

  • dpkg no puede continuar con otras instalaciones o desinstalaciones hasta que se configure correctamente.
  • apt-get remove o apt-get purge fallan porque dependen de que dpkg complete la configuración.
  • El servicio puede seguir ocupando el puerto 80, bloqueando a otros servidores web como Nginx.

La solución pasa por desbloquear dpkg, parar Apache y purgar completamente sus paquetes y configuraciones.

2. Creando una configuración ficticia para desbloquear dpkg

El script que falla busca el archivo:

/etc/apache2/conf-available/javascript-common.conf

Si no existe, genera el error. Podemos crear un archivo “dummy” para que dpkg lo encuentre y pueda continuar.

sudo mkdir -p /etc/apache2/conf-available
echo '# dummy to unblock purge' | sudo tee /etc/apache2/conf-available/javascript-common.conf
sudo dpkg --configure -a

Con esto, dpkg reanuda la configuración pendiente y permite continuar con la desinstalación.

3. Deteniendo y deshabilitando Apache2

Antes de eliminarlo, es recomendable detenerlo y evitar que arranque en reinicios futuros.

sudo systemctl disable --now apache2 || true

4. Purgando Apache y módulos asociados

La opción purge de apt-get elimina tanto los binarios como los archivos de configuración.

sudo apt-get purge -y apache2 apache2-bin apache2-data apache2-utils \
  libapache2-mod-php* libapache2-mod-security2 libapache2-mod-fcgid || true

Esto abarca el núcleo de Apache2 y los módulos más comunes que podrían estar instalados.

5. Eliminando dependencias y configuraciones residuales

Algunos paquetes quedan en estado rc (removed, config-files remain). Se pueden eliminar así:

sudo apt-get autoremove --purge -y
dpkg -l | awk '/^rc/{print $2}' | xargs -r sudo dpkg --purge

6. Borrando directorios de Apache (opcional)

Si no hay contenido que quieras conservar, puedes limpiar por completo las rutas de Apache:

sudo rm -rf /etc/apache2 /var/log/apache2 /var/lib/apache2
# Opcional: elimina el docroot por defecto
sudo rm -rf /var/www/html

Precaución: si tienes páginas web o configuraciones personalizadas en /var/www o /etc/apache2, haz una copia antes de borrarlas.

7. Forzando la purga si aún hay problemas

En casos extremos, se puede forzar la eliminación del paquete con dpkg:

sudo dpkg --purge --force-all apache2
sudo apt-get -f install

8. Verificando que el puerto 80 está libre

Tras eliminar Apache, puedes confirmar que el puerto 80 no está ocupado:

ss -tulpn | grep ':80' || echo "Puerto 80 libre"

Si usas Nginx como servidor o proxy inverso, puedes habilitarlo y arrancarlo:

sudo systemctl enable --now nginx

Conclusiones

Eliminar Apache2 cuando está parcialmente instalado requiere algo más que un simple apt-get remove. El proceso correcto implica:

  1. Crear una configuración ficticia para desbloquear dpkg.
  2. Detener y deshabilitar el servicio.
  3. Purgar todos los paquetes y módulos relacionados.
  4. Limpiar configuraciones y directorios residuales.
  5. Verificar que el puerto 80 está disponible para otros servicios.

Con este procedimiento, se garantiza una eliminación limpia de Apache2, evitando conflictos con otros servidores web y asegurando que el sistema quede libre de configuraciones antiguas.

Compartir:

Binario 0
Resumen de privacidad

Esta web utiliza cookies para que podamos ofrecerte la mejor experiencia de usuario posible. La información de las cookies se almacena en tu navegador y realiza funciones tales como reconocerte cuando vuelves a nuestra web o ayudar a nuestro equipo a comprender qué secciones de la web encuentras más interesantes y útiles.