Skip to content

📦 Modules Reference

Detailed breakdown of every package installed by each module.


base.sh

Purpose: System update, essential CLI tools, fonts.

Package What It Does
curl, wget HTTP clients
git Version control
unzip, zip, tar Archive tools
htop, btop Process monitors (TUI)
neofetch System info display
tree Directory tree visualization
software-properties-common PPA management
apt-transport-https HTTPS apt sources
ca-certificates, gnupg Certificate/key management
lsb-release Distro identification
bash-completion Tab completion for commands
fonts-firacode FiraCode programming font
fonts-jetbrains-mono JetBrains Mono programming font

dev-tools.sh

Purpose: Compilers, build systems, language runtimes, CLI productivity.

Package What It Does
build-essential gcc, g++, make, libc-dev
gcc, g++, gdb C/C++ compiler and debugger
make, cmake, ninja-build Build systems
python3, python3-pip, python3-venv Python runtime
nodejs, npm JavaScript runtime
tmux Terminal multiplexer
vim-gtk3 Vim with clipboard support
jq, yq JSON/YAML processors
ripgrep Fast grep replacement
fd-find Fast find replacement
bat cat with syntax highlighting
fzf Fuzzy finder
shellcheck Shell script linter
clang, clang-format, clang-tidy LLVM toolchain
valgrind, strace, ltrace Memory/syscall/library tracing
pkg-config Library flag helper

Also installs (via script): - Go (latest stable from go.dev) - Rust (via rustup) - Python tools: pipx, virtualenv, black, flake8, mypy


embedded.sh

Purpose: Cross-compilers, Yocto dependencies, debug tools, emulation.

Package What It Does
gcc-arm-none-eabi ARM Cortex-M bare-metal compiler
binutils-arm-none-eabi ARM bare-metal linker/objdump
gcc-aarch64-linux-gnu ARM64 Linux cross-compiler
g++-aarch64-linux-gnu ARM64 Linux C++ cross-compiler
gcc-arm-linux-gnueabihf ARM32 Linux cross-compiler
g++-arm-linux-gnueabihf ARM32 Linux C++ cross-compiler
minicom, picocom, screen Serial terminal emulators
openocd JTAG/SWD debug server
gawk, diffstat, texinfo, chrpath, socat, cpio Yocto build dependencies
python3-distutils, xterm Yocto build dependencies
libsdl1.2-dev Yocto QEMU display
qemu-system-arm ARM system emulator
qemu-system-aarch64 ARM64 system emulator
qemu-user-static ARM binary execution on x86
device-tree-compiler DTS/DTB compilation
usbutils, libusb-1.0-0-dev USB device tools
doxygen, graphviz Documentation generation

Also configures: - Serial port permissions (dialout group) - udev rules for ST-Link, J-Link, FTDI, TI probes - Locale generation (en_US.UTF-8 for Yocto) - kas (Yocto build orchestrator via pip)


cloud.sh

Purpose: Container runtime, orchestration, IaC, cloud CLIs.

Package What It Does
docker.io Container runtime
docker-compose Multi-container orchestration
ansible Configuration management
httpie Human-friendly HTTP client
apache2-utils ab (benchmarking), htpasswd

Also installs (via script): - kubectl (Kubernetes CLI) - Helm (K8s package manager) - k9s (Kubernetes TUI) - Terraform (Infrastructure as Code) - AWS CLI v2 - Google Cloud CLI - Minikube (local Kubernetes) - LocalStack (local AWS emulation)


desktop.sh

Purpose: GNOME tweaks, productivity apps, theming.

Package What It Does
gnome-tweaks Advanced GNOME settings
gnome-shell-extensions Extension support
gnome-sushi File preview (spacebar)
nautilus-admin Admin context menu in Files
mpv, vlc Media players
flameshot Screenshot with annotation
variety Auto-changing wallpapers
ttf-mscorefonts-installer Microsoft fonts

Also configures: - Dark mode, button layout, hot corners, touchpad settings

Skipped on WSL (no GUI).


security.sh

Purpose: Firewall, intrusion detection, SSH hardening.

Package What It Does
ufw Uncomplicated Firewall
fail2ban Brute-force protection
clamav Antivirus scanner
lynis Security auditing
rkhunter Rootkit detection
auditd System call auditing

Also configures: - UFW: deny incoming, allow outgoing, allow SSH - SSH: disable root login, limit auth attempts to 3 - fail2ban: enabled and started


networking.sh

Purpose: Network diagnostics, packet capture, connectivity tools.

Package What It Does
net-tools ifconfig, netstat (legacy but useful)
openssh-client, openssh-server SSH client and server
nmap Network scanner
wireshark, tshark Packet capture and analysis
traceroute, mtr-tiny Route tracing
dnsutils dig, nslookup
iperf3 Network bandwidth testing
tcpdump CLI packet capture

Also configures: - Wireshark group permissions (non-root capture)


🔄 Module Dependencies

base ← (required by all other modules)
  ├── dev-tools
  │     ├── embedded
  │     └── cloud
  ├── desktop (skipped on WSL)
  ├── security
  └── networking

All modules source lib/common.sh for logging and lib/packages.sh for package lists. Each module is idempotent safe to run multiple times.


"Know what you're installing. Every package is a dependency you maintain."