All About Wine: Run Windows Apps Under Linux

A couple months back, I was at home, working on some changes to my personal Web site. I wanted to see how my work in progress looked in Internet Explorer. On a Windows machine that's as easy as pie, of course, but on my Linux desktop it's not so simple. I usually grab my laptop and boot it into Windows if I need to check something in IE (or interact with a wrongheaded site that requires that browser), but this wasn't an option that day--so I apparently had no choice but to reboot my desktop (which dual boots), select Windows, fire up Internet Explorer, take a look, and boot back into Linux to continue my work.

Well, feh. I figured there had to be a better way. Google quickly proved I was right: IEs4Linux brings Internet Explorer to your Linux desktop, with nearly all its warts intact. IE versions 5, 5.5, and 6 are officially supported at the moment; a beta of IEs4Linux provides partial IE 7 support, with improvements in the works. But IE 6 is sufficient for my Web-authoring tasks, and with IEs4Linux I had it running pretty much flawlessly in just a few minutes.

IEs4Linux accomplishes its magic rather simply. As you might expect if you're up on this sort of thing, it actually lets Wine do the heavy lifting. Wine is a Free Software project that aims to reimplement the Windows API on Unix systems. English translation: Wine lets you run some (emphasis: some) Windows applications under Linux.

Wine does just fine with IE 6 if you lay the proper groundwork first--and IEs4Linux handles that job for you. Follow the installation instructions, and you'll see IEs4Linux download IE components directly from Microsoft's public servers (and the Flash Player from Macromedia), install and register them under Wine, and even put a funny little upside-down IE icon on your desktop. (During the installation script, you can accept all the default values; just answer the yes-or-no questions with a Y or an N and press Enter at the other prompts until you're done.)

Double-click the launcher (the aforementioned desktop icon) to experience IE under Linux. Your Firefox browser will be scoffing and making rude comments in no time at all.

Watching Wine run IE got me wondering what else it can run these days. Wine's Web site has an application compatibility database, but it isn't exhaustive or up-to-date. That page also links to Frank's Corner, a site with more application listings and assorted Wine tips--but it's also a little dated overall. So if you really wanna see if Wine will run something in particular, your best bet is to just give it a shot.

Plain-Vanilla Wine

First, make sure you have Wine installed. Open a Terminal window (on my Ubuntu Edgy Eft desktop, I select Applications, Accessories, Terminal), type wine, and press Enter. If the response includes 'command not found', step one for you is to use your distribution's package manager to install Wine.

Alternatively, if you're an Ubuntu user, install Automatix and use it to install Wine--you'll get a newer version than the ones available in the official Ubuntu repositories. Or head directly to the download page at WineHQ to see if any up-to-date packages are available for your distribution.

Once Wine is installed, enter winecfg in your Terminal window to bring up the Wine configuration dialog box. The first time you run winecfg, the dialog box may take a while to appear; don't fret, as Wine is just creating some folders and getting its bearings.

The Wine configuration dialog box. On this tab, I've told Wine which Linux folders to use when Windows applications go looking for folders like My Documents and My Pictures.
The Wine configuration dialog box. On this tab, I've told Wine which Linux folders to use when Windows applications go looking for folders like My Documents and My Pictures.
Take a quick look through the tabs of the configuration dialog box if you like, but the default settings should serve you well enough. You can click OK to exit it. You're now ready to try running something with Wine.

If your machine dual boots, you might have a Windows partition mounted under Linux. If so, you can try pointing Wine directly at a Windows program on that partition. This tactic is likely to work only with very simple, mostly self-contained applications. For instance, on my system I can type wine /media/c/winnt/notepad.exe, and Windows Notepad pops up. I'm not saying this is useful, mind you, I'm just illustrating one possibility here.

To try a more complex application, you'll need its installation file--the setup.exe (or equivalent) that puts everything in place. Feed that to Wine on the command line. For instance, I decided to try running 2nd Story Software's TaxAct Deluxe on Wine this year. (I've used TaxAct for years, figuring that since its interface is simpler--that is to say, comes with fewer multimedia bells and whistles--than TurboTax and TaxCut, it would play nice with Wine sooner than those alternatives. I've been let down every year ... until now.)

I downloaded the setup program--a file called ta06dxdw.exe--from 2nd Story and saved it on my desktop. Then, back in my Terminal, I typed wine Desktop/ta06dxdw.exe. The TaxAct setup proceeded without a hitch, and a TaxAct launcher appeared both on my desktop and in Gnome's Applications menu. I have yet to experience any problems running TaxAct under Wine. I'm as happy as a clam not having to reboot to do my yearly business with the IRS.

Who says Linux apps are hard to run? Wine's Application Uninstaller is about as simple as it gets.
Who says Linux apps are hard to run? Wine's Application Uninstaller is about as simple as it gets.
When you install a Windows application under Wine, everything gets put in a hidden .wine folder inside your home folder. To uninstall the applications that live there, you need an equivalent to 'Add or Remove Programs' in the Windows Control Panel. So, enter wine uninstaller in a Terminal. You'll see a very simple dialog box listing all the applications installed under Wine. The Uninstall button is your friend there.

Games and More

TaxAct is not my only recent Wine success story. Wine tends to choke on games (the überpopular World of Warcraft is apparently a notable exception), but on the other hand, the games I like best--adventures--tend not to require too much of the underlying system. So when I picked up a copy of Scratches, I decided to give it a go under Wine. The installer worked fine, and so did the game, with a few minor glitches here and there. The bottom line is, the game was perfectly playable. (That is to say, the game more or less worked properly. There are less charitable things I could say about the game's playability, but that's another topic.)

Your Wine experiences may not go as smoothly. While Wine has been under active development for 14 years now, it still has not reached a 1.0 release. Application compatibility is scattershot, and users have no good all-in-one resource to visit if they run into trouble.

The Wine Wiki is largely developer-oriented. The official Wine FAQ provides a lot of geeky context but not much useful help; the so-called User FAQs have a few recipes for very specific kinds of trouble, and that's it. You can access a Usenet newsgroup and mailing list for Wine users on the Web via Google Groups; this is probably the best place to inquire about getting a particular app running if you hit trouble.

Alternatively, depending on what program you're trying to work with, one of two commercial versions of Wine may help. CrossOver Linux from CodeWeavers is Wine with several extras thrown in, including spiffy tools for installing and removing Windows software, plus support for Windows Web browser plug-ins inside your Linux browser.

CodeWeavers maintains its own Compatibility Center; if plain-vanilla Wine doesn't give you what you need, check there to see whether CrossOver can. CrossOver Linux will set you back $40--a relatively small price to pay if it gives you access to that one app you cannot live without. (This is money well spent in another way, too: CodeWeavers finances much of Wine's ongoing development.)

If it's a game you're looking to run, check out Cedega from TransGaming. Cedega is a Wine hybrid that concentrates on gaming. It's sold as a subscription service for $5 a month, and your membership gives you the right to vote on which games the TransGaming developers should concentrate on supporting. (Interestingly, you can buy extra votes for $5 apiece.) Check the TransGaming Games Database to see if your favorite game will work before you plunk down your hard-earned cash.

You have other ways to run Windows apps under Linux. Booting an actual copy of Windows in a virtual machine is a better solution in terms of compatibility: Wine can run only some Windows programs, but of course Windows itself can run them all. I'll cover this approach in a future column.

In the meantime, I'd be interested to know how well Wine serves all of you. What are you successfully running under Wine? What hassles have you encountered (and overcome--or not)? Let's hear it in the Comments section below. Until then, enjoy Wine responsibly (as they say), and stay as Free as you can.

Matthew Newton is PC World's QA engineer and unofficial Linux guru. If you're new to Linux and are feeling a bit lost in one way or another, drop him a line and let him know what's vexing you. Or, speak Freely in the Comments section below!

Subscribe to the Best of PCWorld Newsletter