Постійне видалення apache2


109

Здається, що простий apt-get remove apache2не видаляється повністю, apache2оскільки я все ще бачу його на одному з процесів під час запуску top. Як можна apache2повністю видалити його з сервера ubuntu?

Це дійсно не видалено:

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

Але коли я apt-get remove apache2знову:

# 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
бігати apt-get purge apache2. Це видалить усі конфігураційні файли.
Manula Waidyanatha

Я дотримувався цього, apt-get autoremoveа потімsudo rm -rf /etc/apache2
Меттью Хегарті

Відповіді:


153

apache2це метапакет, який просто вибирає інші пакети. Якщо ви встановили apache, встановивши цей пакет, вам потрібно просто запустити це, щоб очистити автоматично вибрані пакети:

sudo apt autoremove

Якщо це не працює, ви, можливо, встановили одного з утриманців вручну. Ви можете орієнтуватись на всі apache2-пакунки з космосу та заряджати партію:

sudo apt remove apache2.*

Для подальшої довідки, щоб дізнатися, з якого пакету походить двійковий код, можна запустити це:

dpkg -S `which apache2`

Я очікував би, що повернеться з ним apache2.2-bin(під час написання).


6
також використовуйте --purge, якщо ви хочете також видалити файли конфігурації: apt-get --purge remove apache2
xyious

1
Остання команда виходитьapache2-mpm-prefork: /usr/sbin/apache2
Юрген Пол

1
@Severus досить справедливо - я просто здогадувався, але це має сенс. Так, я б просто застосував підстановку, але пильно дивився на те, що буде видалено. apache2-common використовується деякими інструментами, які не є apache2 httpd, тому вам може знадобитися перевстановити якусь річ після.
Олі

@Oli Видалення регексу "apache2 *" небезпечно, навантаження речей видаляються
jhbsk

1
@jasdeepkhalsa Це не "небезпечно". apt-get(на відміну від apt-cache) обмежує його пошук лише іменами, так що це не так далекосяжно. Все, що вона захоплює, залежить від Apache або Apache. Перевірте це саміapt-get -s remove apache2*
Олі

67

Виконайте наступні дії, щоб видалити apache2службу, використовуючи Terminal:

  1. Спочатку зупиніть службу apache2, якщо вона працює з: sudo service apache2 stop
  2. Тепер видаліть та очистіть усі пакети apache2 за допомогою:

    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. Нарешті, запустіть про sudo apt-get autoremoveвсяк випадок, якщо потрібна будь-яка інша очистка

Ви можете зробити наступні два тести, щоб підтвердити, що апаш видалено:

  1. which apache2 - повинен повернути порожній рядок
  2. sudo service apache2 start - повинні повернутися apache2: unrecognized service

4
sudo apt-get purge apache2 apache2-utils apache2-bin apache2.2-розповсюджений
Hermann Ingjaldsson

працює для мене ідеально
Нехтан,

44

Дуже простий і простий спосіб, який працював для мене, полягає в наступному:

  1. Зупиніть apache2.

    sudo service apache2 stop
    
  2. Видаліть Apache2 та його залежні пакети.

    sudo apt-get purge apache2 apache2-utils apache2.2-bin apache2-common
    
  3. Використовуйте опцію авторемонту, щоб позбутися інших залежностей.

    sudo apt-get autoremove
    
  4. Перевірте, чи є файли конфігурації, які не були видалені.

    whereis apache2
    
  5. Якщо ви отримаєте відповідь наступним чином, apache2: /etc/apache2видаліть каталог та наявні файли конфігурації.

    sudo rm -rf /etc/apache2  
    

Джерело: Як видалити та видалити Apache2 на Ubuntu або Debian від Dan Nanni


1
Для мене це було: sudo apt-get purge apache2 apache2-utils apache2-bin apache2.2-розповсюджений
Hermann Ingjaldsson

2

Спочатку перевірте, чи використовуєте ви правильне ім'я пакета, чи правильна назва пакета IMO: apache2.x-common

Якщо ви хочете повністю видалити пакунок, включаючи конфігураційні файли, то спробуйте:

    dpkg --purge apache2.2-common

1

Знайдіть час, щоб перевірити, чи використовуєте ви інший пакет apache2.2-binдля Ubuntu 16.04apache2.4-bin

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


-1

Жодна порада на цих сайтах не працювала для мене. Мене змусили це зробити ...

apt-get remove --purge php* libapache2* apache2*

@Melebius - Правильно. Але ви завжди можете його перевстановити так само, як ви можете перевстановити Apache. Коли ваш веб-сервер не працює і 100 клієнтів закликають вас вимагати оновлення, саме це ви і робите. Сподіваюся, у вас є резервна копія вашої конфігураційної папки php.
SamTzu

Якщо питання вимагає видалити Apache, відповідь не повинен видаляти PHP як побічний ефект, крім того, без будь-якого повідомлення. Хоча PHP використовується в основному разом з Apache, він може бути використаний і в інших місцях системи. З іншого боку, можуть бути й інші перекладачі, які використовуються з Apache, наприклад пасажир (Ruby on the rail). Чому б їх не зняти?
Мелебій

@Malebius - Звичайно, це слід, якщо ви не зможете повністю видалити все, що пов'язано з Apache, без нього. Особливо, якщо ви не можете перевстановити працюючий Apache, попередньо не видаливши PHP. Я не створював цього безладу, але зазвичай можу орієнтуватися. - Сем
SamTzu
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.