首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >CentOS 8.3 --如何将AppStream安装从Remi切换到AppStream?

CentOS 8.3 --如何将AppStream安装从Remi切换到AppStream?
EN

Server Fault用户
提问于 2021-05-24 17:53:33
回答 2查看 11.3K关注 0票数 0

目前在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包。我该怎么做?

代码语言:javascript
复制
# 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及其所有模块的快捷方法来干净地解决所有问题。对于阻力最小的道路的建议将是非常感谢的。

EN

回答 2

Server Fault用户

发布于 2021-05-24 21:24:40

(RHEL 8.4+)与将任何其他模块切换到不同的流的方式相同:

代码语言:javascript
复制
dnf module switch-to php:7.4

请注意,如果您使用没有在新模块流中的任何remi包,并且解决方案是手动从系统中完全删除PHP,然后切换模块流,然后重新安装PHP,这将失败。

票数 1
EN

Server Fault用户

发布于 2021-05-25 19:42:46

修正后的答案..。

dnf确实有一个令人满意的简短方法,可以避免从零开始删除和重新安装PHP的繁琐工作。有很多准备工作要做,但基本要素包括三个命令。

代码语言:javascript
复制
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文件完整)之后,出于好奇,我运行了几条额外的命令。

代码语言:javascript
复制
# 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.4dnf module resetdnf distro-sync相结合的较新的替代品。

票数 0
EN
页面原文内容由Server Fault提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://serverfault.com/questions/1064562

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档