Debian

How To Install Wine on Debian 13/12

Running Windows software on Linux has gone from a novelty to a boring, reliable part of a Linux desktop. Wine bridges that gap without a VM, without a dual boot, and without buying a Windows license. This guide walks through installing Wine on Debian 13 trixie, either from the distro’s own package set or the upstream WineHQ repo that ships fresher releases.

Original content from computingforgeeks.com - post 20292

We cover both paths: Debian’s bundled Wine (fast to install, one release behind upstream) and the official WineHQ APT repository (the path most readers want). You will also set up 32-bit support because most Windows installers still need it, install Winetricks for fonts and DLLs, boot a Wine prefix, and isolate apps into separate prefixes so one broken install does not take the rest down with it. Tested on Debian 13 trixie and covers Debian 12 bookworm where the steps differ.

Last verified: April 2026 | Tested on Debian 13.4 trixie (kernel 6.12) with WineHQ stable 11.0 and Debian-packaged Wine 10.0

Prerequisites

Before starting, confirm:

  • A Debian 13 trixie or Debian 12 bookworm system. Kernel 6.1 or newer is fine
  • Root or sudo access
  • At least 4 GB free disk. A single Wine prefix with a few apps easily hits 2 GB
  • Working network to deb.debian.org and, for the upstream path, dl.winehq.org
  • A desktop environment if you plan to run GUI Windows apps. Headless servers work for CLI Windows binaries, but a real display is needed for installers like Notepad++

Step 1: Enable 32-bit architecture

Debian defaults to amd64 only. Most Windows installers still ship 32-bit components even when the app itself is 64-bit, so Wine needs i386 packages to link against. Add the architecture and refresh the package index:

sudo dpkg --add-architecture i386
sudo apt update

Confirm i386 is now active:

dpkg --print-foreign-architectures

The output should list i386:

i386

Skip this step and the WineHQ installer will fail with missing wine-stable-i386:i386 dependencies, which is the single most common reason a Wine install breaks on a fresh Debian box.

Step 2: Install Wine from the Debian repository (quick path)

Debian 13 trixie packages Wine 10.0 in the otherosfs section of main. It is one release behind WineHQ’s current stable, but it pulls in cleanly through APT and integrates with the rest of the system packages. Good enough for quick testing or if you prefer Debian’s release cadence over upstream’s.

Install the meta package plus both 32-bit and 64-bit runtimes, and add Winetricks while you are at it:

sudo apt install -y wine wine32 wine64 winetricks

APT pulls in several hundred i386 multiarch dependencies (GTK, FreeType, ALSA, libvulkan, and friends) on first run. Expect ~500 MB of downloads and closer to 1.5 GB installed. Check the version when it is done:

wine --version

On Debian 13 trixie this reports:

wine-10.0 (Debian 10.0~repack-6)

On Debian 12 bookworm the same command installs Wine 8.0 from the distro, which is older again. If that version is too old for the Windows app you care about, stop here, remove the Debian Wine, and use the WineHQ repository in the next section instead.

To remove the Debian Wine before switching to WineHQ:

sudo apt remove -y wine wine32 wine64
sudo apt autoremove -y

The WineHQ project publishes its own APT repository with three branches:

  • Stable (winehq-stable): what most users want. Currently 11.0
  • Development (winehq-devel): newer features, more fixes, more regressions
  • Staging (winehq-staging): development plus experimental patches, mostly for games

Debian 13 trixie is supported as a first-class suite by WineHQ, so pick it directly. If you are on Debian 12 bookworm, swap trixie for bookworm in the sources file below and everything else is identical.

First, drop the WineHQ signing key into the modern /etc/apt/keyrings location. Never use the deprecated apt-key add flow, which has been disabled on Debian 12 and later:

sudo mkdir -p /etc/apt/keyrings
wget -qO- https://dl.winehq.org/wine-builds/winehq.key | sudo gpg --dearmor -o /etc/apt/keyrings/winehq.gpg

Next, create a deb822-format sources file. Debian 13 ships with a deb822-capable APT, and this format is cleaner than the old single-line style because each field is explicit. Open a new sources file for editing:

sudo nano /etc/apt/sources.list.d/winehq.sources

Paste the following content and save:

Types: deb
URIs: https://dl.winehq.org/wine-builds/debian/
Suites: trixie
Components: main
Architectures: amd64 i386
Signed-By: /etc/apt/keyrings/winehq.gpg

Refresh the index and confirm WineHQ packages appear:

sudo apt update
apt-cache policy winehq-stable

Expect something like:

