{% extends "base.html" %} {% block title %}Wiki{% endblock %} {% block content %}
Buckos (Greek for "iron") is a modern Linux distribution written entirely in Rust. It draws inspiration from Gentoo Linux, particularly its powerful Portage package management system, while providing a clean, modern implementation.
Buckos is organized as a Rust workspace with several specialized crates:
| Crate | Purpose |
|---|---|
buckos-package |
Package management, dependency resolution, and installation |
buckos-boss |
Init system (PID 1) and service management |
buckos-config |
System configuration parsing and management |
buckos-model |
Data structures for packages, dependencies, and metadata |
buckos-assist |
Help system and user documentation |
buckos-tools |
Utility functions and common tools |
buckos-web |
Website and documentation server |
The Buckos package manager is inspired by Gentoo's Portage and provides similar functionality:
# Emerge (install/update) packages
buckos-package emerge category/package
# Search packages
buckos-package search keyword
# Show package info
buckos-package info category/package
# Update world
buckos-package emerge --update --deep @world
# Unmerge (remove) packages
buckos-package unmerge category/package
# Dependency tree
buckos-package deptree category/package
The boss daemon serves as Buckos's init system, running as PID 1 and managing system services.
Services are defined in /etc/buckos/services/:
# /etc/buckos/services/nginx.toml
[service]
name = "nginx"
description = "NGINX HTTP Server"
command = "/usr/sbin/nginx"
type = "forking"
[dependencies]
after = ["network"]
wants = ["network"]
Buckos uses a layered configuration system:
/etc/buckos/make.conf - Main system configuration/etc/buckos/package.*/ - Per-package overrides# Compiler flags
CFLAGS="-O2 -pipe -march=native"
CXXFLAGS="${CFLAGS}"
# Number of parallel jobs
MAKEOPTS="-j8"
# Global USE flags
USE="X wayland pulseaudio -systemd"
# Video cards
VIDEO_CARDS="amdgpu radeonsi"
# Input devices
INPUT_DEVICES="libinput"
# Language support
LINGUAS="en en_US"
Buckos packages follow a format similar to Gentoo ebuilds, but written in a TOML-based format:
# category/package/package-1.0.0.toml
[package]
name = "example"
version = "1.0.0"
slot = "0"
description = "An example package"
homepage = "https://example.com"
license = "MIT"
[source]
uri = "https://example.com/example-1.0.0.tar.gz"
checksum = "sha256:..."
[dependencies]
build = ["dev-util/cmake"]
runtime = ["sys-libs/glibc"]
optional = { feature = ["x11-libs/gtk"] }
[use_flags]
default = ["unicode"]
available = ["debug", "unicode", "feature"]
USE flags control which features are enabled when building packages:
| Flag | Description |
|---|---|
X |
Enable X11 support |
wayland |
Enable Wayland support |
gtk |
Enable GTK+ toolkit support |
qt5 |
Enable Qt5 toolkit support |
systemd |
Enable systemd support (off by default) |
debug |
Build with debug symbols |
doc |
Build and install documentation |
# Global (in make.conf)
USE="X wayland gtk -systemd"
# Per-package (in /etc/buckos/package.use/custom)
www-client/firefox wayland geckodriver
media-video/mpv lua wayland
We welcome contributions to Buckos! Here's how to get started:
# Clone the repository
git clone https://github.com/hodgesds/buckos.git
cd buckos
# Build in development mode
cargo build
# Run tests
cargo test
# Run clippy for linting
cargo clippy
See our GitHub repository for more information.