问题描述
看起来很简单apt-get remove apache2
并没有完全删除apache2
,因为在运行top
时,我仍然可以在其中一个进程上看到它。如何在他的ubuntu服务器上完全删除apache2
?
它确实没有被删除:
~# 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.
最佳解决办法
apache2
是一个只包含其他软件包的元包。如果您通过安装该软件包来安装apache,则只需运行以清理自动选择的软件包即可:
sudo apt-get autoremove
如果这不起作用,您可能已经手动安装了其中一个依赖项。你可以从空间中瞄准所有的apache2-
包并且杀死很多人:
sudo apt-get remove apache2*
为了将来的参考,要找出二进制文件来自哪个软件包,可以运行以下命令:
dpkg -S `which apache2`
我希望能回到apache2.2-bin
次佳解决办法
按照以下步骤使用Terminal
删除apache2
服务:
-
首先停止apache2服务,如果它正在运行:
sudo service apache2 stop
-
现在使用以下命令移除并清除所有apache2软件包:
sudo apt-get purge apache2 apache2-utils apache2.2-bin apache2-common
-
最后,运行
sudo apt-get autoremove
以防万一需要进行其他清理
您可以执行以下两项测试来确认apache已被删除:
-
which apache2
– 应该返回一个空行 -
sudo service apache2 start
– 应返回apache2: unrecognized service
第三种解决办法
为我工作的一种非常简单直接的方式如下:
-
停止apache2。
sudo service apache2 stop
-
卸载Apache2及其相关软件包。
sudo apt-get purge apache2 apache2-utils apache2.2-bin apache2-common
-
使用autoremove选项来摆脱其他依赖关系。
sudo apt-get autoremove
-
检查是否有任何尚未删除的配置文件。
whereis apache2
-
如果您得到如下响应
apache2: /etc/apache2
删除目录和现有的配置文件。sudo rm -rf /etc/apache2
来源:Dan Nanni的How to uninstall and remove Apache2 on Ubuntu or Debian
第四种办法
首先检查您是否使用正确的包名,IMO正确的包名是:apache2.x-common
如果你想完全删除包含配置文件的包,请尝试:
dpkg --purge apache2.2-common