Difference between revisions of "Wine"

From ArchWiki
Jump to navigation Jump to search
m
Line 12: Line 12:
 
=== x86_64 ===
 
=== x86_64 ===
 
If you are running on a x86-64 system, you will also want to install other lib32 packages if the Windows application needs it, such as lib32-mpg123 for mp3 support:
 
If you are running on a x86-64 system, you will also want to install other lib32 packages if the Windows application needs it, such as lib32-mpg123 for mp3 support:
  # pacman -S lib32-mpg123 lib32-libxml2 lib32-openal
+
  # pacman -S lib32-mpg123 lib32-libxml2 lib32-openal lib32-libpng
  
 
{{Note|The x86-64 Wine package includes both 32bit and 64bit executables.}}
 
{{Note|The x86-64 Wine package includes both 32bit and 64bit executables.}}

Revision as of 01:49, 26 January 2011

Tango-view-fullscreen.pngThis article or section needs expansion.Tango-view-fullscreen.png

Reason: please use the first argument of the template to provide a brief explanation. (Discuss in Talk:Wine#)

Tango-edit-clear.pngThis article or section needs language, wiki syntax or style improvements. See Help:Style for reference.Tango-edit-clear.png

Reason: please use the first argument of the template to provide a brief explanation. (Discuss in Talk:Wine#)

This template has only maintenance purposes. For linking to local translations please use interlanguage links, see Help:i18n#Interlanguage links.


Local languages: Català – Dansk – English – Español – Esperanto – Hrvatski – Indonesia – Italiano – Lietuviškai – Magyar – Nederlands – Norsk Bokmål – Polski – Português – Slovenský – Česky – Ελληνικά – Български – Русский – Српски – Українська – עברית – العربية – ไทย – 日本語 – 正體中文 – 简体中文 – 한국어


External languages (all articles in these languages should be moved to the external wiki): Deutsch – Français – Română – Suomi – Svenska – Tiếng Việt – Türkçe – فارسی

Wine is a compatibility layer capable of running Microsoft Windows applications on GNU/Linux and other POSIX compatible operating systems. Windows programs running in Wine act as native programs would, running without the performance or memory usage penalties of an emulator, with a similar look and feel to other applications on your desktop environment.

Installation

Wine is constantly updated and available in the [community] repository for i686 and in [multilib] for x86_64:

# pacman -S wine

x86_64

If you are running on a x86-64 system, you will also want to install other lib32 packages if the Windows application needs it, such as lib32-mpg123 for mp3 support:

# pacman -S lib32-mpg123 lib32-libxml2 lib32-openal lib32-libpng
Note: The x86-64 Wine package includes both 32bit and 64bit executables.

Missing Alsa driver

If Wine as found in the official repositories lacks the Alsa driver, try the alternative bin32-wine-suse package from the AUR. After its installation open winecfg, the driver should now be selectable. Reopen winecfg once more and the sound test ought to work as well.

Running Windows Applications

To run a 32-bit windows application:

$ wine <path to exe>

To run a 64-bit windows application on a x86-64 system:

$ wine64 <path to exe>

To install using an MSI installer, use the included msiexec utility:

$ msiexec installername.msi

Configuration

Winecfg

To create configuration files run:

$ winecfg

Review the settings and click OK to save. Some options are not present in winecfg, however they are accessible in the Wine registry. To change the Wine registry via a graphical editor:

$ regedit

Also you can import/export text data into/from the Wine registry. In the graphical editor do "File/Import registry file…" and "File/Export registry file…". In command line there is a bunch of commands, see:

$ regedit /?

The wine directory with config files resides in

 ~/.wine

and by default C:\ will be mapped to

 ~/.wine/drive_c

You've done the basic configuration. Now try to run something using:

$ wine /path/to/something.exe

If you're having trouble getting DirectX applications to run properly, try append the -opengl flag:

$ wine /path/to/3d_game.exe -opengl

Using WINEARCH

If you are using wine from [multilib], you will notice that winecfg will get you a 64-bit wine environment by default. You can change this behavior using the WINEARCH environment variable. Rename your ~/.wine directory and create a new wine environment by running:

$ WINEARCH=win32 winecfg 

This will get you a 32-bit wine environment. Using WINEARCH as win64 will get you a 64-bit one, which is the default if no WINEARCH is provided.

You can combine this with WINEPREFIX to make a separate win32 and win64 environment:

$ WINEARCH=win32 WINEPREFIX=~/win32 winecfg 
$ WINEARCH=win64 WINEPREFIX=~/win64 winecfg

32-bit Graphics Card Drivers

You should install these if you don't want crippled 3D performance on a x86-64 system. Note that you need to have [multilib] repository enabled if you want to install them using pacman. You can also try to search the AUR.

  • NVIDIA:
    # pacman -S lib32-nvidia-utils
    For older lib32-nvidia-utils (e.g. nvidia-96xx drivers), see here. If you still have graphic problems with NVIDIA cards, you should try to install all lib32 packages by "pacman -S lib32", this fixes some issues.
  • Intel:
    # pacman -S lib32-intel-dri
    Run Wine with
    LIBGL_DRIVERS_PATH=/usr/lib32/xorg/modules/dri
  • AMD/ATI:
    # pacman -S lib32-ati-dri

Sound

By default sound issues may arise when running Wine applications. Ensure only one sound device is selected in winecfg. Currently, the alsa driver is the most supported.

Fonts

If wine applications are not showing easily readable fonts, you may not have Microsoft's Truetype fonts installed. See MS Fonts.

After running such programs, kill all wine servers and run winecfg; fonts should be legible now.

If the fonts look somehow smeared, import the following text file into the Wine registry:

[HKEY_CURRENT_USER\Software\Wine\X11 Driver]
"ClientSideWithRender"="N"

Sub-Menu

After installation of wine, there will likely be no menu in your desktop environment. After installing a program using Wine, it will create a menu with your installed applications automatically. If you wish to add on to the menu to create an Ubuntu-like Wine sub-menu, then follow these instructions:

Creating Menu Entries

First, install a Windows program using Wine to create the base menu. After the base menu is created, you can start to add the menu entries. In GNOME, right-click on the desktop and select "Create Launcher...". The steps might be different for KDE/Xfce. Make three launchers using these settings:

Type: Application
Name: Configuration
Command: winecfg
Comment: Configure the general settings for Wine
Type: Application
Name: Uninstall Programs
Command: wine uninstaller
Comment: Uninstall Windows programs under Wine properly
Type: Application
Name: Browse C:\ Drive
Command: wine winebrowser c:\\
Comment: Browse the files in the virtual Wine C:\ drive

Now that you have these three launchers on your desktop, it is time to put them into the menu. But, first you should change the launchers to dynamically change icons when a new icon set is installed. To do this, open the launchers that you just made in your favorite text editor. Change the following settings to these new values: Configuration launcher:

Icon[en_US]=wine-winecfg
Icon=wine-winecfg

Uninstall Programs launcher:

Icon[en_US]=wine-uninstaller
Icon=wine-uninstaller

Browse C:\ Drive launcher:

Icon[en_US]=wine-winefile
Icon=wine-winefile

If these settings produce a ugly/non-existent icon, it means that there are no icons for these launchers in the icon set that you have enabled. You should replace the icon settings with the explicit location of the icon that you want. Clicking the icon in the launcher's properties menu will have the same effect. A great icon set that supports these shortcuts is GNOME-colors.

Now that you have the launchers fully configured, now it is time to put them in the menu. Plop them into "~/.local/share/applications/wine/" using a terminal or file browser.

Wait a second, they aren't in the menu yet! There is one last step. Copy the following text into a text file named "wine-utilities.menu".

<!DOCTYPE Menu PUBLIC "-//freedesktop//DTD Menu 1.0//EN"
"http://www.freedesktop.org/standards/menu-spec/menu-1.0.dtd">
<Menu>
  <Name>Applications</Name>
  <Menu>
    <Name>wine-wine</Name>
    <Directory>wine-wine.directory</Directory>
    <Include>
	<Filename>wine-Configuration.desktop</Filename>
    </Include>
    <Include>
	<Filename>wine-Browse C:\ Drive.desktop</Filename>
    </Include>
    <Include>
	<Filename>wine-Uninstall Programs.desktop</Filename>
    </Include>
  </Menu>
</Menu>

Now, just move the newly made file to the "~/.config/menus/applications-merged/" folder. Go check in the menu and there should be the minty fresh options waiting to be used!

KDE 4 Menu Fix[1]

The Wine menu items may appear in "Lost & Found" instead of the Wine menu for KDE 4. This is because kde-applications.menu is missing the MergeDir option.

Edit /etc/xdg/menus/kde-applications.menu

At the end of the file add <MergeDir>applications-merged</MergeDir> after <DefaultMergeDirs/>, it should look like this:

        <Include>
                <And>
                        <Category>KDE</Category>
                        <Category>Core</Category>
                </And>
        </Include>
        <DefaultMergeDirs/>
        <MergeDir>applications-merged</MergeDir>
        <MergeFile>applications-kmenuedit.menu</MergeFile>
</Menu>

Alternatively you can create a symlink to a folder that KDE does see:

ln -s ~/.config/menus/applications-merged ~/.config/menus/kde-applications-merged

This has the added bonus that an update to KDE won't change it, but is per user instead of system wide.

Tips and tricks

These tools will assist in the installation of typical Windows components. In most cases they should be used as a last effort, as it may severely alter your wine configuration.

Winetricks

Winetricks is a quick script that allows one to install base requirements needed to run some Windows programs. Installable components includes DirectX 9.x, msxml (required by Microsoft Office 2007 and Internet Explorer), visual runtime libraries and many more.

You can install winetricks via pacman.

# pacman -S winetricks

Then run winetricks as a normal user:

$ winetricks

WineTools assistant

Note: This tool is currently slightly outdated, but working.

Winetools is a script that facilitates in the installation of some core components for wine in order to install other programs. Note this is not necessary for wine, but does help if you want to get Internet Explorer running.

Note: Microsoft policy is that you must have a license for IE6 in order to install DCOM98 or Internet Explorer 6. If you've ever owned a copy of Windows, you should be fine.

You can download the PKGBUILD script and see AUR for instructions to build and install.

PlayOnLinux

PlayOnLinux is a graphical Windows and DOS program manager. It contains many scripts to assist the configuration and running of progams. You can find the PKGBUILD in AUR.

PlayOnLinux can also manage multiple Wine versions and use a specific version for each executable because of regressions. If you need to know what Wine version works best for a certain game, try the Wine Application Database.

Using Wine as an interpreter for Win16/Win32 binaries

It is also possible to tell the kernel to use wine as an interpreter for all Win16/Win32 binaries. First mount the binfmt_misc filesystem:

# mount -t binfmt_misc none /proc/sys/fs/binfmt_misc

Or you can add this line to your Template:Filename:

none /proc/sys/fs/binfmt_misc binfmt_misc defaults 0 0

Then, tell the kernel how to interpret Win16 and Win32 binaries:

echo ':DOSWin:M::MZ::/usr/bin/wine:' > /proc/sys/fs/binfmt_misc/register

You can add this line to Template:Filename to make this setting permanent. In this case you may want to ignore stderr to avoid error messages when changing runlevels:

{ echo ':DOSWin:M::MZ::/usr/bin/wine:' > /proc/sys/fs/binfmt_misc/register; } 2>/dev/null

Now try to run a Windows program:

chmod 755 exefile.exe
./exefile.exe
Note: The .exe extension may not be required, as the kernel doesn't identify the file by its extension.

Wineconsole

Often you may need to run .exes to patch game files, for example a widescreen mod for an old game, and running the .exe normally through wine might yield nothing happening. In this case, you can open a terminal and run the following command:

$ wineconsole cmd

Then navigate to the directory and run the .exe file from there.

Alternatives to Win16 / Win32 binaries

  • Cedega - Aimed at gamers
  • Codeweavers - Codeweavers' Crossover Office; Aimed at Office Users

External Resources