问题:
没有不必要的细节,我有两台几乎相同的服务器。但是,其中一个配置了 yum 存储库,以便可以安装 php 7.2 软件包 imagick 和钠,而另一个则没有。
相同的内核版本:
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 repos 的配置,特别是ius
repo:
服务器 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 存储库。
/etc/yum.repos.d/
将完整目录从服务器 A复制到 B,然后运行yum clean all
- 使用 pecl 手动安装这些模块
但这些尝试都没有奏效。结果:
- 最新的 IUS 仍然没有这些软件包可用。
- 似乎没有什么不同(或者可能破坏了 IUS 回购,我现在不记得了)。
- Pecl 同样没有这些模块的 PHP 7.2 版本。
从 2021 年 6 月起升级到更新的 PHP 7.3 或 7.4。并订阅 IUS 的通知和测试 repo,以便将来版本更新不会令人意外。
由于上游支持终止,IUS 不再提供 PHP 7.2 。实际上,repo 名称代表Inline with Upstream Stable。他们在包名称中的版本号方案允许选择版本 (
php74-pecl-imagick
)。另请参阅IUS 常见问题解答。CentOS 和相关的软件库不会保留旧的软件包,它们是存档的。考虑维护一个私有镜像,其中包含特定版本的包副本。这有限制,较旧的软件包不会有修复,包括安全更新。
由于 CentOS 7.5 支持已结束,请同时升级其余的软件包。如果您想要长时间发布次要版本,请考虑RHEL 扩展更新支持。