winehq-stable:
  Installed: (none)
  Candidate: 11.0.0.0~trixie-1
  Version table:
     11.0.0.0~trixie-1 500
        500 https://dl.winehq.org/wine-builds/debian trixie/main amd64 Packages
     10.0.0.0~trixie-1 500
        500 https://dl.winehq.org/wine-builds/debian trixie/main amd64 Packages

WineHQ keeps older stable releases in the repo, so rolling back to 10.0 with apt install winehq-stable=10.0.0.0~trixie-1 is always an option.

Step 4: Install WineHQ stable

With the repo in place, install the stable branch. The --install-recommends flag pulls in extra packages (Mono, Gecko, 32-bit libraries) that legitimately improve compatibility, so keep it:

sudo apt install --install-recommends -y winehq-stable

This is a bigger download than the Debian-repo route because WineHQ bundles its own binaries under /opt/wine-stable rather than sharing system libraries. Verify the install:

wine --version

The output confirms the upstream stable release:

wine-11.0

Wine also ships a Windows-style version reporter. Check what Windows build Wine pretends to be:

wine cmd /c ver

By default Wine 11 reports itself as Windows 10 to apps that ask:

Microsoft Windows 10.0.19045

You can change that with winecfg if an installer insists on Windows 7 or 11.

Step 5: Install Winetricks

Winetricks is a helper script that downloads and installs Windows DLLs, fonts, and runtimes that Wine cannot redistribute itself (because Microsoft forbids it). Want Arial, Tahoma, or Times New Roman to render correctly in a Windows app? That is Winetricks. Need Visual C++ 2015 redist for a game? Winetricks. .NET Framework 4.8? Same story.

If you did not install it earlier, add it now:

sudo apt install -y winetricks

Verify:

winetricks --version

Debian 13 packages a January 2026 snapshot:

20250102 - sha256sum: 9df4af038f04c753f3b0b02817cf60a51d8eac32357d070c45dfd139b93bd3f5

For most apps the two most useful Winetricks verbs are:

  • corefonts: Arial, Times New Roman, Courier New, etc. Fixes 90% of “the font looks wrong” reports
  • vcrun2019: Visual C++ 2015-2022 redistributable. Required by a huge share of modern Windows software

Apply both to the default prefix once it is created in the next step:

winetricks -q corefonts vcrun2019

The -q flag runs installers in quiet mode. If the EULA click-through on a component is flaky, drop the flag and click through manually.

Step 6: Initialize your first Wine prefix

A Wine prefix is a fake Windows install tree: its own C:\ drive, registry, and Program Files. By default Wine creates ~/.wine the first time it runs, but it is much cleaner to create prefixes explicitly so you know where they are.

Create a dedicated prefix and boot it:

WINEPREFIX=~/wine-default wineboot -u

Wineboot sets up the prefix, pre-creates the Windows filesystem layout, and registers the right DLLs. First-time init takes 30 to 60 seconds. When it finishes, look inside the fake C: drive:

ls ~/wine-default/drive_c/

The output shows a convincing Windows layout:

ProgramData
Program Files
Program Files (x86)
users
windows

Smoke test: run the Windows command interpreter and print a message. This proves Wine can execute a PE binary end to end:

WINEPREFIX=~/wine-default wine cmd /c "echo Hello from Wine 11 on Debian 13"

If everything works:

Hello from Wine 11 on Debian 13

That one-line round trip through cmd.exe is a useful sanity check whenever you suspect a Wine install is partially broken. The screenshot below shows the full sequence of the same smoke test on the trixie test box, including the version check and the fake Windows layout under drive_c/:

Wine 11 on Debian 13 running Windows cmd.exe to print Hello from Wine
Wine 11 stable executing Windows cmd.exe on Debian 13 trixie

For GUI apps, the rest of the flow is identical. Install an .exe:

WINEPREFIX=~/wine-default wine ~/Downloads/SomeInstaller.exe

The native Windows installer UI opens on your Linux desktop. Click through as you would on Windows.

If the app writes passwords or license keys anywhere, route them through a password manager rather than letting Wine store them in a prefix registry. 1Password has a native Linux client that plays well with Wine-hosted Windows apps, and recovery if a prefix corrupts beats digging through user.reg.

Step 7: Configure Wine with winecfg

The graphical settings tool for Wine is winecfg. Launch it against a specific prefix:

WINEPREFIX=~/wine-default winecfg

The useful tabs are:

  • Applications: set the default Windows version (Windows 10 is the default in Wine 11, some legacy apps demand Windows 7 or XP)
  • Libraries: override a DLL to use the Wine built-in or a native Windows copy. Used for troubleshooting specific apps
  • Drives: map host Linux paths to fake Windows drive letters. Handy for exposing /home/user/Documents as a D: drive
  • Graphics: toggle virtual desktop mode (runs Wine apps inside a single window, avoids focus-stealing issues on tiling WMs)

