Red Hat Enterprise Linux Application Streams 生命周期

Red Hat Enterprise Linux 8 引入了一个 Application Streams(应用程序流)概念 - 它包括用户空间组件的多个版本, 与核心操作系统软件包相比,这些组件的更新会更频繁。应用程序流为用户提供了,在不影响底层平台或特定部署的稳定性的情况下,对 Red Hat Enterprise Linux 进行定制的更大的灵活性。

作为 Application Streams 提供的组件可打包为:RPM软件包、模块以及Software Collections。Application Streams 通过 AppStream 软件仓库提供。每个 Application Stream 组件都有一个生命周期,可以与 RHEL 发行版本相同或更短。Red Hat Enterprise Linux 8 和 9 都提供了 Application Streams。在 Red Hat Enterprise Linux 生命周期中会提供 Application Streams。现在,用户空间组件的多个版本的发布和更新频率会比核心操作系统的发布和更新频率快。应用程序流为用户提供了,在不影响底层平台或特定部署的稳定性的情况下,对 Red Hat Enterprise Linux 进行定制的更大的灵活性。您可以通过一下命令在Redhat Enterprise Linux 8.7操作系统上更新Nginx:

1、问题概述:执行**dnf install nginx**命令后, RHEL 8主机上的 Nginx 模块包未更新到最新版本:

# dnf module enable nginx:1.20
Updating Subscription Management repositories.
Red Hat Enterprise Linux 8 for x86_64 - BaseOS (RPMs)                                                        57 
kB/s | 2.4 kB     00:00
Red Hat Enterprise Linux 8 for x86_64 - AppStream (RPMs)                                                     68 
kB/s | 2.8 kB     00:00
Problems in request:
Modular dependency problems with Defaults:

Problem: module php:7.2:820181215112050:76554e01.x86_64 requires module(nginx:1.14), but none of the providers 
can be installed <===== dependency issue
- module nginx:1.14:8000020190830002848:f8e95b4e.x86_64 conflicts with module(nginx:1.20) provided by 
nginx:1.20:8050020211221125012:c5368500.x86_64
- module nginx:1.20:8050020211221125012:c5368500.x86_64 conflicts with module(nginx:1.14) provided by 
nginx:1.14:8000020190830002848:f8e95b4e.x86_64
- module nginx:1.14:820181214004940:9edba152.x86_64 conflicts with module(nginx:1.20) provided by 
nginx:1.20:8050020211221125012:c5368500.x86_64
- module nginx:1.20:8050020211221125012:c5368500.x86_64 conflicts with module(nginx:1.14) provided by 
nginx:1.14:820181214004940:9edba152.x86_64

2、解决方案:

① 确保在 RHEL 8 主机上启用了 Red Hat Enterprise Linux 8 存储库

使用命令 dnf repolist 查看已经启用的软件仓库:

② 在RHEL 8操作系统的服务器上执行以下的命令:

#列出Nginx在软件仓库中的可用模块的版本
dnf module list | grep -i nginx
#重置Nginx模块配置
dnf module reset nginx
#设置Nginx模块版本为1.20 PHP模块版本的7.4 这里PHP74是作为Nginx 1.20的依赖软件包存在的
dnf module enable nginx:1.20 php:7.4
#升级Nginx
dnf update nginx
#查看现在已经安装的Nginx软件版本
dnf list | grep -i nginx
rpm -qa | grep nginx