Forum Stats

  • 3,769,814 Users
  • 2,253,026 Discussions
  • 7,875,214 Comments

Discussions

reposync Oracle Linux 8 AppStream Repo with newest-only option is missing some packages

Sukhum
Sukhum Member Posts: 3 Green Ribbon
edited Sep 20, 2021 10:23AM in Oracle Linux

Hi,

I am trying to create local Oracle Linux 8 repository but downloading only the latest version (the full repo is too huge). For the AppStream repo, it seems to be able to sync multiple of the latest versions depending on the modules but some packages are still missing.

For example, for ipa-* packages, only these packages are sync'ed.

[SKIPPED] ipa-client-4.7.1-11.0.1.module+el8+5193+804ea283.x86_64.rpm: Already downloaded
[SKIPPED] ipa-client-4.7.1-11.0.1.module+el8+5194+1459f29b.x86_64.rpm: Already downloaded
[SKIPPED] ipa-client-4.9.2-3.0.1.module+el8.4.0+20162+a92f1bfa.x86_64.rpm: Already downloaded
[SKIPPED] ipa-client-4.9.2-4.0.1.module+el8.4.0+20223+6d4ac663.x86_64.rpm: Already downloaded
[SKIPPED] ipa-client-epn-4.9.2-3.0.1.module+el8.4.0+20162+a92f1bfa.x86_64.rpm: Already downloaded
[SKIPPED] ipa-client-epn-4.9.2-4.0.1.module+el8.4.0+20223+6d4ac663.x86_64.rpm: Already downloaded
[SKIPPED] ipa-client-samba-4.9.2-3.0.1.module+el8.4.0+20162+a92f1bfa.x86_64.rpm: Already downloaded
[SKIPPED] ipa-client-samba-4.9.2-4.0.1.module+el8.4.0+20223+6d4ac663.x86_64.rpm: Already downloaded
[SKIPPED] ipa-idoverride-memberof-plugin-0.0.4-6.module+el8+5194+1459f29b.x86_64.rpm: Already downloaded
[SKIPPED] ipa-server-4.7.1-11.0.1.module+el8+5194+1459f29b.x86_64.rpm: Already downloaded
[SKIPPED] ipa-server-4.9.2-4.0.1.module+el8.4.0+20223+6d4ac663.x86_64.rpm: Already downloaded
[SKIPPED] ipa-server-trust-ad-4.7.1-11.0.1.module+el8+5194+1459f29b.x86_64.rpm: Already downloaded
[SKIPPED] ipa-server-trust-ad-4.9.2-4.0.1.module+el8.4.0+20223+6d4ac663.x86_64.rpm: Already downloaded

Based on the modules.yaml file from the repodata path, I believe the package ipa-client-4.9.2-4.0.1.module+el8.4.0+20223+6d4ac663.x86_64.rpm is downloaded because of idm:DL1 version 8040020210319141752 while the package ipa-client-4.9.2-3.0.1.module+el8.4.0+20162+a92f1bfa.x86_64.rpm is downloaded for idm:client version 8040020210319141812 . These look correct. However, those streams still have the package ipa-healthcheck-core listed but not downloaded.

Below is the command I ran to download the packages

$ reposync -c ol8-public.repo --newest-only --arch=x86_64 --download-metadata --repoid=ol8_appstream

Am I doing anything wrong with this reposync command or am I missing anything?

Best regards,

SK

Answers

  • Sukhum
    Sukhum Member Posts: 3 Green Ribbon

    I found the answer. It is actually because those missing packages are filtered out by the --arch=x86_64 as they are noarch. They are properly downloaded after removing this filter.

  • andreas.dijkman
    andreas.dijkman Member Posts: 83 Bronze Badge
    edited Oct 4, 2021 10:32AM

    Edit: the answer below is only for Spacewalk/OracleLinuxManager, so not for the standalone tool in OL8!!

    You shouldn't use latest only for appstream-repositories. Latest only works with RPM-versions, but in an AppStream, there can be different versions used. For instance, the appstream perl:5.24 has perl-packages perl-5.24-something but the appstream perl:5.30 has packages perl-5.30-something. Modular repositories are different than regular old style repositories.

    It says in the documentation under Known Issues:

    2.2 Synchronizing Using --latest Bypasses Required Packages

    The mechanism that underlies --latest, an option for synchronizing channels, is not module-aware. If you use this option when synchronizing module-enabled channels such as ol8_Appstream, required packages might be bypassed. Therefore, when synchronizing modularized channels, DO NOT use the option --latest, either in the web UI or on the command line.

  • Sukhum
    Sukhum Member Posts: 3 Green Ribbon

    Thank you @andreas.dijkman for the reply.

    Based on the code at /usr/lib/python3.6/site-packages/dnf-plugins/reposync.py, it seems the "newest-only" option is stream/module aware now. I see the latest packages of each streams are downloaded with reposync command and able to run dnf install for modules that I tried so far.

      def _get_latest(self, query):
      """
      return union of these queries:
      - the latest NEVRAs from non-modular packages
      - all packages from stream version with the latest package NEVRA
      (this should not be needed but the latest package NEVRAs might be
      part of an older module version)
      - all packages from the latest stream version
      """
      ...
      ...
    
    

    I'm not familiar with Oracle Linux Manager so I do not know if this is applicable to it too, though.

  • andreas.dijkman
    andreas.dijkman Member Posts: 83 Bronze Badge

    @Sukhum yes, you are correct. I should read more carefully. My answer implies only Spacewalk-sync, not standalone Oracle Linux 8 reposync-tool. I've corrected my post.