Can't list all RPMs of Repository

Hi, I was trying to install nginx-all-modules-1.20.1-1 from AlmaLunux appstream repository and the rpm file is present there. However, I see that my AlmaLinux 8.6 that is latest updated will only install nginx-all-modules-1.14. It will not even list other version.

Why is that you are not providing access to all rpm repository that you have?
Does it require me to pay to get them?

I also know that I can directly install rpm file with it’s link, but it would be better if you would let us access and update directly through AlmaLinux appstream repo so that the conflict won’t arise when we use the update command!

Please say something about this!!

1 Like

DNF has “modules” that make separate “streams” possible:

$ dnf module list nginx
Last metadata expiration check: 1:06:15 ago on Mon 06 Jun 2022 12:07:11 PM EEST.
AlmaLinux 8 - x86_64 - AppStream - SBL
Name                     Stream                      Profiles                     Summary                          
nginx                    1.14 [d]                    common [d]                   nginx webserver                  
nginx                    1.16                        common [d]                   nginx webserver                  
nginx                    1.18                        common [d]                   nginx webserver                  
nginx                    1.20                        common [d]                   nginx webserver                  

Hint: [d]efault, [e]nabled, [x]disabled, [i]nstalled

For how to enable/switch to different stream, see Chapter 6. Managing versions of Application Stream content Red Hat Enterprise Linux 8 | Red Hat Customer Portal

2 Likes

Actually, I was talking about nginx-all-modules. NGINX itself provides rpm repo of its latest version. So, that should not be a problem.

However, if we talk about NGINX, lets consider like I have installed the atomic repo:

rpm -Uvh https://www6.atomicorp.com/channels/atomic/redhat/8/x86_64/RPMS/atomic-release-1.0-23.el8.art.noarch.rpm

Now, if I do:

dnf --disablerepo="*" --enablerepo="atomic" list available

It won’t list NGINX available from atomic repository. It will only list other modules of NGINX but not the core NGINX itself! However, the rpm file is present on the server.

I am not that much expert! So, I just wanted to know why is this happening on AlmaLinux?

Thanks

I’m no expert on dnf modules – I just know that it isn’t easy. It might be that the module-metadata of disabled repo still messes up things. (Similarly, I’ve seen claims that ‘dnf search’ does not limit to enabled repos, like ‘dnf list’ does.)

The stream ‘nginx:1.20’ does actually have packages, like nginx-all-modules-1:1.20.1-1 in Alma’s repository:

# dnf module info nginx:1.20
Last metadata expiration check: 2:19:20 ago on Tue 07 Jun 2022 01:08:11 PM EEST.
Name             : nginx
Stream           : 1.20
Version          : 8060020220421131139
Context          : 9edba152
Architecture     : x86_64
Profiles         : common [d]
Default profiles : common
Repo             : appstream
Summary          : nginx webserver
Description      : nginx 1.20 webserver module
Requires         : platform:[el8]
Artifacts        : nginx-1:1.20.1-1.module_el8.6.0+2782+a022aca3.alma.src
                 : nginx-1:1.20.1-1.module_el8.6.0+2782+a022aca3.alma.x86_64
                 : nginx-all-modules-1:1.20.1-1.module_el8.6.0+2782+a022aca3.alma.noarch
                 : nginx-debuginfo-1:1.20.1-1.module_el8.6.0+2782+a022aca3.alma.x86_64
                 : nginx-debugsource-1:1.20.1-1.module_el8.6.0+2782+a022aca3.alma.x86_64
                 : nginx-filesystem-1:1.20.1-1.module_el8.6.0+2782+a022aca3.alma.noarch
                 : nginx-mod-devel-1:1.20.1-1.module_el8.6.0+2782+a022aca3.alma.x86_64
                 : nginx-mod-http-image-filter-1:1.20.1-1.module_el8.6.0+2782+a022aca3.alma.x86_64
                 : nginx-mod-http-image-filter-debuginfo-1:1.20.1-1.module_el8.6.0+2782+a022aca3.alma.x86_64
                 : nginx-mod-http-perl-1:1.20.1-1.module_el8.6.0+2782+a022aca3.alma.x86_64
                 : nginx-mod-http-perl-debuginfo-1:1.20.1-1.module_el8.6.0+2782+a022aca3.alma.x86_64
                 : nginx-mod-http-xslt-filter-1:1.20.1-1.module_el8.6.0+2782+a022aca3.alma.x86_64
                 : nginx-mod-http-xslt-filter-debuginfo-1:1.20.1-1.module_el8.6.0+2782+a022aca3.alma.x86_64
                 : nginx-mod-mail-1:1.20.1-1.module_el8.6.0+2782+a022aca3.alma.x86_64
                 : nginx-mod-mail-debuginfo-1:1.20.1-1.module_el8.6.0+2782+a022aca3.alma.x86_64
                 : nginx-mod-stream-1:1.20.1-1.module_el8.6.0+2782+a022aca3.alma.x86_64
                 : nginx-mod-stream-debuginfo-1:1.20.1-1.module_el8.6.0+2782+a022aca3.alma.x86_64

