openSUSE Tumbleweed: Install and Setup Guide

openSUSE Tumbleweed installation guide

Tested on: openSUSE Tumbleweed (snapshot 20260601) · x86_64 and aarch64 — Last updated: June 2026

openSUSE Tumbleweed is a rolling-release Linux distribution maintained by the openSUSE Project and backed by SUSE. Unlike point-release distributions, Tumbleweed ships the latest kernel, desktop environment, and libraries continuously — validated by openQA, SUSE's automated testing framework, before each snapshot reaches users. The result is one of the most well-tested rolling distributions available, with Btrfs snapshots and Snapper giving you a hard rollback target whenever an update goes sideways.

Contents
  1. Tumbleweed vs Leap vs Other Rolling Distros
  2. Prerequisites
  3. Download and Verify the ISO
  4. Installation with YaST
    1. 1. Language, Keyboard, License
    2. 2. Network Setup
    3. 3. Partitioning — Keep Btrfs
    4. 4. Desktop Environment and Software
    5. 5. Users and Root Password
    6. 6. Installation Summary and Confirmation
  5. First Boot: System Update
  6. Package Management with zypper
  7. Adding Repositories and Multimedia Codecs
  8. System Snapshots and Rollback with Snapper
  9. YaST: System Configuration
  10. Developer Tools Setup
  11. Firewall Configuration
  12. Troubleshooting
    1. zypper dup fails with dependency conflict
    2. System fails to boot after update
    3. Further Reading

Tumbleweed vs Leap vs Other Rolling Distros

DistroTypePackage managerBest for
openSUSE TumbleweedRolling releasezypper / rpmDesktops, developers wanting latest software
openSUSE Leap 15.6Fixed releasezypper / rpmServers, stability-first workstations
Arch LinuxRolling releasepacmanAdvanced users, minimal base
Fedora RawhideRolling (unstable)dnfGNOME/Red Hat upstream testing
EndeavourOSRolling (Arch base)pacman + yayArch with a GUI installer

The key differentiator: every Tumbleweed snapshot passes a battery of openQA tests covering installation, core functionality, and major applications before publication. You get bleeding-edge packages without the raw instability of Fedora Rawhide or unvetted Arch updates.

