Install specific Fedora spin

Install a specific Fedora spin by downloading its dedicated ISO or selecting the variant during the standard Fedora installation process.

You want a different desktop or server layout

You downloaded the standard Fedora Workstation ISO, booted it, and realized you actually wanted KDE Plasma or a minimal server setup. Or maybe you inherited a machine running GNOME and need to switch to XFCE without wiping the disk. The default installation gives you one curated experience. Fedora ships dozens of preconfigured layouts called spins. Switching to one is straightforward, but the method depends entirely on whether you are formatting the drive or working inside a running system.

Pick the correct path before you start. A botched display manager switch can leave you staring at a text console. Run this from a backup VM first if you can.

What a Fedora spin actually is

A spin is not a separate operating system. It is a curated set of dnf groups and package dependencies that tell the installer what to pull from the repositories. Think of it like a restaurant menu. The kitchen holds every ingredient. The spin is just the chef recommendation for how to plate them. When you select a spin during installation, the Anaconda installer reads a metadata file, resolves the dependency tree, and downloads the exact packages needed for that desktop environment or server role. The kernel, bootloader, and core system utilities remain identical across all spins. Only the user-space applications and display managers change.

Fedora maintains strict separation between system configuration and package defaults. Files in /etc/ are user-modified. Files in /usr/lib/ ship with the package. Edit /etc/. Never edit /usr/lib/. This convention keeps upgrades clean and prevents manual tweaks from vanishing during a dnf upgrade --refresh.

Read the group metadata before you commit. Half the time the symptom is gone once you know what the package manager is actually pulling.

Install a spin on a fresh system

The cleanest path is to download the exact ISO for the spin you want. Fedora maintains separate ISO images for each major variant. Boot the USB drive, select the installation option, and proceed. The installer will automatically apply the correct software selection. If you already have the standard Workstation ISO and want to switch spins without re-burning a USB, you can still do it during the installation process. Boot the standard ISO, choose Install Fedora, and navigate to the Software Selection screen. Click the variant selector to switch from Workstation to KDE, XFCE, Cinnamon, or Server. The installer will recalculate the package list and fetch the new dependencies from the installation media or network.

Verify the ISO checksum before you write it to a drive. A corrupted image will cause Anaconda to fail during the payload installation phase. Use sha256sum to compare the downloaded file against the official signature file from the release page.

sha256sum Fedora-KDE-Live-x86_64-41-1.6.iso
# calculates the cryptographic hash of the downloaded image
# compare this output against the .sha256 file on the release page
# mismatched hashes indicate a broken download or storage corruption

The installer uses the liveinst kernel parameter for desktop spins and boot.iso for server spins. The parameter tells the bootloader how to mount the installation environment. If the boot menu hangs at the Fedora logo, press e to edit the boot entry and verify the inst.repo path matches your USB device.

Trust the package manager. Manual file edits drift, snapshots stay.

Add a spin to an existing installation

This is where dnf takes over. You do not need to reinstall the OS. Fedora package manager handles group transactions cleanly. First, list the available software groups to find the exact name of the spin you want. Group names are standardized and usually match the desktop environment or server role.

dnf group list hidden
# hidden flag shows optional and deprecated groups
# standard group list only shows installed and default groups
# output includes group IDs and human readable descriptions

Once you identify the group name, install it. The transaction will pull the desktop environment, display manager, and default applications.

sudo dnf groupinstall "KDE Plasma Workspaces"
# groupinstall pulls the entire dependency tree for the desktop
# sudo elevates privileges for package manager operations
# dnf resolves conflicts automatically before writing files

After the packages land, you need to switch the default display manager. Fedora uses systemd to manage the login screen. The display manager service controls which graphical interface starts at boot.

sudo systemctl disable --now gdm.service
# disable stops the GNOME display manager immediately
# --now flag applies the change without requiring a reboot
sudo systemctl enable --now sddm.service
# enable sets SDDM as the default for future boots
# sddm is the display manager used by KDE and other spins

Run journalctl -xeu sddm.service if the login screen fails to appear. The x flag adds explanatory text and the e flag jumps to the end. Most sysadmins type journalctl -xeu <unit> muscle-memory style.

Reboot before you debug. Half the time the symptom is gone.

Verify the environment loaded correctly

Reboot the machine. The login screen should reflect the new desktop environment. If you are testing in a virtual machine, take a snapshot before rebooting. A misconfigured display manager can drop you to a text console. Check the active session and verify the desktop environment is running.

echo $XDG_CURRENT_DESKTOP
# prints the current desktop session identifier
# confirms the environment variables are set correctly
# output should match the spin you installed
systemctl get-default
# shows the default systemd target
# graphical.target means the system boots to a login screen
# multi-user.target means the system boots to a text console

Check the running processes to confirm the new desktop shell is active. The process name usually matches the desktop environment.

ps -ef | grep -E "(plasmashell|xfce4-session|cinnamon)"
# filters the process table for the desktop session leader
# confirms the graphical environment is actually running
# absence of the process indicates a failed session start

Firewall rules do not change when you switch spins. Run firewall-cmd --reload after every rule change. Otherwise the runtime config and the persistent config diverge.

Verify the session before you close the terminal. A silent failure will cost you an hour of guessing.

Common pitfalls and what the error looks like

The most common issue is a display manager conflict. If you install a new desktop environment but leave the old display manager enabled, the system will boot to the wrong login screen. You will see the GNOME greeter even though you installed KDE. The fix is to explicitly disable the old service and enable the new one, as shown above.

Another frequent problem is missing firmware or proprietary drivers. Some spins assume you have the rpmfusion repository enabled. If you see Error: Transaction test error: package kmod-nvidia conflicts with kernel-6.8.x, the package manager is protecting you from a broken driver stack. Enable the third-party repository before installing the spin.

Error: Transaction test error: package plasma-workspace-5.27.x conflicts with gnome-shell-45.x
# This error appears when two desktop environments fight for the same system libraries
# dnf refuses to proceed to prevent a broken graphical stack
# Remove the conflicting group or use --best --allowerasing to force resolution

SELinux can also block new services if the context labels are missing. Fedora applies strict security policies by default. If a new desktop component fails to start, check the audit logs before disabling the security framework.

sudo ausearch -m avc -ts recent
# searches the audit log for access vector cache denials
# -ts recent limits output to the last few minutes
# read the denied path to identify the missing context

SELinux denials show up in journalctl -t setroubleshoot with a one-line summary. Read those before disabling SELinux. The security framework is working as designed. Fix the context or install the policy module. Do not switch to permissive mode as a permanent solution.

Check the logs before you guess. Fabricated fixes break production systems.

Pick the right path for your hardware

Use the dedicated spin ISO when you want a guaranteed clean installation with zero package conflicts. Use the standard Workstation ISO with manual software selection when you are on a slow network and want to download only the base system first. Use dnf groupinstall on an existing system when you need to test a new desktop environment without touching your user data or configuration files. Use a minimal server spin when you are deploying headless infrastructure and want to reduce the attack surface. Stay on the default Workstation if you only need occasional access to a different desktop and do not want to manage display manager conflicts.

Fedora release cadence is six months. The N-2 release goes EOL when N+1 ships. Plan upgrades on that cycle. Use dnf system-upgrade for crossing major releases. Use dnf upgrade --refresh for weekly maintenance. They are different commands. Do not conflate them.

Snapshot the system before the upgrade. Future-you will thank you.

Where to go next