Nothing here is strictly required for a working Wine. Adjust only when a specific app misbehaves.

Step 8: Isolate apps with multiple prefixes

One prefix for everything is the recipe for suffering. Winetricks installs leak across apps, registry changes accumulate, and an uninstaller that misbehaves wrecks every Windows app you have. Instead, use one prefix per app.

Create a separate prefix for a second app:

WINEPREFIX=~/wine-notepadplus wineboot -u
ls ~/wine-notepadplus/drive_c/

The new prefix is completely independent of the first. Same Windows layout, zero shared state:

ProgramData
Program Files
Program Files (x86)
users
windows

Winetricks flags installed into ~/wine-default are not present in ~/wine-notepadplus. You can run different Windows versions, different registry tweaks, even different Wine architectures (WINEARCH=win32 for apps that refuse to run 64-bit) per prefix.

A practical pattern is one prefix per app:

~/wine-office/          # Microsoft Office
~/wine-photoshop/       # Adobe Photoshop
~/wine-notepadplus/     # Notepad++
~/wine-games/           # One prefix for small games

Wrap the invocation in a shell alias if typing WINEPREFIX=~/wine-office every time is annoying:

alias wine-office='WINEPREFIX=$HOME/wine-office wine'
alias wine-np='WINEPREFIX=$HOME/wine-notepadplus wine'

Drop those lines in ~/.bashrc to persist them.

Graphical wrappers: Bottles and PlayOnLinux

If command-line prefix management feels tedious, two GUI wrappers around Wine manage prefixes for you:

  • Bottles: the modern option, actively developed, Flatpak-first. Each “bottle” is a prefix with a curated set of Winetricks dependencies pre-applied for popular apps and games. Install with flatpak install flathub com.usebottles.bottles after enabling Flathub
  • PlayOnLinux: the legacy option. Still maintained, but development has slowed. Recipes for older games, comfortable if you are migrating from an older Wine setup

Pick one or the other. Both tools manage Wine prefixes internally, so raw wine still works against prefixes they create. This guide sticks with the plain WineHQ flow because it is transferable across distros and does not hide what Wine is actually doing.

Debian 13 vs Debian 12: what actually differs

The steps above work on Debian 12 bookworm with two changes:

ItemDebian 13 trixieDebian 12 bookworm
WineHQ Suites:trixiebookworm
Debian-packaged Wine10.08.0
WineHQ stable available11.011.0
Default APT sources formatdeb822 (.sources)single-line (.list) still common
apt-key availableno (removed)no (deprecated and disabled)

If you copy a Wine install script off the internet that uses apt-key add, it is wrong for both bookworm and trixie. The /etc/apt/keyrings pattern shown in Step 3 is the only version that works on supported Debian releases.

Troubleshooting

Error: “Package winehq-stable has no installation candidate”

APT can see the repo but no matching binary. Almost always caused by missing i386 architecture. Confirm with:

dpkg --print-foreign-architectures

If that prints nothing, redo Step 1. The WineHQ 32-bit package depends on i386 libc, which APT will not find without the architecture enabled.

Error: “wineserver crashed”

Two usual suspects. First is out-of-disk: Wine prefixes live in your home directory (or wherever WINEPREFIX points) and wineboot needs a few hundred MB. Run df -h ~. Second is a stale prefix from a crashed earlier run. Clean and retry:

pkill -9 wineserver
rm -rf ~/wine-default
WINEPREFIX=~/wine-default wineboot -u

Error: “Application tried to create a window, but no driver could be loaded”

Wine cannot find an X or Wayland display to draw into. On a headless server this is expected. For CLI-only Windows binaries, it is usually harmless noise. For real GUI apps on a headless box, either install a desktop (GNOME, XFCE, KDE Plasma) or run Wine under Xvfb with DISPLAY=:99 WINEPREFIX=~/wine-default wineboot -u after starting Xvfb :99.

Error: “Mono / Gecko installer prompts appear every time wineboot runs”

WineHQ does not bundle Mono and Gecko with the packages, so Wine offers to download them on first prefix init. If you are scripting prefix creation and want to skip the prompts (for apps that do not need HTML rendering or .NET), set WINEDLLOVERRIDES='mscoree,mshtml=' before wineboot:

WINEDLLOVERRIDES='mscoree,mshtml=' WINEPREFIX=~/wine-default wineboot -u

For everyday desktop use, accept the installers. Mono handles .NET 2.0-3.5 apps, Gecko handles embedded web views that some installers use for their welcome screen.

Error: “winetricks fails with ‘warning: You appear to be using Wine’s new wow64 mode'”

