title: "garuda-linux/garuda-tools: Tools required to build Garuda images (mirrored from GitLab)"
source: https://github.com/garuda-linux/garuda-tools
author:
- "[[garuda-linux]]"
- "[[JustTNE]]"
published:
created: 2025-09-01
description: Tools required to build Garuda images (mirrored from GitLab) - garuda-linux/garuda-tools
tags:
- Computer/Code
3 Branches0 TagsOpen more actions menu
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Latest commit433ad84 · Nov 27, 2021 | ||||
Dec 31, 2020 | ||||
Nov 27, 2021 | ||||
Nov 26, 2021 | ||||
Mar 22, 2020 | ||||
Dec 10, 2020 | ||||
Nov 27, 2021 | ||||
Mar 22, 2020 | ||||
Oct 27, 2020 | ||||
Mar 22, 2020 | ||||
User manual
/etc/garuda-tools/garuda-tools.conf
A user garuda-tools.conf can be placed in
$HOME/.config/garuda-tools/garuda-tools.conf
If the userconfig is present, garuda-tools will load the userconfig values, however, if variables have been set in the systemwide
/etc/garuda-tools/garuda-tools.conf
these values take precedence over the userconfig. Best practise is to leave systemwide file untouched. By default it is commented and shows just initialization values done in code.
Tools configuration is done in garuda-tools.conf or by args. Specifying args will override garuda-tools.conf settings.
User build lists(eg 'my-super-build.list') can be placed in
$HOME/.config/garuda-tools/pkg.list.d
$HOME/.config/garuda-tools/iso.list.d
overriding
/etc/garuda-tools/pkg.list.d
/etc/garuda-tools/iso.list.d
######################################################
################ garuda-tools.conf ##################
######################################################
# default target branch
# target_branch=stable
# default target arch: auto detect
# target_arch=$(uname -m)
# cache dir where buildpkg, buildtree cache packages/pkgbuild, builiso iso files
# cache_dir=/var/cache/garuda-tools
# build dir where buildpkg or buildiso chroots are created
# chroots_dir=/var/lib/garuda-tools
# log dir where log files are created
# log_dir='/var/log/garuda-tools'
# custom build mirror server
# build_mirror=https://garuda.moson.eu
################ buildtree ###############
# garuda package tree
# repo_tree=('core' 'extra' 'community' 'multilib')
# host_tree=https://github.com/garuda
# default https seems slow; try this
# host_tree_abs=git://projects.archlinux.org/svntogit
################ buildpkg ################
# default pkg build list; name without .list extension
# build_list_pkg=default
################ buildiso ################
#default branch for iso-profiles repo: v17.1>current release | master>development release
# branch=v17.1
# default iso build list; name without .list extension
# build_list_iso=default
# the dist release; default: auto
# dist_release=auto
# the branding; default: auto
# dist_branding="garuda"
# unset defaults to given value
# kernel="linux54"
# gpg key; leave empty or commented to skip sfs signing
# gpgkey=""
########## calamares preferences ##########
#See branding.desc.d for reference
# welcome style for calamares: true="Welcome to the %1 installer." ; false="Welcome to the Calamares installer for %1." (default)
# welcomestyle=false
# welcome image scaled (productWelcome)
# welcomelogo=true
# size and expansion policy for Calamares (possible value: normal,fullscreen,noexpand)
# windowexp=noexpand
# size of Calamares window, expressed as w,h.
# (possible units: pixel (px) or font-units (em))
# windowsize="800px,520px"
# colors for text and background components:
# background of the sidebar
# sidebarbackground=#454948
# text color
# sidebartext=#efefef
# background of the selected step
# sidebartextselect=#4d915e
# text color of the selected step
# sidebartexthighlight=#1a1c1b
################ deployiso ################
# the server user
# account=[SetUser]
# Set to 'true' to use ssh-agent to store passphrase.
# ssh_agent=false
# use alternative storage server (one or the other might be more stable)
# alt_storage=false
# the server project: garuda|garuda-community
# determined automatically based on profile if unset
# project="[SetProject]"
# set upload bandwidth limit in kB/s
# limit=
# the torrent tracker urls, comma separated
# tracker_url='udp://mirror.strits.dk:6969'
# Piece size, 2^n
# piece_size=21
$ buildpkg -h
Usage: buildpkg [options]
-a Arch [default: auto]
-b Branch [default: stable]
-c Recreate chroot
-h This help
-i Install a package into the working copy of the chroot
-n Install and run namcap check
-p Buildset or pkg [default: default]
-q Query settings and pretend build
-r
###### \* build sysvinit package for both arches and branch testing:- i686(buildsystem is x86\_64)
buildpkg -p sysvinit -a i686 -b testing -cwsn
- for x86\_64
buildpkg -p sysvinit -b testing -cswn
You can drop the branch arg if you set the branch in garuda-tools.conf The arch can also be set in garuda-tools.conf, but under normal conditions, it is better to specify the non native arch by -a parameter.
###### \* -c- Removes the chroot dir
- If the -c parameter is not used, buildpkg will update the existing chroot or create a new one if none is present.
###### \* -n- Installs the built package in the chroot and runs a namcap check
###### \* -s- Signs the package when built
###### \* -w- Cleans pkgcache, and logfiles
### 3\. buildisobuildiso is used to build garuda-iso-profiles. It is run insde the profiles folder.
##### Packages for livecd only:- garuda-livecd-systemd
#### Arguments```
$ buildiso -h
Usage: buildiso [options]
-i Initialize iso-profiles repo [default: v17.1]"
-a <arch> Arch [default: auto]
-b <branch> Branch [default: stable]
-c Disable clean work dir
-f Build full ISO (extra=true)
-g <key> The gpg key for sfs signing
[default: empty]
-h This help
-k <name> Kernel to use
[default: linux49]
-l Create permalink
-m Set SquashFS image mode to persistence
-p <profile> Buildset or profile [default: default]
-q Query settings and pretend build
-r <dir> Chroots directory
[default: /var/lib/garuda-tools/buildiso]
-t <dir> Target directory
[default: /var/cache/garuda-tools/iso]
-v Verbose output to log file, show profile detail (-q)
-x Build images only
-z Generate iso only
Requires pre built images (-x)
buildiso -i
for download in /usr/share/garuda-tools/iso-profiles our garuda profiles. You can override in garuda-tools.conf what branch use with buildiso: v17.1 or master ( development profiles ). The previous command can be used to refresh the profiles as needed in your local.
buildiso -p xfce -a i686 -b testing
buildiso -p xfce -b testing
The branch can be defined also in garuda-tools.conf, but a manual parameter will always override conf settings.
$ check-yaml -h
Usage: check-yaml [options]
-a <arch> Arch [default: auto]
-c Check also calamares yaml files generated for the profile
-g Enable pacman group accepted for -p
-h This help
-k <name> Kernel to use[default: linux44]
-p <profile> Buildset or profile [default: default]
-q Query settings
-v Validate by schema
check-yaml -p xfce -a i686 -c
check-yaml -p xfce -c
check-yaml -p kdebase -gv
$ buildtree -h
Usage: buildtree [options]
-a Sync arch abs
-c Clean package tree
-h This help
-q Query settings
-s Sync garuda tree
###### \* sync arch and garuda trees```
buildtree -as
$ garuda-chroot -h
usage: garuda-chroot -a [or] garuda-chroot chroot-dir [command]
-a Automount detected linux system
-h Print this help message
-q Query settings and pretend
If 'command' is unspecified, garuda-chroot will launch /bin/sh.
If 'automount' is true, garuda-chroot will launch /bin/bash
and /build/garuda-tools/garuda-chroot.
###### \* automount```
garuda-chroot -a
garuda-chroot /mnt /bin/bash
### 7\. deployisodeployiso is a script to upload a specific iso or a buiildset to OSDN.
#### Arguments```
$ deployiso -h
Usage: deployiso [options]
-d Use hidden remote directory
-h This help
-l Limit bandwidth in kB/s [default:]
-p Source folder to upload [default:default]
-q Query settings and pretend upload
-s Sign ISO and create checksums
-t Create ISO torrent
-u Update remote directory
-v Verbose output
-z Upload permalinks (shell.osdn.net)
deployiso -p official
###### \* upload sign xfce ISO file, create checksums, create torrent and upload to hidden directory```
deployiso -p xfce -std
Tools required to build Garuda images (mirrored from GitLab)
No releases published
No packages published
There was an error while loading. Please reload this page.