Hint: [d]efault, [e]nabled, [x]disabled, [i]nstalled, [a]ctive

Therefore:

# dnf module install nginx:1.20
Last metadata expiration check: 2:45:18 ago on Tue 07 Jun 2022 01:08:11 PM EEST.
Dependencies resolved.
===================================================================================================================
 Package                        Arch      Version                                           Repository        Size
===================================================================================================================
Installing group/module packages:
 nginx                          x86_64    1:1.20.1-1.module_el8.6.0+2782+a022aca3.alma      appstream    592 k
 nginx-all-modules              noarch    1:1.20.1-1.module_el8.6.0+2782+a022aca3.alma      appstream     24 k
 nginx-filesystem               noarch    1:1.20.1-1.module_el8.6.0+2782+a022aca3.alma      appstream     25 k
 nginx-mod-http-image-filter    x86_64    1:1.20.1-1.module_el8.6.0+2782+a022aca3.alma      appstream     35 k
 nginx-mod-http-perl            x86_64    1:1.20.1-1.module_el8.6.0+2782+a022aca3.alma      appstream     47 k
 nginx-mod-http-xslt-filter     x86_64    1:1.20.1-1.module_el8.6.0+2782+a022aca3.alma      appstream     34 k
 nginx-mod-mail                 x86_64    1:1.20.1-1.module_el8.6.0+2782+a022aca3.alma      appstream     67 k
 nginx-mod-stream               x86_64    1:1.20.1-1.module_el8.6.0+2782+a022aca3.alma      appstream     92 k
Installing dependencies:
 almalinux-logos-httpd          noarch    84.5-1.el8                                        appstream     29 k
 gd                             x86_64    2.2.5-7.el8                                       appstream    143 k
 libXpm                         x86_64    3.5.12-8.el8                                      appstream     58 k
 libwebp                        x86_64    1.0.0-5.el8                                       appstream    271 k
Installing module profiles:
 nginx/common                                                                                                     
Enabling module streams:
 nginx                                    1.20                                                                    

Transaction Summary
===================================================================================================================
Install  12 Packages

Total size: 1.4 M
Installed size: 3.4 M
Is this ok [y/N]:

It has always been tricky when two repos both offer “same” package. For example, EPEL does not offer what base (RHEL) has in order to avoid all those issues.

If both Alma and NGINX do offer nginx-1.20, then I’d rather use the Alma’s version.

One could&should do that with:

dnf install https://www6.atomicorp.com/channels/atomic/redhat/8/x86_64/RPMS/atomic-release-1.0-23.el8.art.noarch.rpm

The benefits of dnf (compared to rpm) are:

  • dnf could pull dependencies (if they are in repos)
  • dnf has transaction history that rpm does not update

The only thing I do use rpm for is to query things about installed packages.

Wow awesome! Thanks!!