expand swappable component options

This commit is contained in:
Astral
2026-09-01 08:06:22 +02:00
parent f0b06a1685
commit 6729f58ed6
3 changed files with 20 additions and 19 deletions
+11 -10
View File
@@ -17,21 +17,22 @@ package manager that simply runs the commands in each recipe. No binary
packages, no opaque package machinery. The whole system — toolchain included —
is compiled from original source.
Runit handles services. The standard Linux kernel drives the hardware.
`nmtui` manages networking. Nothing you didn't ask for ends up on the disk.
Nothing is fixed. Nothing you didn't ask for is forced on you.
## The differentiator: craft your system at install time
## The differentiator: everything is swappable
Keru's installer is a TUI that walks you through designing your exact machine
*before* it ever boots:
*before* it ever boots. Every major component is selectable:
- **init system** — Runit (default), s6, OpenRC, systemd
- **C library** — glibc or musl
- **filesystem** — ext4, btrfs, xfs, zfs, f2fs
- **kernel** — linux, linux-lts, linux-hardened
- **init system** — Runit (default), s6, OpenRC, systemd, busybox init, and more
- **C library** — glibc, musl, uClibc-ng, and more
- **filesystem** — ext4, btrfs, xfs, zfs, f2fs, jfs, reiserfs, swap, and more
- **kernel** — linux, linux-lts, linux-hardened, linux-cachyos, and more
- **kernel parameters, locale, clock, keymap** — all configurable
Swappable at install time, fixed at first boot. The system that lands on your
disk is precisely the one you chose.
Every init, every libc, every filesystem, everything. The selections are made
during install and fixed at first boot. The system that lands on your disk is
precisely the one you chose.
## Repository layout
+4 -4
View File
@@ -49,16 +49,16 @@ pick() { # prompt, array-of-labels, defaults -> writes choice to $CHOICE
# ---- swappable selections ------------------------------------------------
banner "Keru OS — craft your system"
pick "Init system" runit runit s6 openrc systemd
pick "Init system" runit runit s6 openrc systemd busybox-init sysvinit dinit shepherd
INIT="$CHOICE"
pick "C library" glibc glibc musl
pick "C library" glibc glibc musl uclibc-ng
LIBC="$CHOICE"
pick "Filesystem" ext4 ext4 btrfs xfs zfs f2fs
pick "Filesystem" ext4 ext4 ext2 ext3 btrfs xfs zfs f2fs jfs reiserfs
TARGET_FS="$CHOICE"
pick "Kernel" linux linux linux-lts linux-hardened
pick "Kernel" linux linux linux-lts linux-hardened linux-cachyos linux-zen
KERNEL="$CHOICE"
pick "Network tools" nmtui networkmanager nmtui connman
+5 -5
View File
@@ -9,23 +9,23 @@
## ---------------------------------------------------------------------------
# Which init system gets installed
# runit (default) | s6 | openrc | systemd
# runit (default) | s6 | openrc | systemd | busybox-init | sysvinit | dinit | shepherd
INIT=runit
# Which libc the toolchain and packages build against
# glibc (default) | musl
# glibc (default) | musl | uclibc-ng
LIBC=glibc
# Which filesystem the target root is formatted as
# ext4 (default) | btrfs | xfs | zfs | f2fs
# ext4 (default) | ext2 | ext3 | btrfs | xfs | zfs | f2fs | jfs | reiserfs | swap
TARGET_FS=ext4
# Which kernel you want built
# linux (sane default) | linux-lts | linux-hardened
# linux (default) | linux-lts | linux-hardened | linux-cachyos | linux-zen
KERNEL=linux
# Base package set pulled into every install
BASE_PACKAGES=(base toolchain kernel runit nmtui openssh)
BASE_PACKAGES=(base toolchain kernel nmtui openssh)
# Locale / clock / keymap applied to the target
LOCALE=en_US.UTF-8