2018-09-13 12:17:34 +00:00
|
|
|
# Fedora Toolbox — Hacking on your OSTree-based Fedora
|
|
|
|
|
2018-09-14 09:37:05 +00:00
|
|
|
[Fedora Toolbox](https://github.com/debarshiray/fedora-toolbox) is a tool that
|
|
|
|
offers a familiar RPM based environment for developing and debugging software
|
2018-09-14 11:11:53 +00:00
|
|
|
on locked down [OSTree](https://ostree.readthedocs.io/en/latest/) based Fedora
|
2018-09-14 09:37:05 +00:00
|
|
|
systems like [Silverblue](https://silverblue.fedoraproject.org/). Such
|
|
|
|
operating systems are shipped as *immutable* OSTree images, where it's
|
|
|
|
difficult to setup a development environment with your favorite tools, editors
|
|
|
|
and SDKs. A toolbox container solves that problem by providing a RPM based
|
|
|
|
*mutable* container. You can tweak it to your heart's content and use DNF to
|
|
|
|
install your favorite packages, all without worrying about breaking your
|
|
|
|
operating system.
|
2018-09-13 12:17:34 +00:00
|
|
|
|
|
|
|
The toolbox environment is based on the `fedora-toolbox` image. This image is
|
|
|
|
then customized for the current user to create a toolbox container that
|
|
|
|
seamlessly integrates with the rest of the operating system.
|
2018-08-31 16:02:49 +00:00
|
|
|
|
|
|
|
## Usage
|
|
|
|
|
|
|
|
### Create the basic Fedora Toolbox image:
|
2018-09-26 14:25:29 +00:00
|
|
|
Use one of the sub-directories under `images` to create a `fedora-toolbox`
|
|
|
|
image for a Fedora version that matches your host. eg., let's say we have a
|
|
|
|
Fedora 28 host.
|
2018-08-31 16:02:49 +00:00
|
|
|
```
|
2018-09-27 09:59:24 +00:00
|
|
|
[user@hostname fedora-toolbox]$ buildah bud --tag fedora-toolbox:28 images/fedora/f28
|
2018-08-31 16:02:49 +00:00
|
|
|
STEP 1: FROM docker://registry.fedoraproject.org/fedora:28
|
|
|
|
Getting image source signatures
|
|
|
|
…
|
|
|
|
…
|
|
|
|
…
|
|
|
|
[user@hostname fedora-toolbox]$
|
|
|
|
```
|
2018-09-26 14:25:29 +00:00
|
|
|
Note that the image should be tagged as `fedora-toolbox` with a suffix
|
|
|
|
matching the host Fedora version. In this example, it should be
|
|
|
|
`fedora-toolbox:28`.
|
2018-08-31 16:02:49 +00:00
|
|
|
|
|
|
|
### Create your Fedora Toolbox container:
|
|
|
|
```
|
|
|
|
[user@hostname fedora-toolbox]$ ./fedora-toolbox create
|
|
|
|
[user@hostname fedora-toolbox]$
|
|
|
|
```
|
|
|
|
This will create a container, and an image, called
|
|
|
|
`fedora-toolbox-<your-username>:28` that's specifically customised for your
|
|
|
|
host user.
|
|
|
|
|
|
|
|
### Enter the Toolbox:
|
|
|
|
```
|
|
|
|
[user@hostname fedora-toolbox]$ ./fedora-toolbox enter
|
2018-09-12 14:29:15 +00:00
|
|
|
🔹[user@toolbox ~]$
|
2018-08-31 16:02:49 +00:00
|
|
|
```
|
|
|
|
|