The Chakra Build System,
cbs for short, is used to create containers with the software needed to create and upgrade Chakra packages. Here you can learn how it works and how to use it to maintain any official repository.
- Build environment using
- Clean and separated - only a new directory will be created on the host
- Transparent creation of separate packages with debug symbols
- Runs on any distribution that has
- Automatic dependency handling for
- Supports all standard
makepkgfeatures, such as repackaging
- Flexibility, e.g. building a complete package set with a single command
- Automatic repository management (creating/updating databases, cleaning/moving packages, atomic uploads)
- Install/reinstall/uninstall containers with a single command
- Simple, straight-forward and understandable scripts - even for newbies
- Quick setup
Special directories and files
make_chroot.shScript to create a container. It takes a configuration file from the
conf/folder as argument. Run
./make_chroot.sh -hfor more info.
enter_chroot.shScript to enter a container. It takes a repository name as argument, and optionally a branch. Run
./enter_chroot.sh -hfor more info.
chakra/This will be mounted as your home directory inside the container.
chakra/bin/Contains scripts, e.g. for uploading packages to rsync.chakralinux.org.
chakra/_repo/<container>/Local package repositories where packages are moved once they are built.
chakra/_sources/When building a package, sources are downloaded here, so they can be shared by different architectures.
conf/<container>.confContains pacman configuration for repositories and more.
chroots/_cacheContains cached packages.
chroots/<repository>Directories for the different combinations.
patches/Contains patches for our version of
makepkg. You do not need these.
After entering a container, the
chakra/ directory will be mounted as your home directory in
Once inside the build system, you will see a shell prompt similar to this:
jsmith@stable: ~/desktop (master *=)]$
jsmithis your username
.confconfiguration you used
~/desktopis your working directory
masteris the git branch
*indicates untracked or modified files locally and is followed by one of these:
=indicates your branch is equal to upstream
>indicates your branch is ahead of upstream
<indicates your branch is behind upstream
<>indicates your branch has diverged from upstream (is at the same time behind and ahead)