Installing Wine on Mac OS X

This tutorial is for intermediate users who want to install and use Wine on their computer running Mac OS X. You should already know the basics of how to use the command line. If you don't, read this tutorial first. There is also an older version of this tutorial that uses MacPorts, but you probably want to use Homebrew instead.

What is Wine?

Wine is awesome. No, I'm not talking about the kind you drink, I mean the kind that lets you run Windows apps without the Windows operating system. It's kind of Zen, when you think about it. Oh, and did I mention it's completely free, legal, and open source?

Nowadays, Windows and Mac play nicely together. You can install Windows and Mac side by side and switch between them using Boot Camp, but that requires a reboot every time, and you can only use one operating system at a time. You can also use a tool like Parallels Desktop or VMware Fusion to virtualize Windows and run it together with Mac, but virtualization is slow and it takes up a lot of memory. (Your physical computer creates an imaginary "virtual" computer within itself, and runs Windows on that. That takes a lot of resources!) On top of that, all of these solutions require you to own a legal copy of Windows, which isn't cheap!

Wine is different. When any program runs, it requests resources like memory and disk space from the operating system. All that Wine does is make sure that those requests get answered so that the program can run correctly. As far as the program knows, everything is going smoothly because it has everything it needs. It never even realizes that it's not running on Windows! It's simpler than emulating a whole new computer, so it's faster. Since it's just translating requests, you don't need a copy of the actual Windows operating system. Plus, Wine is open source, which means people are continually improving it and adding new features. And you can't beat the price!

Will My Program Work With Wine?

A lot of people discover Wine because they have one specific Windows program that they need to use, and it's the last thing preventing them from switching to a different operating system. So, the big question is, will it work? The short answer is: probably, but it's worth checking.

The Wine project maintains a database called the AppDB that has user reviews of how well specific Windows programs work under Wine. Search for your program and find out! (If it's not listed, that doesn't necessarily mean that it won't work — only that you're apparently trying to use a very obscure program!)

Requirements

To install Wine on your Mac, you will need the following:

An Intel Mac
Unfortunately, you can't install Wine on an older PowerPC Mac: it will only work with an Intel Mac. All new Macs use Intel processors. To see if your Mac has an Intel processor, go to the Apple logo on the far left of the toolbar, select About This Mac, and look at the Processor description. If it contains the word "Intel," you're good to go!
Access to an Admin account, with password
You can't install software unless you're an Admin. You will need to be logged in to this Admin account during the installation. If there is only one account on your computer, it is an Admin account. Also, the account must have a password set: if the account has no password, the sudo utility will fail. To set or change your password, go to the Accounts section in System Preferences.
Apple Xcode
This is a bit complicated. See Part 0 of the tutorial.
Java Development Package
If you're running Lion (10.7) or Mountain Lion (10.8), you can install Java automatically just by running the Java Preferences application. (Detailed instructions here.) Otherwise, you'll need to install this from Apple. There's one version for Snow Leopard (10.6), and one version for Leopard (10.5). Grab the right one and install it.
XQuartz
Simply go to the XQuartz homepage, download XQuartz, and install it.
An internet connection
If you're reading this tutorial, you should be set.
A few hours
The exact amount of time will depend on the speed of your computer. Don't worry, you won't need to be actually sitting at your computer for most of that time.

Part 0: Install Xcode

Computer programs are written in a format called "source code", which the computer can't use directly. However, a computer can use a set of tools to turn this source code into a working, runnable program. The most important one of these tools is called a "compiler", but other tools are important as well. Most programs that you download for your computer have already been passed through a compiler, and are all ready for you to run; but unfortunately, you can only download the Wine source code, not the working, runnable version of the program. Because most people don't need to compile source code on their computer, Macs don't have any of the command line tools installed by default, so we need to install them before we can get anywhere.

If you're running 10.6 or above, you can install Xcode from the Mac App Store. It's a free application, but it's large and it will take a while to download and install. Once it's finished, run Xcode and open the Preferences. Go to the Downloads tab, and install the Command Line Tools. You're done!

