From Gentoo Wiki
Jump to: navigation, search
External resources

Wine (Wine Is Not an Emulator) is an application that allows Windows software to run on Linux. This article deals with installing, configuring and maintaining a general purpose Wine environment on Gentoo.


Enable the USE flags of choice and emerge app-emulation/wine:

root #emerge --ask wine

To install the latest, development version, the package needs to be unmasked unless already running unstable:

root #echo "app-emulation/wine" >> /etc/portage/package.accept_keywords

USE Flags


Many users are likely to want support for as much media as possible, in which cases the following flags are recommended.

USE flag (what is that?) Default Recommended Description
fontconfig Yes Yes Support for configuring and customizing font access via media-libs/fontconfig
gecko Yes Yes Add support for the Gecko engine when using iexplore
gsm No Add support for the gsm lossy speech compression codec
gstreamer No Add support for media-libs/gstreamer (Streaming media)
jpeg Yes Yes Add JPEG image support
lcms No Add lcms support (color management engine)
mp3 Yes Yes Add support for reading mp3 files
png Yes Yes Add support for libpng (PNG images)
truetype Yes Yes Add support for FreeType and/or FreeType2 fonts

Audio Output

USE flag (what is that?) Default Recommended Description
alsa Yes Yes Add support for media-libs/alsa-lib (Advanced Linux Sound Architecture)
openal No Add support for the Open Audio Library
oss No No Add support for OSS (Open Sound System)
pulseaudio No Yes Add support for PulseAudio sound server
realtime Yes Yes Pull in sys-auth/rtkit for low-latency pulseaudio support


USE flag (what is that?) Default Recommended Description
X Yes Yes Add support for X11
cups No Add support for CUPS (Common Unix Printing System)
gphoto2 No Add digital camera support
hardened No Activate default security enhancements for toolchain (gcc, glibc, binutils)
ldap No Add LDAP support (Lightweight Directory Access Protocol)
nls Yes Yes Add Native Language Support (using gettext - GNU locale utilities)
opencl No Enable OpenCL support
opengl Yes Yes Add support for OpenGL (3D graphics)
osmesa No Add support for OpenGL in bitmaps using libOSMesa
udisks Yes Yes Support dynamic storage devices using sys-fs/udisks
v4l No Enable support for video4linux (using linux-headers or userspace libv4l libraries)
xcomposite Yes Yes Enable support for the Xorg composite extension
xinerama No Add support for the xinerama X11 extension, which is mandatory if you work in multiple monitors setup


USE flag (what is that?) Default Recommended Description
capi No Enable ISDN support via CAPI
ncurses Yes Enable curses support in wineconsole.
samba No Add support for NTLM auth. see and
ssl Yes Yes Add support for Secure Socket Layer connections


USE flag (what is that?) Default Recommended Description
abi_x86_32 Yes Yes Support 32-bit Windows binaries
abi_x86_64 Yes Yes Support 64-bit Windows binaries
custom-cflags No No Bypass strip-flags, See Debugging.
dos No Pull in games-emulation/dosbox to run DOS applications
perl Yes Yes Install helpers written in perl (winedump/winemaker)
run-exes Yes Yes Use Wine to open and run .EXE and .MSI files
scanner No Add support for scanner hardware (e.g. build the sane frontend in kdegraphics)
test No No Workaround to pull in packages needed to run with FEATURES=test. Portage-2.1.2 handles this internally, so don't set it in make.conf/package.use anymore
threads Yes Yes Add threads support for various packages. Usually pthreads
xml Yes Yes Add support for XML files

Disabling the Menubuilder

To prevent Wine from adding menu entries and desktop links, the following dll override can be used.

FILE ~/.bashrc
# Prevent Wine from adding menu entries and desktop links.
export WINEDLLOVERRIDES='winemenubuilder.exe=d'

Already added entries can be deleted by removing the corresponding files from ~/.local/share/applications.

Tools and Interfaces

Tools such as graphical interfaces for Wine for users who want an alternative to the command-line.

Environment Variables

The environment variables of the shell that wine is started from are made accessible to the windows/dos processes. Some very useful Wine-specific variables include, but are not limited to, WINEPREFIX, WINEARCH, and WINEDEBUG.

See also the manual entries (man wine and man wineserver).


To create a Wine prefix in a custom location without affecting the default:

user $WINEPREFIX=~/wine_testi wineboot

The above would create the Windows installation in the home path of the user, under wine_testi.

Once a prefix has been created, the 'bitness' (arch) can not be changed. As such, the WINEARCH is not required to be defined for every command, unlike the WINEPREFIX variable. When using a non-default prefix without exporting it, the prefix and path need to be defined for each command.


To create a 32-bit installation instead of the default (when built) 64-bit:

user $WINEARCH=win32 WINEPREFIX=~/wine_testi wineboot

The Wine executable used could be anything that runs Wine, such as winecfg, which often makes sense while creating a clean, new prefix.


Essential in finding out why an application is misbehaving when the basic terminal output or messages boxes are not enough. See Debugging for examples.


When a user encounters a problem with an application, they should try the latest development version to see if the unwanted behavior still exists. If Wine has been built with options such as -fomit-frame-pointer or --hash-style=both, the Wine developers will likely be unable to help with the issue, and reports including output from such builds should not be reported to the Wine Bugzilla.

The custom-cflags USE flag should be enabled for debugging builds.

For more directions on reporting bugs, see Bugzilla and Bugs at wiki.winehq.

See also