Prerequisites

  • A 64-bit processor — x86_64 or aarch64
  • 4 GB RAM minimum (8 GB recommended for KDE Plasma or GNOME)
  • 40 GB free disk space (20 GB absolute minimum, but you'll feel it)
  • A USB drive of 8 GB or larger for the installer
  • Internet connection — strongly recommended during install to pull current packages
  • UEFI firmware with Secure Boot disabled, or Secure Boot enabled with the openSUSE shim (both work; disabling is simpler)

Download and Verify the ISO

Download directly from get.opensuse.org. You choose your desktop environment at download time rather than switching later. The options:

  • KDE Plasma — openSUSE's primary desktop. The best-integrated option; openSUSE is a top KDE contributor.
  • GNOME — clean, modern, solid Wayland support
  • XFCE / LXQt / Cinnamon — lighter alternatives for older hardware
  • Minimal / Server — no GUI; installs a base system you build on top of

After downloading, verify the checksum and write to USB:

# Verify the SHA-256 checksum (compare against the .sha256 file from get.opensuse.org)
sha256sum openSUSE-Tumbleweed-DVD-x86_64-Snapshot*.iso

# Write to USB — replace /dev/sdX with your actual device (check with lsblk first)
lsblk
sudo dd if=openSUSE-Tumbleweed-DVD-x86_64-Snapshot*.iso 
    of=/dev/sdX bs=4M status=progress conv=fsync

On Windows, use Rufus in DD mode — not ISO mode. On macOS, use dd with the same syntax above (use diskutil list to find the device).

Installation with YaST

YaST (Yet Another Setup Tool) is openSUSE's installation and configuration framework — arguably the most comprehensive Linux installer available. Boot from USB and follow these stages:

1. Language, Keyboard, License

Select your language and keyboard layout. Both can be changed post-install. Accept the license. If you're connected to the network, YaST will pull the latest package metadata before proceeding.

2. Network Setup

Connect during installation. Tumbleweed will download current packages from the mirrors rather than installing potentially outdated packages from the ISO image. This adds time upfront but means you boot into a fully updated system immediately.

3. Partitioning — Keep Btrfs

YaST proposes a Btrfs layout with subvolumes for / and XFS for /home. Accept this layout unless you have a specific reason not to. Btrfs subvolumes are what make Snapper rollbacks possible. The default proposed layout:

  • /boot/efi — 512 MB, FAT32 (UEFI systems)
  • / — 30+ GB, Btrfs with subvolumes (@, @/var, @/usr/local, etc.)
  • /home — remaining space, XFS
  • swap — optional; a swapfile works fine on Btrfs with current kernels

If you're dual-booting, use the "Expert Partitioner" to manually assign partitions and avoid touching existing EFI or Windows partitions.

4. Desktop Environment and Software

Confirm your desktop selection. You can add or remove patterns here. A pattern is a curated group of packages — devel_C_C++, laptop, multimedia are examples. You can install additional patterns post-install.

5. Users and Root Password

Create your user account. Set a separate root password — this is the security-correct choice. If you use the same password for both, YaST will warn you. You can also disable root login entirely and use sudo exclusively; openSUSE supports both models.

6. Installation Summary and Confirmation

YaST presents a summary of every decision before writing anything to disk. Review it. The firewall and SSH service states are shown here — enable SSH if you need remote access from first boot.

First Boot: System Update

Even if you installed with network access, run a full distribution upgrade immediately after first boot:

# Refresh all repository metadata
sudo zypper refresh

# Perform a full rolling-release upgrade
sudo zypper dup

Reboot if the kernel was updated:

sudo reboot

Package Management with zypper

zypper is the command-line package manager. The critical rule for Tumbleweed: always use zypper dup to upgrade, never zypper update.

# Full system upgrade (use this for Tumbleweed, not 'update')
sudo zypper dup

# Search for a package
zypper search nginx

# Install a package
sudo zypper install nginx

# Remove a package (and its no-longer-needed dependencies)
sudo zypper remove --clean-deps nginx

# Show detailed package information
zypper info nginx

# List installed packages
zypper packages --installed-only

# Find which package provides a specific file or binary
zypper what-provides /usr/bin/python3

# List all active repositories
sudo zypper repos --details

Why zypper dup and not zypper update? On a rolling release, package dependencies change constantly. zypper update will refuse operations that require removing an existing package to resolve a conflict. zypper dup (distribution upgrade) handles those conflicts correctly — replacing obsolete packages with their updated equivalents, which is exactly the behaviour a rolling release requires.

Adding Repositories and Multimedia Codecs

The default Tumbleweed repositories ship open-source packages. For multimedia codecs (MP3, H.264, HEVC, AAC), you need Packman — the most important community repository:

# Add Packman repository with priority 90 (higher priority than default repos)
sudo zypper addrepo -cfp 90 
    https://ftp.gwdg.de/pub/linux/misc/packman/suse/openSUSE_Tumbleweed/ 
    packman

# Refresh
sudo zypper refresh

# Install multimedia codecs from Packman
sudo zypper install --from packman 
    ffmpeg 
    gstreamer-plugins-good 
    gstreamer-plugins-bad 
    gstreamer-plugins-ugly 
    gstreamer-plugins-libav 
    vlc 
    vlc-codecs

# Switch any already-installed conflicting packages to Packman versions
sudo zypper dup --from packman --allow-vendor-change

The --allow-vendor-change flag is necessary because the same package (e.g., libavcodec) exists in both the official repo and Packman — you're explicitly telling zypper it's acceptable to switch vendors.

To find other community repositories, browse software.opensuse.org. Each package page shows a one-click install button or the exact zypper addrepo command.

System Snapshots and Rollback with Snapper

Snapper integrates with zypper to automatically create a pre/post snapshot pair around every package operation. This is Tumbleweed's strongest reliability feature — if an update breaks something, rollback is a reboot away.

# List all snapshots
sudo snapper list

# Example output:
#  # | Type   | Pre # | Date                     | User | Cleanup | Description
# ---+--------+-------+--------------------------+------+---------+---------------------------
#  0 | single |       |                          | root |         | current
#  1 | single |       | Mon Jun  2 09:11:42 2026 | root | number  | first root filesystem
# 42 | pre    |       | Mon Jun  2 14:23:01 2026 | root | number  | zypper-dup
# 43 | post   |    42 | Mon Jun  2 14:31:18 2026 | root | number  | zypper-dup

# Show what changed between pre and post snapshot of a zypper dup
sudo snapper diff 42..43

# Roll back to snapshot 42 (marks it as the new default subvolume on next boot)
sudo snapper rollback 42
sudo reboot

You can also roll back without a running system. From the GRUB menu, select Start openSUSE Tumbleweed → Bootable snapshots, choose the last working snapshot, boot into it, confirm it works, then run sudo snapper rollback to make it permanent.

YaST: System Configuration

YaST handles almost everything that other distributions scatter across ten different tools. Use it post-install for configuration tasks:

# Launch the YaST control center (GUI)
sudo yast2

# Individual modules — run these directly
sudo yast2 firewall        # Firewall zones and rules
sudo yast2 users           # User and group management
sudo yast2 partitioner     # Disk and filesystem management
sudo yast2 software        # Graphical package manager
sudo yast2 network         # Network interfaces and routing
sudo yast2 services-manager # systemd service control
sudo yast2 bootloader      # GRUB2 configuration

Developer Tools Setup

# C/C++ toolchain (gcc, make, gdb, cmake, headers)
sudo zypper install -t pattern devel_C_C++

# Python 3 with pip and virtualenv
sudo zypper install python3 python3-pip python3-virtualenv

# Git
sudo zypper install git

# Docker
sudo zypper install docker
sudo systemctl enable --now docker
sudo usermod -aG docker $USER
# Log out and back in for group membership to take effect

# Node.js (LTS from distro repos)
sudo zypper install nodejs npm

# Visual Studio Code (from Microsoft's repository)
sudo rpm --import https://packages.microsoft.com/keys/microsoft.asc
sudo zypper addrepo https://packages.microsoft.com/yumrepos/vscode vscode
sudo zypper refresh
sudo zypper install code

# Flatpak support (for apps not in zypper repos)
sudo zypper install flatpak
flatpak remote-add --if-not-exists flathub https://dl.flathub.org/repo/flathub.flatpakrepo

Firewall Configuration

Tumbleweed ships with firewalld enabled by default. Manage it via firewall-cmd or yast2 firewall:

# Check firewalld status
sudo firewall-cmd --state

# List active rules in the default zone
sudo firewall-cmd --list-all

# Open a specific port permanently
sudo firewall-cmd --permanent --add-port=8080/tcp

# Allow a named service
sudo firewall-cmd --permanent --add-service=http
sudo firewall-cmd --permanent --add-service=https

# Apply permanent changes without restarting
sudo firewall-cmd --reload

# Check which zone your interface is in
sudo firewall-cmd --get-active-zones

Troubleshooting

zypper dup fails with dependency conflict

This usually happens when a package from a third-party repo (Packman, NVIDIA, VS Code) conflicts with an updated package from the main repo. Add --allow-vendor-change:

sudo zypper dup --allow-vendor-change

If the conflict persists, zypper will present numbered resolution options. Read them — option 1 is not always the right choice. Selecting "keep obsolete package" is sometimes correct while you wait for the third-party repo to update.

System fails to boot after update

At the GRUB menu, select Start openSUSE Tumbleweed → Bootable snapshots


Go up