Skip to content

aburmash/elprofile

Repository files navigation

ELProfile

This is a tool to create a profile of all of the packages installed to a particular system and then use that profile to validate that other OS's are providing that level of functionality.

A design decision is that more functionality is allowed, but not less. This means that the system being tested is only looking for what the profile has defined and will warn if that particular feature is not present.

The idea is to ensure that a downstream Enterprise Linux derivitive is providinging AT LEAST the same functionality as what upstream provides which will help with standardization and extreme compatibility.

There are several major tests that are performed...

  • Requires: Ensure that all needed requirements are present
  • Provides: Ensure that each package provides the needed requirements
  • Files: Ensure that all needed files are present
  • Size: Ensure that packages are not differing in sizes by greater than a given percent
  • Version: This is an additional check, just to show what packages have a different NVRA

Building

This is written in GoLang, so you will need to do the standard Go build process:

$ make all

Usage

You will first need to generate a profile (or use one of the few that are provided as examples) by doing the following:

$ ./elprofile -g > /tmp/local.profile

To test another system you can copy the file /tmp/local.profile to another system and run the following command:

$ ./elprofile -aq /tmp/local.profile
Comparing against template: /tmp/local.profile
gnupg2-2.3.3.x86_64                      MISSING REQUIRES:  liblber-2.4.so.2()(64bit)
gnupg2-2.3.3.x86_64                      MISSING REQUIRES:  libldap_r-2.4.so.2()(64bit)
gnutls-3.7.6.x86_64                      MISSING FILES:     /usr/lib64/.libgnutls.so.30.33.1.hmac
gnutls-3.7.6.x86_64                      MISSING FILES:     /usr/lib64/.libgnutls.so.30.hmac
libdnf-0.67.0.x86_64                     MISSING REQUIRES:  librhsm.so.0()(64bit)

The example above is using a profile generated by the RHEL UBI 9.1 container image, and tested against a Rocky Linux 9.1 system. The results show an expected failure on librhsm.so.0 on the libdnf package (as we are not linking that against Red Hat's Subscription manager). The HMAC files not being included have been fixed, and the gnupg2 and OpenLDAP bug is being tracked here: https://bugs.rockylinux.org/view.php?id=3964

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published