Steam on Mac, case-sensitive workaround

So, Steam for OS X just went live.

Cool.

Then they announce Portal is FREE! (until May 24th, 2010 at least).

Awesome!

So I download the Steam .dmg to my Mac, copy Steam over to /Applications, try to run it, and promptly get:

Steam requires that Steam.app/Contents/MacOS be created on a case-insensitive file system, with read-write access.

Wut!?

Why!?

(I mean, why couldn’t they have ported the thing properly and made sure the paths/file names in the code were all lower case or something?)

You know—there are people who like case-sensitive file systems because it forces them to be more careful with how they code. You know—not every file system is like, FAT32 where “readme.txt”, “README.TXT” and “ReadMe.tXt” all refer to the same file!

Anyway—while I love to rant, I also like to fix things. So here goes:

1. Create a new partition, formatted simply as Mac OS Extended (Journaled)

Note—NOT case-sensitive. I made mine 10GB, and labeled it steam. Fortunately, Disk Utility lets us play around with partitions. Who needs Partition Magic?

2. Copy Steam.app to the new partition

But wait, there’s more! If you try to run Steam now, it’ll complain about ~/Library/Application Support/Steam (and later, ~/Documents/Steam Content). Hang in there with me for a second.

3. Create the necessary folders on your new partition

I ended up creating /Application Support/Steam and /Documents/Steam Content on the steam volume.

4. Create symbolic links to these new folders from where Steam looks for them

First make sure that the folders ~/Library/Application Support/Steam and ~/Documents/Steam Content don’t exist yet (the Steam app will try to create these for you). If they do, just delete them.

Time for some Terminal magic. Run Terminal, and go

cd ~/Library/Application\ Support/
ln -ns /Volumes/steam/Application\ Support/Steam/ Steam
cd ~/Documents
ln -ns /Volumes/steam/Documents/Steam\ Content/ "Steam Content"
sudo ln -s /Volumes/ /volumes

The last line will require you to enter your administrator password. I just added that in courtesy of Josh Anderson’s own post. Without that other symbolic link, it seems Steam will have trouble finding the content/games it’s already downloaded.

5. Run Steam.

6. Download Portal

7. …

8. Profit!

You’re welcome.

Added: Also, here’s another workaround by Josh Anderson that doesn’t require you to create a new partition, but uses a case-insensitive disk image instead.

14 thoughts on “Steam on Mac, case-sensitive workaround

  1. Technically, FAT32 (or rather, long file names on FAT32 filesystems) is case sensitive. The older FAT versions are case-insensitive.

    And Portal! Steam! On Mac OS X!

    (On a semi-related note, did you take a peek at steam.sh inside Steam.app/Contents/MacOS? Interesting bits.)

  2. Same cr4p that Adobe force on us. It smacks of laziness, as I see no evidence of any files in the installation that would cause problems on a case sensitive filesystem.

    Fair enough, the majority of new Mac users may be using the case-insensitive file system, but this won’t wash for Steam on Linux (if that ever becomes a reality).

  3. This doesn’t actually work for me. Steam runs fine, but it doesn’t download any files to the new partition. Instead it puts them on the case-sensitive hard drive at:

    /volumes/whatever/steam content/…

    (where it should be:)

    /Volumes/WHATEVER/Steam Content/…

    1. Hi, Greg. Yeah, I had to put in the last line after initially posting this, after reading Josh Anderson’s blog. I also got the files on /volumes/... but making the symbolic link from /volumes/ to /Volumes fixed the problem:
      sudo ln -s /Volumes/ /volumes

      1. Your blog post instructions don’t have it quite right (although in your comment above, you have it right).

        sudo ln -s Volumes/ volumes

        should be

        sudo ln -s /Volumes/ /volumes

        Thanks for the instructions, though, I was able to get it working. Hurray!

  4. I know this blog was made a long time ago but it’s the only one that i can actually understand. I’m attempting to download Half-Life 2 onto my computer but everytime I click the install button this message pops up, “The Steam servers are currently too busy to hangle your request. Please try again in a few minutes.” I went on steam’s forums and found that it was because of the case in/sensitive issue. The forum post was not helpful because it used too much of terminal which i do not know how to use.

    I completed all of these steps but still have a few issues. When I try to run steam after going through these steps it displays, “Steam has changed where it stores game content from ‘~/Documents/Steam Content’ to ‘~/Library/Application Support/Steam/SteamApps’. You have game first in the original location, and Steam was not able to move the files because files already exist at the new location. You may need to move the files manually, or delete the old files and download your games again. Continue anyway?” and then there is the cancel and ok buttons below it.
    I’ve tried both options, the cancel gets me no where and ok still doesn’t let me download what I want. Any suggestions?

  5. I apparently have problems typing when I get the terminal, but once i deleted everything and restarted, and then actually focused on what I was doing it worked perfectly. Thank you.

  6. I have a second (case-insensitive) volume called “Macintosh HD 2”. Steam also needs this to be symlinked, as it tries to access it as ‘macintosh hd 2’

    cd /volumes
    ln -ns Macintosh\ HD\ 2 “macintosh hd 2”

    Same would also apply if you have any caps in your disk name. You got lucky calling it ‘steam’, ‘Steam’ wouldn’t have worked 🙂

  7. Ok i downloaded steam but it’s saying it wouldn’t download properly because of this error of loading it to diskimage bullcr@p, i’m not much of a technician to fix this type of program since it’s new to me.

  8. This is great, but could someone please a step-by-step guide (please include every step) of how this is actually done? Baring in mind I have no knowledge of partitions and much of the computer terminology used in forums. This is a source of much frustration for me and would greatly appreciate someones help.

  9. I had to add the following to make it work. Using ~/Library didn’t work for me.
    sudo ln -ns /Volumes/steam/Application\ Support/Steam/ Steam

    I also added this just because.
    ln -ns /Volumes/steam/Steam.app/ Steam

Leave a comment