This is a notice, not an error. Wine 11 ships a rewritten 32-on-64 layer, and some Winetricks components still expect the classic wow64 path. Most verbs work fine. If a specific verb fails and the log mentions wow64, create a pure 32-bit prefix and install the component there:

WINEARCH=win32 WINEPREFIX=~/wine-32bit wineboot -u
WINEPREFIX=~/wine-32bit winetricks -q vcrun2019

Keeping Wine current

Once WineHQ is in your APT sources, routine updates are boring:

sudo apt update
sudo apt upgrade

New WineHQ stable releases (typically one major bump per year plus a couple of point releases) flow through the standard APT pipeline. No special steps. If you want to ride the development branch instead, switch the installed package:

sudo apt remove -y winehq-stable
sudo apt install --install-recommends -y winehq-devel

Expect more regressions on winehq-devel. Most desktop users should stay on stable unless a specific fix they need has not landed there yet.

Keep reading:

Newsletter

Want more tested Linux tutorials like this one landing in your inbox? Subscribe to the newsletter at computingforgeeks.com/newsletter-signup for weekly drops on Debian, Rocky, Ubuntu, and FreeBSD sysadmin topics.

Need this set up for you?

Setting up a fleet of Debian workstations with a standardized Wine prefix for a legacy Windows app? Hire the team behind ComputingForGeeks to do it for you: scripted Wine prefix provisioning, Ansible roles for rollout, and troubleshooting guidance for the Windows app you are migrating. One-off engagements and ongoing retainers welcome.

Related Articles

Desktop Microsoft Edge vs Chrome – which is better Debian Install Node.js 14 on Ubuntu / Debian / Linux Mint Desktop Install Google Chrome on Ubuntu 24.04 / 22.04 Desktop Install KDE Plasma Desktop on Linux Mint 21

20 thoughts on “How To Install Wine on Debian 13/12”

  1. Some packages could not be installed. This may mean that you have
    requested an impossible situation or if you are using the unstable
    distribution that some required packages have not yet been created
    or been moved out of Incoming.
    The following information may help to resolve the situation:

    The following packages have unmet dependencies:
    winehq-stable : Depends: wine-stable (= 6.0.0~buster-1)
    E: Unable to correct problems, you have held broken packages.

    Reply
  2. Leyendo lista de paquetes… Hecho
    Creando árbol de dependencias
    Leyendo la información de estado… Hecho
    No se pudieron instalar algunos paquetes. Esto puede significar que
    usted pidió una situación imposible o, si está usando la distribución
    inestable, que algunos paquetes necesarios aún no se han creado o se
    han sacado de «Incoming».
    La siguiente información puede ayudar a resolver la situación:

    Los siguientes paquetes tienen dependencias incumplidas:
    winehq-stable : Depende: wine-stable (= 7.0.1~bookworm-1)
    E: No se pudieron corregir los problemas, usted ha retenido paquetes rotos.

    Reply
  3. Hi, i was installing Wine 8 for Debian 10.10, Hinux 5, i proceeded to use the command ”sudo apt install –install-recommends winehq-stable” after doing all the steps carefully, and when i use it, i get an error that says ”could not find winehq-stable” or something like that, may someone know how to solve it?

    Reply
  4. Hi, today i was trying to install Wine on my Hinux 5 (Debian 10.10), and almost finishing, when i executed the command ”sudo apt install –install-recommends winehq-stable” it said something like ”could not find winehq-stable library” and i followed all the steps correctly, someone knows how to make it work?

    Reply
  5. hola quetal, hice todos los pasos al pie de la letra y cuando pongo el comando me aparece esto
    estudiante@juanamanso:~$ sudo apt install –install-recommends winehq-stable
    Leyendo lista de paquetes… Hecho
    Creando árbol de dependencias
    Leyendo la información de estado… Hecho
    E: No se ha podido localizar el paquete winehq-stable

    Reply
  6. Los siguientes paquetes tienen dependencias incumplidas:
    winehq-stable : Depende: wine-stable (= 8.0.0.0~bullseye-1)
    E: No se pudieron corregir los problemas, usted ha retenido paquetes rotos.

    Reply
  7. EN-US:
    Worked “first try”.
    I had tried to install Wine by myself, but those attempts did not work, then I went to this tutorial and it worked PERFECTLY!

    ES-AR:
    Funcionó “a la primera”.
    Resulta que yo había intentado instalar Wine por mi cuenta, pero me daba muchos (realmente, MUCHOS) errores. Después encontré este artículo y seguí los pasos: FUNCIONÓ AL TOQUE!

    Reply

Leave a Comment

Press ESC to close