__ __ __ \ \_________\ \____________\ \___ \ _ \ _\ _ \ _\ __ \ __\ / \___/\__/\__/ \_\ \___/\__/\_\_\ Bedrock Linux
Introductory Material
Limitations
Reference Material
Extending Bedrock
Miscellaneous
brl fetch can be used to automate acquiring Linux
distributions for use as strata
. However, this supports a limited number of
distros and requires an internet connection. Strata
may also be created
manually, which may be preferred in some situations.
To manually add a stratum
, get its contents into a new directory within
/bedrock/strata
corresponding to the new stratum
's name. For example:
example
example
example
/bedrock/strata/example
Or for another example:
example
example
Ensure the new stratum
name does not contain any whitespace characters, forward or back slashes, colons, equal signs, dollar signs, or single or double quotes. Moreover, ensure it does not start with a dash character. At the time of writing, Bedrock's implementation naively assumes these constraints to be in place.
By default, new strata
are hidden
to avoid accidentally being enabled
while the files are mid transfer into place. Once you have completed placing the new stratum
's files into /bedrock/strata
, show
the stratum
:
new-stratum
Finally, to actually use the stratum, enable
it:
new-stratum
New, manually acquired strata
may complain about missing users or groups. If so, you may need to manually add them. Such strata
may also complain about locale issues, in which case you may need to manually set up the given stratum
's locale.
The stratum
resulting from the hijack
of the initial install may be removed. Some considerations:
stratum
currently providing init
may not be removed (as that would crash the system). If you are using the hijacked
stratum
, first reboot and select another stratum
to provide init
for the session.hijacked
stratum
maintains your bootloader. After removing the hijacked
stratum
the bootloader will continue to work - you can boot - but it will not automatically update with new kernels or initrds. If you know how to manually maintain the bootloader, you are welcome to do so. If you would prefer to have another stratum
maintain the bootloader, simply install its bootloader over the existing one. Many distros provide a grub
or grub2
package which is suitable. It may be wise to do this first, before removing the hijacked
stratum
, to ensure the bootloader hand-off goes smoothly before removing the hijacked
stratum
.hijacked
alias
during the hijack
process which can be used to determine which stratum
is the hijacked
one, should you have forgotten: brl deref hijacked
strata
, such as the hijacked
stratum
:brl remove $(brl deref hijacked)
If multiple strata provide the same command, absent any additional indication of which to use Bedrock will choose one by default in a given context. Which it chooses may be configured, which is referred to as "pinning."
/bedrock/etc/bedrock.conf
's [cross-bin]
section is used to configure executable binaries in /bedrock/cross
. In this section,
pin/bin/command
=stratum
:/local/path/to/command
entries are used to specify the specified stratum
:path
pair should provide the given command
, should the pair exist. For example,
pin/bin/vim = arch:/usr/bin/vim
indicates that the arch
stratum
should provide vim
by default if it has it (and if strat
is not used to manually specify which stratum
should provide the command).
Multiple stratum
:path
pairs may be specified, in which case the first which provides the path
will provide the command. For example,
pin/bin/firefox = clear:/usr/bin/firefox, arch:/usr/bin/firefox
may be left off with only a stratum
:path
provided, in which case all enabled strata
are considered. However, this is not useful for pinning.
If you typically restrict
the command, be sure to configure it under the restriction section as well.