Centos
需要添加舊版本的 IUS repo 才能安裝特定的 PHP 7.2 包
問題:
沒有不必要的細節,我有兩台幾乎相同的伺服器。然而,一個配置了它的 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 的通知和測試回購,以便將來版本更新不會令人意外。
由於上游支持終止,IUS 不再提供 PHP 7.2 。實際上,repo 名稱代表Inline with Upstream Stable。他們在包名稱中的版本號方案允許選擇版本 (
php74-pecl-imagick
)。另請參閱IUS 常見問題解答。CentOS 和相關的軟體庫不會保留舊的軟體包,它們是存檔的。考慮維護一個私有鏡像,其中包含特定版本的包副本。這有限制,較舊的軟體包不會有修復,包括安全更新。
由於 CentOS 7.5 支持已結束,請同時升級其餘的軟體包。如果您想要長時間發布次要版本,請考慮RHEL 擴展更新支持。