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.

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).


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

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


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

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


-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*

@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
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.