Name

mklpmcompat — Update RPM resources

Synopsis

mklpmcompat [--force]

USAGE

The mklpmcompat script allows LPMtool to be usable on platforms that use RPM as a primary package manager. This a temporary, stop-gap measure mechanism that permits development and further work on LPMtool. Use mksyscompat instead of mklpmcompat on systems that do not use RPM as a primary package manager. The mklpmcompat script runs the following commands:

  1. All resources and files installed by all LPMtool packages (except for any package called lpmcompat) are extracted.

  2. An RPM package called lpmcompat gets built. The package does not install any files. The lpmcompat package only contains virtual resources downloaded from the package database maintained by the lpm command.

  3. The new lpmcompat RPM package is installed, replacing any older lpmcompat package.

  4. All resources and files installed by all existing RPM packages (except for any package called lpmcompat) are extracted from the RPM database.

  5. A LPMtool package called lpmcompat gets built. The package does not install any files. The lpmcompat package only contains virtual resources downloaded from the RPM database.

  6. The new lpmcompat package is installed, replacing any older lpmcompat package.

This prevents accidental installation of LPMtool packages that overwrite files installed by RPM, and allows the installation of LPMtool packages that require resources installed by RPM.

Note

Unfortunately, it's not possible to prevent RPM from clobbering individual files installed by lpm. Use care to avoid installing RPM packages that overwrite files installed by LPMtool. Rerun the mklpmcompat script often to try and keep both databases in sync.

If RPM packages were removed or installed that somehow break dependencies of LPMtool packages, the new lpmcompat package will not install, by default, due to a dependency conflict. Write down what dependencies were broken, and figure out what needs to be fixed. If necessary, rerun mklpmcompat with the --force option to force an update of the lpmcompat package and ignore the dependency conflict, as a temporary stop-gap solution (--force will NOT fix the dependency conflict, it's only a temporary band-aid to cover the bleeding for a short time before the final surgery that fixes the real issue).

Note

mklpmcompat is very resource intensive. This script essentially downloads and installs a database of resources that represent a full, complete, system. A typical RPM database tracks over a thousand packages. All the information from those packages gets merged into a single humongous mklpmcompat package, which then replaces an older, humongous, package.

mklpmcompat was observed swallowing more than 200MB of RAM, and take almost three minutes to chew through an average RPM database on a fairly beefy Opteron server.

SEE ALSO

lpm(1), mksyscompat(1).