Apache2 dauerhaft entfernen

109

Es scheint, dass ein einfaches apt-get remove apache2nicht vollständig entfernt wird, apache2da ich es immer noch auf einem der Prozesse sehen kann, wenn es ausgeführt wird top. Wie entfernt man apache2komplett auf seinem Ubuntu Server?

Es ist in der Tat nicht entfernt:

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

Aber wenn ich apt-get remove apache2nochmal mache :

# 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
quelle
3
rennen apt-get purge apache2. Es werden alle Konfigurationsdateien entfernt.
Manula Waidyanatha
Ich folgte mit apt-get autoremoveund dannsudo rm -rf /etc/apache2
Matthew Hegarty

Antworten:

153

apache2ist ein Metapaket, das nur andere Pakete auswählt. Wenn Sie Apache durch Installieren dieses Pakets installiert haben, müssen Sie dies nur ausführen, um die automatisch ausgewählten Pakete zu bereinigen:

sudo apt autoremove

Wenn dies nicht funktioniert, haben Sie möglicherweise einen der abhängigen Server manuell installiert. Sie können alle apache2-Pakete aus dem All anvisieren und das Los zerstören:

sudo apt remove apache2.*

Um zu einem späteren Zeitpunkt herauszufinden, aus welchem ​​Paket eine Binärdatei stammt, können Sie Folgendes ausführen:

dpkg -S `which apache2`

Ich würde davon ausgehen, dass dies apache2.2-bin(zum Zeitpunkt des Schreibens) wiederkommt .

Oli
quelle
6
Verwenden Sie auch --purge, wenn die Konfigurationsdateien ebenfalls gelöscht werden sollen: apt-get --purge remove apache2
xyious
1
Der letzte Befehl wird apache2-mpm-prefork: /usr/sbin/apache2
Jürgen Paul
1
@Severus fair genug - ich habe nur geraten, aber das macht Sinn. Ja, ich würde nur den Platzhalter verwenden, aber ein Auge darauf haben, was gelöscht wird. Apache2-Common wird von einigen Tools verwendet, die nicht Apache2-httpd sind. Möglicherweise müssen Sie danach etwas neu installieren.
Oli
@Oli Entfernen von Dingen mit einem regulären Ausdruck "apache2 *" ist gefährlich, viele Dinge werden entfernt
jhbsk
1
@jasdeepkhalsa Es ist nicht "gefährlich". apt-get(im Gegensatz zu apt-cache) beschränkt sich die Suche auf Namen, ist also nicht so weitreichend. Alles, was erfasst wird, ist von Apache oder Apache abhängig. Überprüfen Sie es selbst mitapt-get -s remove apache2*
Oli
67

Führen Sie die folgenden Schritte aus, um den apache2Dienst zu entfernen Terminal:

  1. Stoppen Sie zuerst den Apache2-Dienst, wenn er ausgeführt wird mit: sudo service apache2 stop
  2. Entfernen und bereinigen Sie nun alle Apache2-Pakete mit:

    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. Führen Sie sudo apt-get autoremoveabschließend nur für den Fall, dass eine andere Bereinigung erforderlich ist, aus

Sie können die folgenden zwei Tests durchführen, um zu bestätigen, dass Apache entfernt wurde:

  1. which apache2 - sollte eine leere Zeile zurückgeben
  2. sudo service apache2 start - Sollte zurückkehren apache2: unrecognized service
jhbsk
quelle
4
sudo apt-get bereinigen apache2 apache2-utils apache2-bin apache2.2-common
Hermann Ingjaldsson
funktioniert perfekt für mich
Nechtan
44

Ein sehr einfacher und unkomplizierter Weg, der für mich funktioniert hat, ist folgender:

  1. Stoppen Sie apache2.

    sudo service apache2 stop
    
  2. Deinstallieren Sie Apache2 und seine abhängigen Pakete.

    sudo apt-get purge apache2 apache2-utils apache2.2-bin apache2-common
    
  3. Verwenden Sie die Option zum automatischen Entfernen, um andere Abhängigkeiten zu beseitigen.

    sudo apt-get autoremove
    
  4. Überprüfen Sie, ob Konfigurationsdateien vorhanden sind, die nicht entfernt wurden.

    whereis apache2
    
  5. Wenn Sie wie folgt eine Antwort erhalten, apache2: /etc/apache2entfernen Sie das Verzeichnis und die vorhandenen Konfigurationsdateien.

    sudo rm -rf /etc/apache2  
    

Quelle: So deinstallieren und entfernen Sie Apache2 unter Ubuntu oder Debian von Dan Nanni

Chris S
quelle
1
Für mich war es: sudo apt-get bereinigen apache2 apache2-utils apache2-bin apache2.2-common
Hermann Ingjaldsson
2

Überprüfen Sie zuerst, ob Sie den richtigen Paketnamen verwenden. IMO-korrekter Paketname ist: apache2.x-common

Wenn Sie das Paket einschließlich der Konfigurationsdateien vollständig entfernen möchten, versuchen Sie Folgendes:

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

Nehmen Sie sich Zeit, um zu überprüfen, ob Sie ein anderes Paket apache2.2-binals Ubuntu 16.04 verwendenapache2.4-bin

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

Emma
quelle
-1

Keiner der Ratschläge auf diesen Seiten hat für mich funktioniert. Ich wurde gezwungen, dies zu tun ...

apt-get remove --purge php* libapache2* apache2*
SamTzu
quelle
@ Melebius - Richtig. Sie können es jedoch genauso wie Apache neu installieren. Wenn Ihr Webserver ausfällt und 100 Clients Sie anrufen, um ein Update anzufordern, tun Sie dies letztendlich. Hoffe, Sie haben eine Sicherungskopie Ihres PHP-Konfigurationsordners.
SamTzu
Wenn in der Frage nach dem Entfernen von Apache gefragt wird, sollte eine Antwort nicht dazu führen, dass PHP als Nebeneffekt entfernt wird, ohne dass dies bemerkt wird. Obwohl PHP hauptsächlich zusammen mit Apache verwendet wird, kann es auch an anderer Stelle im System verwendet werden. Auf der anderen Seite könnten andere Interpreter für Apache verwendet werden, z. B. Passenger (Ruby on Rails). Warum entfernst du diese nicht?
Melebius
@Malebius - Natürlich sollte es, wenn Sie nicht alles Apache entfernen können, das ohne es in Verbindung steht. Vor allem, wenn Sie Apache nicht neu installieren können, ohne zuvor PHP entfernt zu haben. Ich habe dieses Durcheinander nicht erzeugt, kann mich aber normalerweise darin zurechtfinden. - Sam
SamTzu