__          __             __
\ \_________\ \____________\ \___
 \  _ \  _\ _  \  _\ __ \ __\   /
  \___/\__/\__/ \_\ \___/\__/\_\_\
                      Bedrock Linux

Bedrock Linux 0.7 Poki

© Bedrock Linux 2012-2020
Linux® is a registered trademark
of Linus Torvalds

Bedrock Linux 0.7 Poki Basic Usage

This is the minimum Bedrock Linux-specific background required to manage a Bedrock Linux system.


A Bedrock Linux system is composed of strata, which are collections of interrelated files. These are often one-to-one with traditional Linux distribution installs: one may have an Arch stratum, a Debian stratum, a Gentoo stratum, etc. Bedrock integrates these strata together creating a single, largely cohesive system.

To list the currently installed (and enabled) strata, run:

brl list

A fresh install will have two strata: Bedrock itself and the initial install. This, alone, is of little more immediate value than just the initial install. To benefit from Bedrock more strata are needed. To list distros Bedrock knows how to acquire as strata, run:

brl fetch --list

Then to acquire new strata, run (as root):

brl fetch distros

This may fail if it auto-detects a bad mirror. If so, manually find a good mirror for the distro and provide it to brl fetch with the --mirror flag.

You may remove strata with

brl remove strata

Cross-stratum features

Once brl fetch has completed you may run commands from the new strata. For example, the following series of commands make sense on a Bedrock system:

Bedrock's integration is not limited to the command line commands. Other features which work across strata include:

The strat command

If multiple strata provide an executable Bedrock will select one by default in a given context. If there are hints it can pick up on for which one to use, it is typically correct. brl which can be used to query which stratum's executable Bedrock will select in a given context.

Some examples:

If you would like a specific instance, you may specify it with the strat command:

Local, global, and cross file paths

To avoid conflicts, processes from one stratum may see its own stratum's instance of a given file. For example, Debian's apt and Ubuntu's apt must both see their own instance of /etc/apt/sources.list. Such file paths are referred to as local paths.

Other files must be shared across strata to ensure they work together, and thus all strata see the same file. For example, /home must be shared. Such shared files are referred to as global.

Which stratum provides a file in a given context can be queried by brl which:

Finally, cross paths are used to allow processes from one stratum to see local files from another. These are available through the /bedrock/strata and /bedrock/cross directories.

If you would like to specify which stratum's local file to read or write, prefix /bedrock/strata/stratum/ to its path.


Occasionally, software may become confused by Bedrock's environment. Most notably this occurs with compilation and build tools when scanning the environment for dependencies and finding them from different distributions. For these situations, strat's -r flag should be used to restrict the command to the given stratum. For example:

In general, if software is not acting as expected, try restricting it with strat -r.

This occurs sufficiently often with Arch's makepkg that Bedrock is configured to run makepkg through strat -r automatically under-the-hood. To bypass this, call it with strat with the -u flag.

When restricted, build tools may then complain about missing dependencies, even if they're provided by other strata. If so, install the dependencies in the build tool's stratum, just as one would do on the native distro.

This is enough information for most users to begin exploring and experimenting with Bedrock Linux. Consider running brl --help to being your exploration. If you would like to configure anything, such as the init selection menu timeout, read through /bedrock/etc/bedrock.conf.

If you would like to learn Bedrock more deeply, consider continuing to concept and terminology overview which expands on the details described here. If you run into issues, read through debugging, known issues, and compatibilty and work arounds.