__ __ __ \ \_________\ \____________\ \___ \ _ \ _\ _ \ _\ __ \ __\ / \___/\__/\__/ \_\ \___/\__/\_\_\ 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.