If you're running 10.5, or you don't want to use the Mac App Store, you can install the Xcode package from the install DVD that came with your computer when you bought it. If you've lost the install DVD, you'll need to create an Apple Developer account to download Xcode from Apple's website. (Don't worry, it's free.) Go to the Apple Developer downloads section and you'll be prompted to log in or create a new account. Once you're in, download Xcode 3.1.3. The default settings in the installer will work just fine. If you want to save some space, you can click the "Customize" button in the installer and deselect everything except "UNIX Development" and "System Tools". You're done!

Part 1: Install Homebrew

Homebrew is a package manager that makes installing open source programs much easier. In particular, trying to install a large program like Wine without the help of a package manager would be tremendously difficult. Fortunately, Homebrew itself is simple to install: just open up the Terminal and run this command, remembering to not include the the dollar sign ($) at the beginning:

$ ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

The Terminal will tell you what it's about to do, and ask you if you want to proceed: press Enter to do so. The Terminal may then ask for a password: this is the password to the Admin account on your computer. As a security measure, the Terminal does not display anything as you type, not even asterisks (*). Type your password anyway, and press Enter. If you get some kind of error, it might be because the Admin account doesn't have a password set. Setting a password is required.

Installing Homebrew should only take a few seconds or minutes (depending on the speed of your internet connection). When it's done, the Terminal will say that the installation was successful, and ask you to run brew doctor. Do as it suggests:

$ brew doctor

This will make Homebrew inspect your system and make sure that everything is set up correctly. If the Terminal informs you of any issues, you'll need to fix them yourself, and then run brew doctor again to verify that you fixed them correctly. When everything is set up correctly, you'll see the message Your system is ready to brew, and you can move on to the next part of the tutorial.

Note: If Homebrew tells you that you need to agree to the Xcode license, you can do that by running:

$ sudo xcodebuild -license

The Terminal window will fill up with the Xcode license: read it, type agree and hit enter to agree to the license.

Part 2: Install Wine Using Homebrew

Let's start using Homebrew right away! To tell Homebrew that you want it to install Wine for you, all you have to do is enter this command (without the $):

$ brew install wine

The Terminal will start displaying lots of information. This is absolutely normal — Homebrew is just keeping you updated on what it's doing. This flow of information will be your guide to let you know whether or not the computer is still working. It will take a few hours for the install to finish: exactly how long depends on the speed of your computer, but it's generally around one or two hours. As long as the Terminal keeps on giving you more information about what it's doing, don't interrupt it. Feel free to leave and do something else while the computer is installing Wine. When the Terminal stops giving you more information and is ready for another command, Wine is installed and ready to go!

Note: If you get an error message at this step that reads error: C compiler cannot create executables or Failed to locate 'make' in path, it means you forgot to install Xcode, or installed it incorrectly. See Part 0 of this tutorial.

Part 3: Install Windows Programs Using Wine

To install a Windows program, first download the installer file: it should end with .exe. Remember the location you put it, and open up the Terminal again. cd to the location, and use ls to make sure you can see the installer file. (Note: if you do not know what cd and ls are, you should learn how to use the command line before using Wine.)

Once you are in the correct directory, run the installer through Wine by running the following command in the Terminal:

$ wine $INSTALLER.exe

Where $INSTALLER is the name of the installer file. For example, if the installer file is named setup.exe, you would run:

$ wine setup.exe

