永久删除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 2012年

我紧随其后apt-get autoremove,然后sudo rm -rf /etc/apache2
Matthew Hegarty

Answers:


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 2012年

1
最后的命令输出apache2-mpm-prefork: /usr/sbin/apache2
尔根·保罗(

1
@Severus足够公平-我只是在猜测,但这是有道理的。是的,我只使用通配符,但是非常关注将要删除的内容。apache2-common由非apache2 httpd的一些工具使用,因此您可能需要在之后重新安装一些东西。
奥利(Oli)

@Oli用正则表达式'apache2 *'删除对象很危险,很多东西最终都被删除了
jhbsk 2013年

1
@jasdeepkhalsa不是“危险”。apt-get(与不同apt-cache)将其搜索限制为仅使用名称,因此它的影响范围不那么广。它捕获的所有内容都是Apache或Apache依赖的。自己检查一下apt-get -s remove apache2*
Oli

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

4
sudo apt-get purge apache2 apache2-utils apache2-bin apache2.2-common
Hermann Ingjaldsson

对我来说

44

为我工作的一种非常简单明了的方法如下:

  1. 停止apache2。

    sudo service apache2 stop
    
  2. 卸载Apache2及其相关软件包。

    sudo apt-get purge apache2 apache2-utils apache2.2-bin apache2-common
    
  3. 使用autoremove选项摆脱其他依赖项。

    sudo apt-get autoremove
    
  4. 检查是否有尚未删除的配置文件。

    whereis apache2
    
  5. 如果收到如下响应,请apache2: /etc/apache2删除目录和现有配置文件。

    sudo rm -rf /etc/apache2  
    

资料来源:Dan Nanni 如何在Ubuntu或Debian上卸载和删除Apache2


1
对我来说是:sudo apt-get purge apache2 apache2-utils apache2-bin apache2.2-common
Hermann Ingjaldsson

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*

@Melebius-正确。但是,您始终可以像重新安装Apache一样重新安装它。当您的网络服务器关闭并且有100个客户端正在打电话要求您进行更新时,这就是您最终要做的。希望您备份了php config文件夹。
SamTzu

此外,如果问题要求删除Apache,则答案不应该删除PHP,这是没有副作用的。尽管PHP通常与Apache一起使用,但它也可能在系统中的其他地方使用。另一方面,Apache可能还会使用其他解释器,例如,passenger(Ruby on rails)。为什么不删除这些?
Melebius

@Malebius-如果没有它,您当然不能完全删除与Apache相关的所有内容。特别是如果您没有先删除PHP就无法重新安装工作的Apache。我并没有造成这种混乱,但是我通常可以绕过它。-山姆
SamTzu
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.