Sometimes Wine Relaxes Linux, Sometimes It Just Causes Headaches
There are certainly arguments to be made against the use of Wine. Linux purists say it defeats the purpose of using free software. Others simply think it doesn't work very well. But sometimes you just need a Windows app that has no suitable Linux counterpart, and virtualizing a full version of Windows or buying a whole other computer isn't an option. Time to pour yourself a glass of Wine and hope for the best.
11/30/11 5:00 AM PT
A little Wine with your Linux computing session can keep you using your favorite Microsoft Windows programs.
What is Wine? Wine is a compatibility layer that's sometimes referred to as an emulator, though it's not "that kind" of emulator, according to the project's wiki. Wine doesn't do any CPU emulation, hence the acronym "Wine Is Not an Emulator."
However, it will let you run Windows programs from your Linux OS.
This Linux app has a troubled reputation among hard-core Linux fans. Some argue that at best using Wine as a work-around muddies the complete adoption of the Linux desktop environment. Others justify the use of Wine as being just another open source solution for adopting Linux when some Windows programs cannot be left behind.
Whatever the need, not being able to bring key Windows in-house applications, Windows vertical market software and specialty Windows games to Linux dissuades would-be newcomers from making the switch. Linux purist arguments aside, some critical Windows programs -- be it for business or fun -- have no suitable Linux counterpart.
Of course, you could rely on a dual-boot and switch between operating systems to run must-have Windows programs. You could also maintain separate computers to achieve the same goal. Another solution for bringing Windows programs to the Linux computer is installing virtual machine emulation software such as VirtualBox or VMWare.
But Wine could be a better solution since it is self-contained and more seamless. However, it is not a guaranteed fix. It does not succeed in running all Windows programs. Plus, Wine can be cantankerous and frustrating to configure. Still, as a work in progress, Wine's developers are constantly tweaking it to run Windows software out of the box.
Wine Tasting 101
Wine version 1.3.33 was released on Nov. 18. Each release brings better Wine performance. This latest offering includes support for text output in the DIB engine or display subsystem, better support for HTTP proxies and a new version of the Gecko engine.
Wine tweaks the Windows API so a complete Windows OS installation is not needed. It supports native DLLs to augment the built-in versions. Windows programs that need more than this balk at running under Wine.
The core of Wine's functionality is linked to Windows XP. It relies heavily on supporting Win32. Developers are working on expanding the Win32 support to include Windows 64-bit applications. So far, the 32-bit version of Wine works on 64-bit systems.
Work in Progress
Wine's architecture facilitates adding new APIs or DLLs. Wine's developers can quickly add new functions in an effort to keep up with Windows software. Still, getting some Windows programs to work under Wine can be an exercise in futility.
Many popular Linux distros provide earlier versions of Wine in their repositories. But most distro makers do not keep up with Wine's progress.
That places the burden to keep Wine current on the user. I have different Wine versions installed on my various computers. The same Windows applications work on some configurations but not on others.
Hit or Miss
I found that using Wine is akin to placing my faith in trial and error. Some Windows stuff runs under Wine. A good portion of stuff does not. In some cases, I found that upgrading to a newer Wine version caused a Windows application to stop working. Sometimes, it seemed to have no discernible cause.
When I transitioned into Linux, I first hopped around to several distros. It took me a while to find Linux apps common to these several distros that would let me get my work done. In that process, Wine let me run the must-use Windows software that kept me on schedule.
I now have a core of open source products that are available in whatever Linux distro I use or try. Now I use Wine only for a few lingering Windows titles that have no comfortable Linux replacement. One is a Windows invoicing and banking program that has no easy way to export/import years of business records.
Installing Wine is fairly routine from either a distro repository or the Wine website. Using the app to install Windows programs is much less routine. It often involves more than clicking an install button.
When Wine installs, it creates a .wine folder in your home directory. This becomes a virtual "C:/" drive that tricks Windows software into seeing a full-fledged Windows installation. Depending on your distro, you may or may not see a Wine entry in your Linux menu to run the Wine configuration or control panel. If you do not see a menu item, open a terminal window and enter:
Once there, click the Desktop Integration tab. You can configure the Wine/Windows apps to treat the "Desktop" or "My Documents" save locations the same as your Linux desktop or documents folders. Modify the values in the boxes to point to your preferred locations.
More Wining Options
Next, click on the Drives tab and click the Autodetect button to set up a group of virtual drives for your Wine apps. For example, your home folder becomes H: and folders inside your .wine folder become other drives.
Then click on the Sound tab. The Wine app will select an audio driver. Click the Test button to confirm it works. If it does not, select another one from the presented list and click the Apply button. Repeat until you find a working audio driver.
Now go to the Graphics tab. Here you can configure the screen resolution that the Windows programs will display within their windows. Several other options may or may not affect the display results on your system.
A key setting is the option to emulate a virtual desktop. If you select this choice, you also must set the size of the Wine window. If you do not activate this option, the window will be controlled by the Linux window manager. Some Windows programs work better in the emulated virtual window.
Installing Windows Programs
In most cases, when you click on an EXE file name or insert a CD/DVD with an autorun file, Wine will take over the installation process. Sometimes, your Linux system will complain that it doesn't know what to do with that file. In such cases, right click on the file name and select the run Wine installer option.
The rest of the process resembles what you left behind in the Windows OS. You will have to click the Install button, accept the license agreement and proceed through the series of Next buttons.
When installation is complete, do not look for the program in the Linux menu. You will only find it in the Wine->Programs system menu. Another option is to go to the Program Files folder by choosing "Browse C:\ Drive" from the Wine menu.
Time to Tweak
If the program does not run or functions poorly, close it and return to the Wine configuration panel. Go to the Applications tab.
Wine can mimic different Windows versions for each application. This tab links to the libraries and graphics tabs to allow you to change system-wide or per-application those settings. Again, only trial and error works, if at all.
To do this, browse and select an installed Windows program. Next, choose a Windows version in the lower-right. Then add any DLLs you might need or graphics settings that need tweaking in the "Libraries" and "Graphics" tabs.
If you have trouble getting a Windows program to run due to missing DLL libraries, install the winetricks script. This automatically seeks out commonly missing libraries for installed programs.
Wining With Winetricks
You do not have far to go to install Winetricks. If your distro's repository does not supply it, get the package from the Winetricks page in the WineHQ Web site.
Once Winetricks is installed, you might have a menu entry to run it. If not, type in a terminal window:
to see a list of available packages. If you know the name of the package(s) you wish to install, you can append the name(s) to the Winetricks command line to start the installation process.
Winetricks itself sometimes needs some tweaking. For instance, some Winetricks packages need their own dependencies. For example, you will need Cabextract, Unzip, P7zip, Wget and Zenity. Linux distros usually have these tools available in the package management system.
Before you invest time and frustration trying to get a Windows program to run in Wine, check out the databases. Winehq maintains a list of programs that run well, somewhat or not at all. You can see that list here.
Wine is not perfect. It does not run every Windows program. But it is a viable solution that is often worth the effort.