XQuartz will open (if it isn't already), and soon you will see a regular graphical Windows installer. Click through it, and you're done!

Part 4: Run Windows Programs Using Wine

Open up the Terminal and run this to get to your Program Files folder:

$ cd ~/.wine/drive_c/Program\ Files/

Run ls to see what programs you have installed. Pick a program, and enter its directory using cd. (If the folder has a space in it, you must type a \ before the space. For example, Program\ Files. If you're having problems, try using tab autocomplete.) There should be a file that ends in .exe: this is the program file. Type this into Terminal:

$ wine $PROGRAM.exe

Where $PROGRAM is the name of the .exe file. XQuartz will open (if it isn't already), and the program will pop up, ready to use! It will probably open fullscreen: to reduce it in size, go open the Window menu from the Mac OS X menu bar, and select Zoom Window. You can then resize the program normally. Enjoy using Windows on your Mac, freely and legally!

Making a Dock Icon

Many people want to be able to run Windows programs the same way they run other programs on the Mac: by clicking an icon in the Dock. Wine isn't specifically designed to support this, but with a little trickery, we can make it do what we want.

Note: Wine prints out error messages in the Terminal when something goes wrong. By launching Windows programs via a Dock icon, you are sidestepping the Terminal, which means that if something does go wrong and Wine has to quit, it will not be able to tell you what the problem was. The first step to solving a problem is knowing what it is, so without running Wine from the Terminal, you won't be able to fix it, and neither will anyone else. Running from the Dock is fine as long as your program seems to be working correctly, but if it crashes, the first thing you should try is running it from the Terminal instead: it won't prevent the program from crashing, but it will give you some clues on how to fix the problem.

In order to launch a Windows program via the Dock, we're going to write an AppleScript that launches the program for us, and then put that AppleScript in the Dock. Essentially, we're writing a program ourselves! Don't worry, it's easy enough. There is a program on your computer that is designed for helping you write AppleScripts: it's called "Script Editor" if you're on 10.5, or it's called "AppleScript Editor" if you're on 10.6 or above. Whichever one you have is fine: I'm going to refer to the program as Script Editor for the rest of the tutorial. You can find this Script Editor program in the /Applications/Utilities directory of your computer, same as the Terminal itself.

Open up your Script Editor. You should see a window with a large area you can type in near the top: this is where you write your AppleScript. In that area, type the following text:

tell application "Terminal"
    do script "/usr/local/bin/wine ~/.wine/drive_c/Program\\ Files/$PATH_TO_PROGRAM.exe"
end tell

You'll need to replace $PATH_TO_PROGRAM with the path from the Program Files directory to your program executable. You can see that you're simply telling the AppleScript to run a line of code in the Terminal: the same line of code that you could run to start your Windows program.

Next, press the Compile button at the top of the window. The text should become colored to indicate that Script Editor understands what you wrote. You can also try pressing the Run button to run your script: it should open the Windows program successfully.

Lastly, save your script. You can give it whatever name you'd like, but be sure to select File Format: Application in the save options, and leave Startup Screen unchecked.

Open up the Finder, go to where you saved your script, and drag that file to your Dock. It should stay there, just like a real application -- because it is a real application! However, all it does is run that launcher command for you, so you can move the application around, rename it, or even delete it, and it won't affect the Windows program that you're running.

Keeping Wine Up to Date

Wine is an open source program. That means that programmers around the world are continually improving it, adding new features and squashing bugs. If you don't update Wine, though, it will never get those improvements, so it's generally a good idea to check for updates every so often. We can use Homebrew to keep Wine up to date: it's easy! Just run this command:

$ brew update && brew upgrade

With this command, Homebrew will first update itself, if any updates are available. It will then find all the outdated software it knows about (including Wine) and upgrade them all to the latest version. Checking for updates isn't strictly necessary, as Wine runs quite well currently. However, it's a good idea to run this command every few months or so.

Uninstalling Wine and Homebrew

If you try Wine and you don't like it, uninstalling it is easy. Just run this command:

$ brew uninstall wine

And Homebrew will helpfully remove Wine from your computer. However, in order to install Wine, Homebrew also had to install many other small programs that Wine relies upon to work correctly. (That's why the install process takes so long!) If you want to remove these as well, download and run the Homebrew uninstallation script. That script will remove everthing that you installed in this tutorial, including Homebrew, Wine, and all the other programs Homebrew installed to get Wine to work correctly.