
On Bazzite (and other Fedora Atomic / Universal Blue distributions), the root file system is read-only and immutable. To install software without modifying the core system image, requiring reboots, or running the risk of breaking system updates, Bazzite relies on three primary user-space package management layers:
-
Flatpak (for graphical desktop applications and some CLI tools)
-
Distrobox (for terminal utilities, development environments, and traditional Linux package managers)
-
Homebrew (for quick, native terminal utilities directly on the host)
1. Managing Software via Flatpak
Flatpak is the default method for installing desktop applications, games, and sandboxed utilities on Bazzite.
Common Flatpak Commands
-
Search for an application:
Bash
flatpak search <app-name> # Example: flatpak search heroicsun -
Install an app from Flathub:
Bash
flatpak install flathub <app-id> # Example: flatpak install flathub com.heroicgameslauncher.hgl -
List installed Flatpaks:
Bash
flatpak list --app -
Update all installed Flatpaks:
Bash
flatpak update -
Remove an application:
Bash
flatpak uninstall <app-id> -
Manage application permissions (Flatseal): For managing file permissions or hardware access for Flatpaks, Bazzite includes Flatseal:
Bash
flatpak install flathub com.github.tchx84.Flatseal
2. Managing Terminal Packages & CLI Tools via Distrobox
Distrobox uses Podman under the hood to create lightweight Linux containers (Ubuntu, Arch, Fedora, Alpine, Debian) that integrate directly with your home directory, shell, GPU, and display server.
Inside a Distrobox container, you can use traditional package managers like apt, pacman, or dnf to install any terminal software.
Step-by-Step Distrobox Workflow
Step 1: Create a Distrobox Container
You can create a container based on any Linux distribution. Bazzite includes a default container, but you can create custom ones:
Bash
# Create an Arch Linux container named "arch-box"
distrobox create --name arch-box --image archlinux:latest
# Create an Ubuntu container named "ubuntu-box"
distrobox create --name ubuntu-box --image ubuntu:latest
Step 2: Enter the Container
Bash
distrobox enter arch-box
(On your first launch, Distrobox will take a minute to initialize the container environment).
Step 3: Install Packages inside the Container
Once inside the container prompt (user@arch-box), use the native package manager for that Linux distribution:
Bash
# Inside Arch-box:
sudo pacman -Syu
sudo pacman -S neofetch ripgrep git fzf
# Or inside an Ubuntu container:
sudo apt update && sudo apt install build-essential curl
Step 4: Export Binaries or Apps to the Bazzite Host
To run a command installed inside Distrobox directly from your host Bazzite terminal (or launch a GUI app from the desktop menu), export it:
-
Export a terminal binary to your host path:
Bash
# Run this INSIDE the container: distrobox-export --bin /usr/bin/htop --export-path ~/.local/binNow you can type
htopdirectly in your host Bazzite terminal! -
Export a graphical app to your host application menu:
Bash
# Run this INSIDE the container: distrobox-export --app gimp
Step 5: Managing and Upgrading Containers
From your host Bazzite terminal:
-
List all active containers:
Bash
distrobox list -
Upgrade all packages inside all containers at once:
Bash
distrobox upgrade --all -
Delete a container:
Bash
distrobox rm arch-box
3. Alternative: Fast Terminal Packages via Homebrew
Bazzite includes Homebrew (brew) pre-configured for host-level CLI utilities. If you just want quick terminal tools without creating a full Distrobox container:
Bash
# Search for a package:
brew search <tool>
# Install a CLI tool:
brew install fastfetch btop tldr bat
# Upgrade installed packages:
brew update && brew upgrade
Homebrew installs packages into your user home directory (~/.linuxbrew), keeping the host OS completely clean.
Cheat Sheet: Which Tool Should You Use?
┌─────────────────────────────────────────────────────────────┐
│ WHAT ARE YOU INSTALLING? │
└──────────────────────────────┬──────────────────────────────┘
│
┌───────────────────────┼───────────────────────┐
▼ ▼ ▼
[ Graphical Application ] [ CLI / Dev Tool ] [ Complex Subsystem / Arch AUR ]
│ │ │
▼ ▼ ▼
FLATPAK HOMEBREW DISTROBOX
(e.g. Discord, Lutris, (e.g. fastfetch, bat, (e.g. custom python envs,
VLC, Heroic) yt-dlp, btop) GCC/Clang, specialized build tools)
Avoid
rpm-ostree installfor general apps: While Bazzite allows layering RPMs directly onto the base OS usingrpm-ostree install <package>, this requires a system reboot and slows down future system updates. Reserverpm-ostreeonly for low-level system drivers or virtualization tools (like KVM/QEMU kernel modules).
0 commenti:
Post a Comment