Creating an environment
To get started, let’s create an environment from a Linux laptop. This laptop is using an ARM CPU (aarch64) which makes its full system typeaarch64-linux.
When using flox search you may see packages that won’t immediately work with your manifest, but finding and allowing system specific packages is very easy.
Flox shows software from the following systems: aarch64-darwin, x86_64-darwin, aarch64-linux, and x86_64-linux.
Some packages may support only a subset of system types. You can inspect a
package with flox show to see what system types are supported:
flox push.
Using the environment from a different system type
Many packages in Flox will work without any issue across system types. To test this out, runflox pull from another system such as an
Apple machine with an M-series processor.
This system type is aarch64-darwin.
Then let’s run a simple gpg --version command to test everything is working.
Handling unsupported packages
However, some packages only work with a subset of systems. To demonstrate this let’s install a package that isn’t compatible with an Apple machine. From the Linux machine…systemd, because the systemd.systems list
specifies that systemd should only be installed on Linux.
This environment will activate on both machines and the Apple machine won’t
get the systemd package.