rad

A lightweight source-based package manager for Radian GNU/Linux and other LFS-built GNU/Linux systems. Manages system packages built from source using TOML package headers.

rad is an abbreviation for Radian Automated TOML-packages Handler.

But when it combines with Slavic God Radogost, who is the God of trade and seafaring, it's even easier to call it just rad.

It stays for managing system packages; user ones are better managed with Nix or other tools.

Installing GNU hello with rad

Showcase

Dependencies

If you use LFS, you probably have most of these dependencies installed, but make sure you have everything to avoid future errors.

  • cargo (building rad and runtime)
  • make (runtime)
  • cmake (runtime)
  • meson (runtime)
  • ninja (runtime)
  • pip (runtime)
  • tar (runtime for unpacking tarballs)
  • unzip (runtime for non-tar archives)
  • git (runtime)
  • sh (runtime, can be a symlink to any POSIX shell)
  • wget (runtime)
  • which (runtime, used by rad to check its own dependencies via --info)

Installation

Make sure you have installed all runtime dependencies first.

Clone rad with git and build it:

git clone https://github.com/dejuri/rad.git Rad
cd Rad
cargo build --release
sudo cp ./target/release/rad /usr/bin
sudo mkdir -p /etc/rad
sudo cp ./examples/config.toml /etc/rad/
rad -I
# optionally: rad -i rad

That's all!

Usage & Help

You can execute rad -h to see available arguments and learn how to use rad properly.

Usage / Examples

To understand how to describe your own package, you can look for examples in the packages repository, or check this example of the hello package. Remember, they must be in .toml format, or rad won't find them.

[package]
name = "hello"
version = "2.12.1"
description = "GNU Hello - the classic greeting program"
source = "https://ftp.gnu.org/gnu/hello/hello-2.12.1.tar.gz"

[build]
system = "autotools"
multilib_support = false
depends = ""
configure_args = ""

If you created your own package repository, you can use them locally without publishing. Change directory to where your packages are, and run:

rad -P <pkg>
rad -i <pkg>   # install (as root)
cat /var/lib/rad/installed/<pkg>
rad -r <pkg>   # remove (as root)

Issues

If you encounter an issue or a bug, please create a new issue and describe what happened.

What now?

You know best why you installed it. Remember, the code is open — you have the right to know what you are installing.

Create your repository of packages, install them, and rad will maintain system stability. You can build an entire system with rad - a Radian. Good luck, comrade.

License

GPL 3.0