Trwale usuwam apache2

109

Wydaje się, że proste apt-get remove apache2nie usuwa całkowicie, apache2ponieważ nadal widzę to w jednym z procesów podczas działania top. Jak można apache2całkowicie usunąć na swoim serwerze Ubuntu?

Rzeczywiście nie został usunięty:

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

Ale kiedy apt-get remove apache2znowu to zrobię :

# 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
źródło
3
biegnij apt-get purge apache2. Spowoduje to usunięcie wszystkich plików konfiguracyjnych.
Manula Waidyanatha,
Potem śledziłem to, apt-get autoremovea potemsudo rm -rf /etc/apache2
Matthew Hegarty

Odpowiedzi:

153

apache2to metapakiet, który po prostu wybiera inne pakiety. Jeśli zainstalowałeś apache instalując ten pakiet, musisz go uruchomić, aby wyczyścić automatycznie wybrane pakiety:

sudo apt autoremove

Jeśli to nie zadziała, być może ręcznie zainstalowałeś jedną z zależności. Możesz celować w wszystkie apache2-paczki z kosmosu i nuke dużo:

sudo apt remove apache2.*

Aby dowiedzieć się w przyszłości, z którego pakietu pochodzi plik binarny, możesz uruchomić to:

dpkg -S `which apache2`

Spodziewam się, że wróci apache2.2-bin(w momencie pisania).

Oli
źródło
6
użyj także opcji --purge, jeśli chcesz również usunąć pliki konfiguracyjne: apt-get --purge remove apache2
xyious
1
Wyjście ostatniego poleceniaapache2-mpm-prefork: /usr/sbin/apache2
Jürgen Paul,
1
@Severus w porządku - po prostu zgadywałem, ale to ma sens. Tak, po prostu użyłbym symbolu wieloznacznego, ale chciałbym sprawdzić, co zamierza usunąć. apache2-common jest używany przez niektóre narzędzia, które nie są httpd apache2, więc może być konieczne późniejsze zainstalowanie.
Oli
@Oli Usuwanie rzeczy za pomocą wyrażenia regularnego „apache2 *” jest niebezpieczne, mnóstwo rzeczy zostaje usuniętych
jhbsk
1
@jasdeepkhalsa To nie jest „niebezpieczne”. apt-get(w przeciwieństwie do apt-cache) ogranicza wyszukiwanie tylko do nazw, więc nie jest tak daleko idące. Wszystko, co przechwytuje, zależy od Apache lub Apache. Sprawdź to sam zapt-get -s remove apache2*
Oli
67

Wykonaj następujące kroki, aby usunąć apache2usługę, używając Terminal:

  1. Najpierw zatrzymaj usługę apache2, jeśli jest uruchomiona z: sudo service apache2 stop
  2. Teraz usuń i wyczyść wszystkie pakiety apache2 za pomocą:

    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. Na koniec uruchom sudo apt-get autoremovena wypadek, gdyby konieczne było jakiekolwiek inne czyszczenie

Możesz wykonać następujące dwa testy, aby potwierdzić, że apache został usunięty:

  1. which apache2 - powinien zwrócić pustą linię
  2. sudo service apache2 start - powinien wrócić apache2: unrecognized service
jhbsk
źródło
4
sudo apt-get purge apache2 apache2-utils apache2-bin apache2.2-common
Hermann Ingjaldsson
działa idealnie dla mnie
Nechtan
44

Bardzo prosty i bezpośredni sposób, który działał dla mnie, jest następujący:

  1. Zatrzymaj apache2.

    sudo service apache2 stop
    
  2. Odinstaluj Apache2 i jego pakiety zależne.

    sudo apt-get purge apache2 apache2-utils apache2.2-bin apache2-common
    
  3. Użyj opcji autorove, aby pozbyć się innych zależności.

    sudo apt-get autoremove
    
  4. Sprawdź, czy są jakieś pliki konfiguracyjne, które nie zostały usunięte.

    whereis apache2
    
  5. Jeśli otrzymasz odpowiedź w następujący sposób, apache2: /etc/apache2usuń katalog i istniejące pliki konfiguracyjne.

    sudo rm -rf /etc/apache2  
    

Źródło: Jak odinstalować i usunąć Apache2 na Ubuntu lub Debian autorstwa Dan Nanni

Chris S.
źródło
1
Dla mnie było to: sudo apt-get purge apache2 apache2-utils apache2-bin apache2.2-common
Hermann Ingjaldsson
2

Najpierw sprawdź, czy używasz prawidłowej nazwy pakietu, poprawna nazwa pakietu IMO to: apache2.x-common

Jeśli chcesz całkowicie usunąć pakiet zawierający pliki konfiguracyjne, spróbuj:

    dpkg --purge apache2.2-common
Sprzedaż Amol
źródło
1

Poświęć trochę czasu, aby sprawdzić, czy używasz innego pakietu apache2.2-bindla Ubuntu 16.04, najnowszy jestapache2.4-bin

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

Emma
źródło
-1

Żadna z porad na tych stronach nie działała dla mnie. Byłem zmuszony to zrobić ...

apt-get remove --purge php* libapache2* apache2*
SamTzu
źródło
@Melebius - poprawnie. Ale zawsze możesz go ponownie zainstalować, tak jak możesz ponownie zainstalować Apache. Gdy twój serwer nie działa, a 100 klientów dzwoni do Ciebie z prośbą o aktualizację, to właśnie robisz. Mam nadzieję, że masz kopię zapasową folderu konfiguracji php.
SamTzu
Jeśli pytanie dotyczy usunięcia Apache, odpowiedź nie powinna usuwać PHP jako efekt uboczny, ponadto bez uprzedzenia. Chociaż PHP jest najczęściej używane razem z Apache, może być również używane gdzie indziej w systemie. Z drugiej strony, z Apache mogą być używane inni tłumacze, np. Pasażer (Ruby na szynach). Dlaczego ich nie usuniesz?
Melebius
@Malebius - Oczywiście powinno, jeśli nie możesz w pełni usunąć wszystkiego, co związane z Apache bez niego. Zwłaszcza jeśli nie możesz ponownie zainstalować działającego Apache'a bez uprzedniego usunięcia PHP. Nie stworzyłem tego bałaganu, ale zazwyczaj mogę się nim poruszać. - Sam
SamTzu