title: “Configuration” linkTitle: “Configuration weight: 2 description: > Configuring Luet


  # Define max concurrency processes. Default is based of arch: runtime.NumCPU()
  concurrency: 1
  # Enable Debug. If debug is active spinner is disabled.
  debug: false
  # Show output of build execution (docker, img, etc.)
  show_build_output: false
  # Define spinner ms
  spinner_ms: 200
  # Define spinner charset. See https://github.com/briandowns/spinner
  spinner_charset: 22
  # Enable warnings to exit
  fatal_warnings: false
  # Try extracting tree/packages with the same ownership as exists in the archive (default for superuser).
  same_owner: false


After the building of the packages, you can apply arbitrary images on top using the images stanza. This is useful if you need to pin a package to a specific version.

  - quay.io/kairos/packages:kairos-agent-system-2.1.12


  # Enable loggging to file (if path is not empty)
  enable_logfile: false
  #  Leave empty to skip logging to file.
  path: "/var/log/luet.log"
  # Set logging level: error|warning|info|debug
  level: "info"
  #  Enable JSON log format instead of console mode.
  json_format: false.
  #  Disable/Enable color
  color: true
  #  Enable/Disable emoji
  enable_emoji: true

Repositories configurations directories.

# Define the list of directories where luet
# try for files with .yml extension that define
# luet repository.
  - /etc/luet/repos.conf.d

Finalizer Environment Variables

 - key: "BUILD_ISO"
   value: "1"


To add repositories, you can either add a repositories stanza in your /etc/luet/luet.yaml or either add one or more yaml files in /etc/luet/repos.conf.d/.

Configuring repositories in the main configuration file

  color: true # Enable/Disable colored output
  enable_emoji: true # Enable/Disable emoji from output
  debug: false # Enable/Disable debug
  rootfs: "/" # What's our rootfs. Luet can install packages outside of "/"
  database_path: "/var/db/luet" # Where to store DB files
  database_engine: "boltdb"
  tmpdir_base: "/var/tmp/luet" # The temporary directory to be used
- name: "some-repository-name" # Repository name
  description: "A beautiful description"
  type: "http" # Repository type, disk or http are supported (disk for local path)
  enable: true # Enable/Disable repo
  cached: true # Enable cache for repository
  priority: 3 # Cache priority
  urls: # Repository URLs
    - "...."

Using different files to configure repositories

In the main configuration file you can specify the directory where all repositories are configured:

  - /etc/luet/repos.conf.d

Then add a file inside /etc/luet/repos.conf.d/example.yaml with your configuration, e.g.:

name: "..." # Repository name
description: "..."
type: "http" # Repository type, disk or http are supported (disk for local path)
enable: true # Enable/Disable repo
cached: true # Enable cache for repository
priority: 3 # Cache priority
urls: # Repository URLs
  - "..."

There is available a collection of repositories, which is containing a list of repositories that can be installed in the system with luet install.

If you installed Luet from the curl command, you just need to run luet search repository to see a list of all the available repository, and you can install them singularly by running luet install repository/<name>. Otherwise, add the repository stanzas you need to /etc/luet/luet.yaml.

Config protect configuration files directories.

# Define the list of directories where load
# configuration files with the list of config
# protect paths.
  - /etc/luet/config.protect.d
# Ignore rules defined on
# config protect confdir and packages
# annotation.
config_protect_skip: false
# The paths used for load repositories and config
# protects are based on host rootfs.
# If set to false rootfs path is used as prefix.
config_from_host: true

Solver Parameter Configuration

  # Solver strategy to solve possible conflicts during depedency
  # solving. Defaults to empty (none). Available: qlearning
  type: ""
  # Solver agent learning rate. 0.1 to 1.0
  rate: 0.7
  # Learning discount factor.
  discount: 1.0
  # Number of overall attempts that the solver has available before bailing out.
  max_attempts: 9000


  # Rootfs path of the luet system. Default is /.
  # A specific path could be used for test installation to
  # a chroot environment.
  rootfs: "/"
  # Database engine used for luet database.
  # Supported values: boltdb|memory
  database_engine: boltdb
  # Database path directory where store luet database.
  # The path is appended to rootfs option path.
  database_path: "/var/cache/luet"
  # Define the tmpdir base directory where luet store temporary files.
  # Default $TMPDIR/tmpluet
  tmpdir_base: "/tmp/tmpluet"

Last modified August 21, 2023: Try to fix tests due to upx (#343) (c47bf48)