目前在Remi中运行PHP7.4。这是一个模块化的dnf安装,它取代了PHP7.2的AppStream包,那时它是CentOS提供的最新的PHP。换句话说,Remi包是配置有/etc/php.ini -而不是使用/opt/remi/ PHP 74/php.ini的额外PHP安装的系统PHP。
但是,CentOS AppStream最近提供了PHP7.4,我希望用等效的AppStream包替换Remi包。我该怎么做?
# dnf module list php
CentOS Linux 8 - AppStream
Name Stream Profiles Summary
php 7.2 [d] common [d], devel, minimal PHP scripting language
php 7.3 common [d], devel, minimal PHP scripting language
php 7.4 common [d], devel, minimal PHP scripting language
Remi's Modular repository for Enterprise Linux 8 - x86_64
Name Stream Profiles Summary
php remi-7.2 common [d], devel, minimal PHP scripting language
php remi-7.3 common [d], devel, minimal PHP scripting language
php remi-7.4 [e] common [d], devel, minimal PHP scripting language
php remi-8.0 common [d], devel, minimal PHP scripting language
Hint: [d]efault, [e]nabled, [x]disabled, [i]nstalled在某种程度上,我对dnf模块化很熟悉,但我怀疑它是否足够聪明,可以使用一种避免从零开始卸载和重新安装PHP及其所有模块的快捷方法来干净地解决所有问题。对于阻力最小的道路的建议将是非常感谢的。
发布于 2021-05-24 21:24:40
(RHEL 8.4+)与将任何其他模块切换到不同的流的方式相同:
dnf module switch-to php:7.4请注意,如果您使用没有在新模块流中的任何remi包,并且解决方案是手动从系统中完全删除PHP,然后切换模块流,然后重新安装PHP,这将失败。
发布于 2021-05-25 19:42:46
修正后的答案..。
dnf确实有一个令人满意的简短方法,可以避免从零开始删除和重新安装PHP的繁琐工作。有很多准备工作要做,但基本要素包括三个命令。
dnf module reset php
dnf module install php:7.4
dnf distro-sync在运行dnf distro-sync之前,让remi模块回购能够保留某些模块,如php-pecl redis5、php-pecl msgpack、php-pecl imagick等等(见下文)。
经过一系列没有错误的事务(除了*.rpmnew文件保持现有*.conf文件完整)之后,出于好奇,我运行了几条额外的命令。
# dnf upgrade php\*
Last metadata expiration check: 1:09:55 ago on Fri 28 May 2021 02:05:10 PM EDT.
Dependencies resolved.
Nothing to do.
Complete!
# dnf remove --duplicates
Last metadata expiration check: 1:10:37 ago on Fri 28 May 2021 02:05:10 PM EDT.
Error: No duplicated packages found for removal.一切都像以前一样开始和运行,没有明显的问题。只有一个问题需要注意:少数来自remi模块的模块没有被CentOS或EPEL repos所取代,那就是在这个服务器故障问答中解释得最好。请注意第75期和@RemiCollet的有趣评论。
值得注意的是@MichaelHampton之前关于交换流的答案。如果RHEL是8.4版( CentOS & Stream、AlmaLinux和Rocky的8.4版也是如此),dnf module switch-to php:7.4是dnf module reset与dnf distro-sync相结合的较新的替代品。
https://serverfault.com/questions/1064562
复制相似问题