__ __ __
\ \_________\ \____________\ \___
\ _ \ _\ _ \ _\ __ \ __\ /
\___/\__/\__/ \_\ \___/\__/\_\_\
Bedrock Linux
Introductory Material
Limitations
Reference Material
Extending Bedrock
Miscellaneous
Bedrock Linux's Package Manager Manager, or pmm, is now available in
Bedrock's beta channel. This subsystem provides Bedrock-aware abstractions for
multi-package-manager and cross-package-manager operations.
If you would like to help test it, first register your system with the beta
channel and update to the latest beta. Make sure you merge
any update-provided /bedrock/etc/bedrock.conf files into your main
bedrock.conf, as this feature includes a new[pmm]` configuration section.
pmm will not be accessible immediately after updating to the corresponding
beta. You will need to first populate the user_interface field of the new [pmm]
section in bedrock.conf. See the comments above user_interface. Once you
have done that, run brl apply as root. pmm should now be in your $PATH;
try running pmm --help.
Things to test include:
[pmm] configuation fields.
ignore-non-system-package-managers field is effectively a no-op, as pmm does not support any non-system package managers at this point in time. Some are planned to be added later.--every, --newest) work as expected--diff-world) work as expected.The focus of the beta is intended to be polishing the existing functionality rather than extending it. However, if you wish to begin preliminary work on new pmm functionality while pmm is still in beta, note:
/bedrock/share/pmm/package_managers/ named after the new package manager./bedrock/share/pmm/package_managers/ entries./bedrock/share/pmm/help for descriptions of corresponding fields.
system_package_managers[<package-manager>] is used to indicate the package manager is a system package manager and central to the corresponding stratum.package_manager_canary_executable[] is used to map a package manager name to an executable whose presence indicates the package manager exists in the stratum. These are usually the same (e.g. the apt package manager provides the apt executable) but not always (e.g. the xbps package manager does not have an xbps executable).user_interface[] value for the given functionality.implementations[] field if the package manager cannot do all operations in one command. Instead, implement the component implementations[]; pmm will break an instruction up into components accordingly.implementations[] is requested by the user. Is there something similar enough that is likely what the user meant? If so, populate implementations[] accordingly. Is there nothing which makes sense? Then leave it blank.Internal pmm operations handles all of them. For example emerge understands that vim refers to app-editors/vim; ensure pmm does as well.pmm --check-pmm-configuration to sanity check your changes before attempting to submit them to Bedrock.The focus of the beta is intended to be polishing the existing functionality rather than extending it. However, if you wish to begin preliminary work on new pmm functionality while pmm is still in beta, note:
/bedrock/share/pmm/help, describing what it does./bedrock/share/pmm/operations. If it is similar enough to another pmm operation, you may be able to share the same pattern as an existing operation. Otherwise, you may need to extend core pmm functionality in /bedrock/libexec/pmm to support it.pmm specific, add it to /bedrock/share/pmm/package_managers/pmm utilizig the "*" package manager name./bedrock/share/pmm/package_managers/* files other than pmm.pmm --check-pmm-configuration to sanity check your changes before attempting to submit them to Bedrock.