需要添加旧版本的 IUS repo 才能安装特定的 PHP 7.2 包

需要添加旧版本的 IUS repo 才能安装特定的 PHP 7.2 包

问题:

无需赘述,我有两台几乎完全相同的服务器。但是,一台的 yum 存储库配置为可以安装 php 7.2 软件包 imagick 和 soap,而另一台则不能。

完全相同的内核版本:

CentOS Linux release 7.5.1804 (Core)

类似的 PHP 版本:

服务器 A:

PHP 7.2.18 (cli)

服务器B:

PHP 7.2.20 (cli)

服务器 A:

$ sudo yum search sodium imagick
...
php72u-sodium.x86_64 : Wrapper for the Sodium cryptographic library
php72u-pecl-imagick.x86_64 : Provides a wrapper to the ImageMagick library
...

服务器B:

$ sudo yum search sodium imagick
[only versions for php 7.3 and 7.4 shown]

我相信这是由于 yum 存储库的配置造成的,特别是ius存储库:

服务器 A:

$ sudo yum repolist
Loaded plugins: fastestmirror, replace
Loading mirror speeds from cached hostfile
 * base: d36uatko69830t.cloudfront.net
 * epel: iad.mirror.rackspace.com
 * extras: d36uatko69830t.cloudfront.net
 * ius: ius.mirror.constant.com <================ THIS ONE
 * updates: d36uatko69830t.cloudfront.net
...

服务器B:

$ sudo yum repolist
Loaded plugins: fastestmirror, replace
Loading mirror speeds from cached hostfile
 * base: d36uatko69830t.cloudfront.net
 * epel: dl.fedoraproject.org
 * extras: d36uatko69830t.cloudfront.net
 * updates: d36uatko69830t.cloudfront.net
...

简而言之,我需要弄清楚如何配置服务器 B 以拥有相同的 IUS 存储库(同一版本所以它有 PHP 7.2 包可用!)

我尝试过的事情

  • 按照他们的指示从头开始安装 IUS repo。
  • 将完整/etc/yum.repos.d/目录从服务器 A 复制到服务器 B,然后运行yum clean all
  • 使用 pecl 手动安装这些模块

但这些尝试都没有奏效。结果:

  • 最新的 IUS 仍然没有提供这些软件包。
  • 似乎没有什么区别(或者可能破坏了 IUS 存储库,我现在记不清了)。
  • 同样,Pecl 也没有提供这些模块的 PHP 7.2 版本。

答案1

升级到较新的 PHP,截至 2021 年 6 月 7.3 或 7.4。并订阅 IUS 的通知和测试存储库,以便将来的版本更新不会令人意外。

IUS 不再提供 PHP 7.2随着上游支持结束。事实上,repo 名称代表与上游稳定一致. 软件包名称中的版本号方案允许选择版本(php74-pecl-imagick)。另请参阅IUS 常见问题

CentOS 和相关存储库不会保留旧软件包,而是将其归档。考虑维护一个包含特定版本软件包副本的私人镜像。这有限制,旧软件包不会有修复,包括安全更新。

由于 CentOS 7.5 支持已结束,因此请升级其余软件包。如果您希望在较长时间内使用次要版本,请考虑具有扩展更新支持的 RHEL

相关内容