soar
The soar module installs & integrates the soar package manager as an alternative to Homebrew / Linuxbrew.
soar is a package manager, which manages the installation of portable & static binaries & applications.
PkgForge’s soarpkgs repo is used by default for the packages.
Compared to Homebrew / Linuxbrew:
- there are no managed dependencies for packages by design (single package = single binary).
- no conflicting system packages in the repo (like
systemd,dbusor similar). - it’s simpler in design, with respect for Linux folder structuring
For more information, please see the official documentation of soar.
Features
Section titled “Features”- Downloads & installs
soar. - Sets up systemd timer for auto-upgrading
soarpackages. - Sets up shell profile for automatically adding the directory containing
soarbinaries toPATH.
Currently, only the default soarpkgs repo exists.
Third-party repos are possible to be made and used, but not by default in this module.
Historically, when this module was initially introduced, a good number of pkgforge repos existed.
However, the previous maintainer of pkgforge repos Azathothas (also known as Ajam) quit and its maintainership was handled to the soar developer QaidVoid, who decided to remove all these repos and focus on the default repo soarpkgs.
Local modification
Section titled “Local modification”By default, soar utilizes BlueBuild’s config (/usr/share/bluebuild/soar/config.toml).
End-users can use custom a soar configuration by creating it at ~/.config/soar/config.toml, or in a custom directory while making sure to supply it to soar by providing SOAR_CONFIG the environment variable in shell profile.
If you specify the custom bin_path directory for soar packages, you also need to export that directory to PATH manually in the shell profile.
Uninstallation
Section titled “Uninstallation”Removing the soar module from the recipe is not enough to get it completely removed.
On a booted system, it’s also necessary to run the soar uninstallation script to uninstall config & installed packages in the ${HOME} directory.
Either a local-user can execute this script manually, or the image-maintainer may make it automatic through a custom systemd service.
Uninstallation script
#!/bin/shif [ -f "${XDG_CONFIG_HOME:-$HOME/.config}/soar/config.toml" ]; then echo "Removing soar config in '${XDG_CONFIG_HOME:-$HOME/.config}/soar/' directory" rm -r "${XDG_CONFIG_HOME:-$HOME/.config}/soar/"else echo "'${XDG_CONFIG_HOME:-$HOME/.config}/soar/config.toml' file is already removed"fiif [ -d "${XDG_DATA_HOME:-$HOME/.local/share}/soar/" ]; then echo "Removing '${XDG_DATA_HOME:-$HOME/.local/share}/soar/' directory" rm -r "${XDG_DATA_HOME:-$HOME/.local/share}/soar/"else echo "'${XDG_DATA_HOME:-$HOME/.local/share}/soar/' directory is already removed"fiExample configuration
Section titled “Example configuration”type: soaradditional-repos: trueauto-upgrade: trueupgrade-interval: '3h'Configuration options
Section titled “Configuration options”auto-upgrade:
Section titled “auto-upgrade:”boolean
Whether to auto-upgrade all installed soar packages using a systemd service.
upgrade-interval:
Section titled “upgrade-interval:”string
Defines how often the soar upgrade service should run. The string is passed directly to OnUnitInactiveSec in systemd timer. (Syntax: [‘1d’, ‘6h’, ‘10m’]).
additional-repos:
Section titled “additional-repos:”boolean
This is a placeholder option which currently does nothing, as it was used before when there were multiple available repos. It may be repurposed to be used in the future.