Setting up a chroot Baserock
First, install the following packages from your distribution:
- chroot
- schroot
Clone the baserock-chroot setup git repository:
$ git clone https://gitlab.com/baserock/baserock-chroot.git
Generate the tools
Now we build and install the manage-baserock and enter-baserock tools. First, change to the baserock-chroot
directory:
$ cd baserock-chroot
Debian based
On Debian based systems, you can create and install a .deb package:
$ sudo apt-get install debhelper
$ make pkg
$ cd ../
Now you should have baserock-chroot_3_all.deb
.
$ sudo apt-get install socat
$ sudo dpkg -i baserock-chroot_3_all.deb
Other
On other systems, the tools can be created and installed as follows:
$ sudo make install
Running Baserock
The first step is to add a baserock chroot, using the manage-baserock tool.
$ manage-baserock add 14-22 http://download.baserock.org/baserock/baserock-current-build-system-x86_64-chroot.tar.gz
Here we use manage-baserock with the add command, and create an installation with the name 14-22 from the URL given. Note that on Debian-based systems you may need to run /usr/sbin/manage-baserock
.
The location of the chroot is in /opt/baserock
.
Finally, we enter Baserock as follows:
$ enter-baserock
Note: on Debian-based systems you may need to run
/usr/sbin/enter-baserock
.Note: In Arch-based systemd you need to comment
networks
in/etc/schroot/baserock-[yourchrootname]/nssdatabases
Your development system is now running in the chroot: return to the 'Quick start' page and follow the instructions there to finish configuring it it.
Deploying a Build
To add a new build it must be deployed as a tar. For example the following cluster morphology could be used to deploy the devel system on 64-bit x86.
name: devel-system-x86_64-chroot
kind: cluster
systems:
- morph: systems/devel-system-x86_64-chroot.morph
deploy:
devel-system-x86_64-chroot:
type: extensions/tar
location: /src/devel-system-x86_64-chroot.tar
Once deployed leave the chroot and add the new system to the chroot tool, in this example it has been named devel
$ manage-baserock add devel /opt/baserock/src/devel-system-x86_64-chroot.tar
The new system is entered as follows:
$ enter-baserock devel
Removing a Chroot
In order to properly remove a Baserock chroot use
$ manage-baserock rm <name of chroot to be removed>
For example, to remove the devel system from the previous example do
$ manage-baserock rm devel
Notes on using Baserock in a chroot
- Running
modprobe btrfs
outside the chroot may be necessary, to ensure that the kernel support for btrfs is available. This is needed to e.g.morph deploy
to a raw image from within the chroot. - Morph can deploy to a tar file suitable for installing with
manage-baserock
. Just settype: extensions/tar
in the deployment morphology. - When installing from a local tar file, run
manage-baserock add <name> <path>
and then useenter-baserock <name>