linux - 为什么卸载 Apache2 会尝试安装 PHP5-CGI?

标签 linux bash apache uninstallation

正如您从下面的屏幕截图中看到的(我突出显示了相关部分),当我尝试从我的 Ubuntu 服务器卸载 Apache 时,它​​想要安装 PHP5-CGI。为什么会这样?我需要使用不同的命令来卸载它吗?

Console screenshot

最佳答案

我的猜测是因为另一个包依赖了 php。

但 libapache2-mod-php5 满足该依赖性,但是当您删除 apache 时,libapache2-mod-php5 将 apache 作为依赖项,因此它无法保持安装状态。因此,apt 进入满足 php 依赖关系的下一行,这似乎是 php5-cgi

但是,您可以通过运行来确定这一点:

apt-cache rdepends --installed php5-cgi

现在也运行:

apt-cache rdepends --installed libapache2-mod-php5

这应该立即向您显示依赖于该包的内容。

我猜可能是 wordpress 或类似的东西。

apt-cache show wordpress
Depends: apache2 | httpd, libapache2-mod-php5 | php5, ca-certificates, mysql-client | mariadb-client, php5-gd, php5-mysql | php5-mysqlnd, libjs-cropper (>= 1.2.2), libjs-mediaelement (>= 2.15.1+dfsg), libphp-phpmailer (>= 5.2.10+dfsg), php-getid3 (>= 1.9.9+dfsg)

然后我假设 php5 本身(第二个选项)是元数据包,所以我检查它的依赖项:

apt-cache show php5
Depends: libapache2-mod-php5 (>= 5.6.14+dfsg-1~) | libapache2-mod-php5filter (>= 5.6.14+dfsg-1~) | php5-cgi (>= 5.6.14+dfsg-1~) | php5-fpm (>= 5.6.14+dfsg-1~), php5-common (>= 5.6.14+dfsg-1~)
## or if you prefer
apt-cache depends php5
php5
 |Depends: libapache2-mod-php5
 |Depends: libapache2-mod-php5filter
 |Depends: php5-cgi
  Depends: php5-fpm

我发现 apt-cache show 的输出更容易阅读,因为它更容易看出每个依赖项的一组选项是什么。

如您所见,如果我们以 wordpress 为例,它具有 libapache2-mod-php5 OR php5 的依赖性,而 php5 又具有 libapache2-mod-php5 OR libapache2-mod-php5filter OR php5 的依赖性-cgi 或 php5-fpm,所以看起来所有 apt 所做的都是在列表中向下移动,并且由于您要删除第一个依赖项,它会转到 php5,检查它,然后再次删除第一个选项,第二个,libapache2-mod-php5filter,也有 apache 作为依赖项,但是你在这个操作中删除了 apache2,所以它转到 php5-cgi,它不依赖于 apache,你有它。

或者类似的东西。

关于linux - 为什么卸载 Apache2 会尝试安装 PHP5-CGI?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33192795/

相关文章:

从 crontab 运行后,python 程序无法正常工作

linux - ftp 在 Linux 上显示文件及其所有者

php - 如何防止使用 .htaccess 或自定义 php.ini 覆盖设置

apache - apachectl 和 apache2 之间的区别

linux - 如何更改autoconf中的默认值

linux - 如何在 Red Hat 7 上安装 KDevelop 5

bash:验证去皮成功

mysql - Bash 恢复数据库 MySQL

bash - 将带有heredocs的bash命令复制/粘贴到终端时出现奇怪的行为

.net - Mono for ASP.NET 对于实际应用程序来说是否足够成熟?