【问题标题】:How to UNinstall php7.2-fpm WITHOUT installing Apache 2 (on a LEMP machine)如何在不安装 Apache 2 的情况下卸载 php7.2-fpm(在 LEMP 机器上)
【发布时间】:2020-10-26 18:03:50
【问题描述】:

这听起来可能很愚蠢,但我奇怪的配置似乎在尝试un安装php7.2-fpm强制 Apache2 安装! (我使用nginx,我最不想在我的服务器上看到的是 Apache 安装...)

这是场景:我被 Ubuntu 16.04.6 LTS 安装困住了(对不起,我无法控制它,我只能维护它,使用 apt 安装我想要的任何东西,但是 不要将 Ubuntu 升级到现代版本。

多年来,正如预期的那样,Ubuntu 16.04 被许多软件包维护者丢弃,尤其是那些来自官方 Ubuntu 存储库的维护者;因此,我别无选择,只能添加 很多 个替代存储库。

另外,随着时间的推移,我一直在升级 PHP。第一件事是几年前下降 5.6。然后是退役 7.0 的时候了,最终也退役了 7.1。同时,我安装了 7.2、7.3 和 7.4 版本,因为托管在该服务器上的每个站点(顺便说一句,没有那么多)都经过严格测试,以确保它可以继续在最新版本的 PHP 上运行。

目前,我在 PHP 7.4 上运行的所有站点,除了两个仍然需要 PHP 7.3,直到底层应用程序软件与 7.4 兼容(这将在几周或几个月,我敢肯定)。我可以安全地删除 PHP 7.2,因为它不再使用了。

唉,它似乎没有被完全删除——尽管它确实没有在启动时启动,也没有从任何东西调用。但是,如果我尝试删除它,我会得到以下信息:

# apt remove php7.2-fpm
Reading package lists... Done
Building dependency tree       
Reading state information... Done
The following additional packages will be installed:
  apache2 apache2-bin apache2-data apache2-utils libapache2-mod-php7.2 libapr1
  libaprutil1 libaprutil1-dbd-sqlite3 libaprutil1-ldap liblua5.1-0
Suggested packages:
  apache2-doc apache2-suexec-pristine | apache2-suexec-custom
The following packages will be REMOVED
  php7.2-fpm
The following NEW packages will be installed
  apache2 apache2-bin apache2-data apache2-utils libapache2-mod-php7.2 libapr1
  libaprutil1 libaprutil1-dbd-sqlite3 libaprutil1-ldap liblua5.1-0
0 to upgrade, 10 to newly install, 1 to remove and 16 not to upgrade.
1 not fully installed or removed.
Need to get 2,879 kB of archives.
After this operation, 6,192 kB of additional disk space will be used.
Do you want to continue? [Y/n]

显然,我想要的最后 件事是再次安装 Apache 2。另外,我相信这是我第一次看到 apt 在我请求它删除一个包时希望安装一些东西!

这是我从apt show 得到的信息:

# apt show php7.2-fpm
Package: php7.2-fpm
Version: 7.2.31-1+ubuntu16.04.1+deb.sury.org+1
Priority: optional
Section: php
Source: php7.2
Maintainer: Debian PHP Maintainers <team+pkg-php@tracker.debian.org>
Installed-Size: 4,960 kB
Provides: php-fpm, phpapi-20170718
Depends: libmagic1, libpcre3 (>= 2:8.41), mime-support, php7.2-cli, php7.2-common (= 7.2.31-1+ubuntu16.04.1+deb.sury.org+1), php7.2-json, php7.2-opcache, procps, systemd | systemd-tmpfiles, tzdata, ucf, init-system-helpers (>= 1.18~), libapparmor1 (>= 2.7.0~beta1+bzr1772), libargon2-0 (>= 0~20160406~), libc6 (>= 2.15), libsodium23 (>= 1.0.14), libssl1.1 (>= 1.1.0), libsystemd0, libxml2 (>= 2.8.0), zlib1g (>= 1:1.1.4)
Suggests: php-pear
Download-Size: 1,394 kB
APT-Manual-Installed: yes
APT-Sources: http://ppa.launchpad.net/ondrej/php/ubuntu xenial/main amd64 Packages
Description: server-side, HTML-embedded scripting language (FPM-CGI binary)
 This package provides the Fast Process Manager interpreter that runs
 as a daemon and receives Fast/CGI requests.  Note that MOST Apache users
 probably want the libapache2-mod-php7.2 package.
 .
 The following extensions are built in: Core date filter hash libxml openssl
 pcre Reflection session sodium SPL standard zlib.
 .
 PHP (recursive acronym for PHP: Hypertext Preprocessor) is a widely-used
 open source general-purpose scripting language that is especially suited
 for web development and can be embedded into HTML.

请注意,Apache 2没有安装,虽然我相信它已经安装过一次(几年前)——我从未使用/配置过它,但 也许它是预先安装的-已安装,我不知道,我只是在这里推测)- 尽管apt 说它不再安装,可能有一些旧文件'混淆'apt删除包时...

不过,我找不到这个非常奇怪的依赖项,也找不到如何解决它(我尝试了这么多选项......)

没有试图允许apt 继续安装 Apache 2,并立即对包 apache2 发出 delete/purge 请求。也许这将修复存储库依赖关系...

像往常一样,我提前感谢您回答我关于 apt 的初学者问题!


注意:我显然已经在谷歌上搜索了一个解决方案,并在 SO 上进行了大量搜索。虽然我发现了很多关于安装/删除各种 PHP 版本的示例,主要是使用 Apache,有时也使用 nginx,但我还没有遇到针对我的具体情况的解决方案。 apt 是否有命令行选项可以在删除一个包时忽略某些依赖项?

【问题讨论】:

    标签: php ubuntu apache2 php-7.2 fpm


    【解决方案1】:

    好吧,碰巧,当我尝试再次修复这个问题时,我偶然发现了以下解释:https://www.digitalocean.com/community/questions/trying-to-uninstall-phpmyadmin-dpkg-error-while-cleaning-up

    虽然这与我自己的 php7.2-fpm 问题没有直接关系,但我注意到一个非常重要的事情:最后的星号!

    所以我基本上做到了:

    apt-get remove php7.2*

    而且,为了更好的衡量,

    apt-get purge php7.2*

    (令人惊讶的是,还有一些额外的包没有被删除......)

    而且,因为它不会伤害......

    apt-get autoremove(它返回没有什么要删除的)

    另外,令我惊讶的是,我仍然php7.1 找到了一些旧包! (我以同样的方式删除了它们)。而且,可悲的是,因为我有这么旧的基本 Ubuntu 系统,我需要来自php7.0 的一些文件才能获得一个工作的Roundcube(对我的服务器的整体运行至关重要),但我的下一个清理任务将是弄清楚如何摆脱它而不打扰Roundcube...

    【讨论】:

      【解决方案2】:

      如果直接安装php 7.2,则安装Apache。请试试这个

      apt-get purge apache2
      apt-get autoremove
      apt-get install php7.2-cli php7.2-fpm
      

      【讨论】:

      • 一个好主意,但不幸的是apt-get 说:Package 'apache2' is not installed, so not removed,然后继续做各种愚蠢的事情,比如尝试重启php7.2-fpm...
      猜你喜欢
      • 1970-01-01
      • 2018-12-01
      • 2019-12-13
      • 2021-05-07
      • 1970-01-01
      • 1970-01-01
      • 2017-01-31
      • 2018-08-24
      • 1970-01-01
      相关资源
      最近更新 更多