Безвозвратно удаляя 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. Это удалит все файлы конфигурации.
Манула Вайдьяната
Я последовал за этим с, 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
@ Северус достаточно справедливый - я просто догадывался, но это имеет смысл. Да, я бы просто использовал подстановочный знак, но внимательно следил за тем, что он собирается удалить. apache2-common используется некоторыми инструментами, отличными от httpd для apache2, поэтому вам может потребоваться переустановить некоторые компоненты после.
Оли
@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всякий случай любую другую очистку в случае необходимости

Вы можете сделать следующие два теста, чтобы подтвердить, что apache был удален:

  1. which apache2 - должен вернуть пустую строку
  2. sudo service apache2 start - должен вернуться apache2: unrecognized service
jhbsk
источник
4
sudo apt-get purge apache2 apache2-utils apache2-bin apache2.2-common
Герман Ингальдссон
отлично работает для меня
Нехтан
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-common
Герман Ингальдссон
2

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

Если вы хотите полностью удалить пакет, включая файлы конфигурации, попробуйте:

    dpkg --purge apache2.2-common
Амол Сэйл
источник
1

Найдите время, чтобы проверить, используете ли вы другой пакет apache2.2-binдля Ubuntu 16.04.apache2.4-bin

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

Эмма
источник
-1

Ни один из советов на этих сайтах не работал для меня. Я был вынужден сделать это ...

apt-get remove --purge php* libapache2* apache2*
SamTzu
источник
@Melebius - правильно. Но вы всегда можете переустановить его так же, как вы можете переустановить Apache. Когда ваш веб-сервер не работает и 100 клиентов звонят вам, чтобы потребовать обновления, это то, что вы в конечном итоге делаете. Надеюсь, у вас есть резервная копия вашей папки конфигурации php.
SamTzu
Если вопрос требует удаления Apache, ответ не должен удалять PHP как побочный эффект, более того, без какого-либо уведомления. Хотя PHP в основном используется вместе с Apache, он может также использоваться в других местах системы. С другой стороны, могут быть другие переводчики, используемые с Apache, например пассажирские (Ruby on rails). Почему бы вам не удалить их?
Мелебиус
@Malebius - Конечно, это следует делать, если вы не можете полностью удалить все, что связано с Apache, без него. Особенно, если вы не можете переустановить работающий Apache, не удалив сначала PHP. Я не создавал этот беспорядок, но я обычно могу ориентироваться в нем. - Сам
СамТзу