This tutorial was last updated on February 22, 2019.
NEW: My laptop script can automate the whole setup for you.
After following many outdated and incomplete instructions for setting up a web development environment on a Mac (back in March 2012), and spending a lot of time finding solutions to the problems I encountered along the way, I decided to put together this detailed tutorial.
Over time, as tools have improved, and with new releases of macOS, I've updated this tutorial. Ever since Mavericks, setting up a development environment on a Mac with Apple's standalone Command Line Tools, Homebrew, Git, RVM, Ruby, and Rails has been a fairly stress-free process that's no longer fraught with the issues I ran into in 2012.
What is wkpdf. Wkpdf is a command line tool for rendering HTML to PDF using WebKit and RubyCocoa on Mac OS X. Although there are plenty of browsers available for Mac OS X, I could not find a command-line tool that allows for downloading a website and storing the rendered website as PDF. The Command Line Tool package gives Mac terminal users many commonly used tools, utilities, and compilers, including make, GCC, clang, perl, svn, git, size, strip, strings, libtool, cpp, what, and many other useful commands that are usually found in default linux installations.
In fact, the whole process can now be automated via the laptop script that I wrote for you.
Whether you use my script that does everything for you, or set everything up manually, it's best that you start with a clean installation of macOS. If you've already tried to install a development environment, I can't guarantee that you won't run into any issues. Certain tools used in this tutorial might not be compatible with whatever you might have installed. For example, RVM is not compatible with rbenv, and MacPorts is not compatible with Homebrew.
Click on your macOS version below to get started:
Historical Background
Up until February 2012, the only way you could get the Command Line Tools required for web development was via the full Xcode package, which is almost 2 GB in size. Since then, Apple started offering the Command Line Tools (CLT) as a separate, much smaller download (~118MB), which benefits those who don't plan on writing Mac or iOS apps.
There is also a third-party option, the osx-gcc-installer by Kenneth Reitz, that supports both Snow Leopard and Lion. However, it is not updated as often as the official Apple tools, and I personally ran into issues with it on Lion.
When I tried Apple's CLT for Lion back in March 2012, they weren't compatible with Homebrew:
As of August 6, 2012, the issue above is no longer present with the latest CLT for Mountain Lion, and I believe that's the case on Lion as well, but I haven't confirmed that yet. Until I do, I recommend getting the CLT from Xcode if you're on Lion, as explained in this tutorial.
The Easy Way for Mavericks and above
I've written an open source script that canset everything up for you, includingconfiguring your Mac to work with GitHub.
If you prefer to do everything manually, start with Step 1 below.
Step 1: Download and Install the Command Line Tools
Installing the standalone Command Line Tools on Mavericks and above
Most of the work you'll be doing in this tutorial will be in the 'Terminal' application.The easiest way to open an application in OS X is to search for it via Spotlight. The default keyboard shortcut for invoking Spotlight is command-Space
. Once Spotlight is up, just start typing the first few letters of the app you are looking for, and once it appears, select it, and press return
to launch it. See the animated GIF below for an example:
Inside the Terminal window, copy and paste (or type) the following command, and press the return
key on your keyboard:
You should see the pop up below on your screen. Click Install
when it appears.
Click Agree
when the License Agreement appears:
Your computer will then attempt to find the software, and then will start downloading it.The following popup will appear:
Command Line Tool For Mac
Once the software is installed, click Done
. That's it! You're now ready to go to Step 2.
Installing the standalone Command Line Tools on Mountain Lion
Go to https://developer.apple.com/downloads and sign in with your Apple ID (the same one you use for iTunes and app purchases).
Search for 'command line tools' (in the search field on the left), then click on the latest version of 'Command Line Tools (OS X Mountain Lion) for Xcode,' and click on the the .dmg link to download it.
Once the .dmg has finished downloading, double-click on it (if it didn't already open automatically). This will mount the disk image and open a window in your Finder that looks like this:
Double-click on the 'Command Line Tools (Mountain Lion).mpkg' installer and go through the installation. Once the CLT are installed, launch the 'Terminal' application via Spotlight (as explained in Step 1), then go to Step 2.
Installing Xcode on Lion
Click on this link to Xcode on the Mac App Store, then click on 'View in Mac App Store.'
It should automatically launch the 'App Store' app on your Mac and take you the Xcode page. Click on the 'Free' button, then click on 'Install App.'
Once the installation is complete, go to your Applications folder and double-click on Xcode, then install any required components if asked to.
Go to Xcode's Preferences via the menu bar, or by pressing the command and comma keys.
Click on the 'Downloads' icon, then click on the 'Install' button next to 'Command Line Tools.'
When prompted to log in, you should be able to use the same email and password you use for iTunes and app purchases. Once the Command Line Tools are installed, quit Xcode, launch the 'Terminal' application via Spotlight (as explained in Step 1), then go to Step 2.
IMPORTANT NOTE: If you upgraded to Mountain Lion from Lion, and you already had Xcode installed on Lion, and you updated to Xcode 4.4 and updated the Command Line Tools while still on Lion, you will have to go back to Xcode and download the Command Line Tools again after upgrading to Mountain Lion.
Snow Leopard Instructions
UPDATE: A kind reader (P. Martin) pointed out that the Xcode 4.2 download for Snow Leopard is only available to those registered in the $99/year developer program. I confirmed that the latest version of Xcode for Snow Leopard available to me while signed in with a free account is 3.2.6. I have not tested this setup with Xcode 3.2.6, but I would love to hear from you if you have. Otherwise, I recommend that you upgrade to a newer version of OS X.
Go to https://developer.apple.com/downloads and sign in with your Apple ID (the same one you use for iTunes and app purchases).
If you are part of the $99/year Apple developer program, search for 'xcode 4.2' (in the search field on the left), then click on 'Xcode 4.2 for Snow Leopard,' and click on the .dmg link to download it.
Otherwise, search for 'xcode 3.2', then click on 'Xcode 3.2.6 and iOS SDK 4.3 for Snow Leopard,' and click on the .dmg link to download it. As mentioned at the beginning of this section, I have not tested this tutorial with Xcode 3.2.6, so I would recommend that you upgrade to a newer version of OS X.
Once the .dmg has finished downloading, it should automatically mount the disk image and open a window in your Finder that looks like this:
Double-click on the 'Xcode' package installer. Once the installer launches, make sure all the checkboxes are checked, as shown in the screenshot below:
Click 'Continue,' and go through the rest of the installation. If the installation fails, quit the installer, then run Software Update and install any updates that it finds.
If no new updates are available, restart your computer and try installing Xcode again. Once Xcode is successfully installed, you can move on to Step 2.
Step 2: Install Homebrew
Homebrew, 'the missing package manager for OS X,' allows you to easily install hundreds of open-source tools. The full installation instructions are available in the Homebrew Documentation, but you should only need to run the command that's listed at the top of the Homebrew site:
Note that the command listed on the Homebrew site could change, so please make sure that what I have listed above is the same. If it isn't, please let me know and I'll update it.
Copy and paste the command into your Terminal window, press return
, then follow the instructions when prompted, as highlighted in the screenshot below. Note that Terminal does not provide visual feedback when you type your password. Just type it slowly and press return.
Once the installation is successful, run the following command:
If you get Your system is ready to brew
, you can move on to Step 3. Otherwise, go to the Troubleshooting section to learn how to fix errors and warnings you might run into.
Step 3: Install Git
Git is the version control system of choice among many web developers. With Homebrew, installing Git is as easy as this:
Since we just installed Homebrew, we could have skipped brew update
, but it's a good habit to run it before installing anything with Homebrew because Homebrew is updated regularly.
To verify:
You should get git version 2.20.1
or later.
Run brew doctor
to make sure everything is still working. If your system is ready to brew, you can move on to Step 4.
Step 4: Configure Git with GitHub for Mac
Download, install, and launch GitHub for Mac.
If you don't have a GitHub account, click on the Sign Up at GitHub.com
link in the app, then come back to the app to complete the setup. I highly recommend that you turn on two-factor authentication for your GitHub account.
Follow these steps to set up GitHub for Mac when you first launch it:
- Click
Continue
- Enter your username and password, then click
Sign In
- Enter your two-factor authentication code (if you have it turned on)
- Click
Continue
- Enter an email address that you want to be attached to your commits. It doesn't have to be your real email address, but if you leave this blank, Git will nag you about it every time you commit.
- Click
Continue
- Click
Done
To see this setup in action, go to the 1:26 mark in the video I created toshowcase my automated script.
Step 5: Install RVM with the latest Ruby (2.2.0) and Rails (4.2.0)
RVM stands for Ruby Version Manager, and is one of the most popular tools that allow you to install and manage multiple versions of Ruby and Rails on the same computer.
RVM has come a long way since I originally published this tutorial. As of March 30, 2013, you can now install the latest RVM, Ruby, and Rails in one step. However, because RVM installs documentation for every gem that Rails depends on, which takes forever, I recommend disabling documentation first:
Now you can install everything with one command. If you're not interested in Rails, just replace --rails
with --ruby
in the command below:
Read the RVM installation documentation to see all the different options you can use.
This will take a few minutes, and once it's done, quit and relaunch Terminal, then run this command:
If you get rvm is a function
, that means RVM was successfully installed. If not, go to the Troubleshooting section.
To make sure the latest versions of RVM, Ruby and Rails were installed, run the commands below:
For RVM
You should get rvm 1.26.10
or higher.
For Ruby
You should get ruby 2.2.0
or higher. If you get dyld: Library not loaded: /usr/local/lib/libgmp.10.dylib
, that means something is wrong with the binary version of the latest Ruby. To fix it, reinstall your desired Ruby version by disabling the binary:
For Railsrails -v
You should get Rails 4.2.0
or higher.
To make sure your system is still ready to brew:brew doctor
If everything went well, you're done! Your machine is now set up with the basic tools for web development.
If you got any value out of my tutorial, I have more time-saving tips and tricks for you in my free newsletter.
Next Steps
Once you start hacking away on your computer, you will most likely need to install more tools with Homebrew. Before you do, remember to always run brew update
and brew doctor
to make sure your system is still ready to brew. To upgrade your existing packages, run brew upgrade
.
If you installed the full Xcode package, remember that when you update it via the Mac App Store, you might also need to update the Command Line Tools via Xcode's Preferences. If you installed the standalone CLT, I recommend checking for a new version once a month or so.
If you followed this tutorial because you're interested in Rails development, I recommend visiting Daniel Kehoe's excellent RailsApps Project.
If you want to install another version of Ruby besides 2.2.0, follow the instructions below.
Installing other versions of Ruby, such as 2.1.5
Before you install a version of Ruby with RVM, you should make sure you have the latest version of RVM:
Then run:
To see all the versions of Ruby installed via RVM:
This output also lets you know which version is the default and which one is the current one in use.
To use a specific version (2.2.0 in the example below) and also set it as the default version for new shell sessions:
To verify:
The version should match that of the current Ruby in use.
Troubleshooting
Homebrew
In many cases, Homebrew will provide helpful instructions for dealing with warnings and errors, and I usually follow those instructions. I've tried to cover the most common sources of warnings and errors. If you run into an issue I haven't mentioned, try looking it up in the Homebrew GitHub Issues, or Google the error message. If that doesn't help, contact me and I'll do my best to help you.
After you fix each issue, run brew doctor
until you get Your system is ready to brew
. Then go to Step 3.
If you get Warning: /usr/bin occurs before /usr/local/bin
, run the command below (as recommended by Homebrew), and quit and relaunch Terminal:
This command takes everything between the single quotes and adds it (>>
) to a file called .bash_profile
in your user's root directory (~/
). Every time you open a new Terminal window or tab, .bash_profile
is called. The export PATH
line tells your system to look in /usr/local/bin
first, since that's where Homebrew installs tools.
If you get Warning: Experimental support for using Xcode without the 'Command Line Tools'
, you probably upgraded from Lion to Mountain Lion but didn't reinstall the Command Line Tools. See the important note in Step 1.
If you get Error: No such file or directory - /usr/local/Cellar
, run the following command, which creates the /usr/local/Cellar
directory:
sudo
allows you to run commands as a user with higher access rights, which is why it prompts you for your password, and mkdir
stands for 'make directory.'
If you get /usr/local/etc isn't writable
or Cannot write to /usr/local/Cellar
or if it complains that any directories inside /usr/local
aren't writable, fix it with this command:
This makes you the owner of the /usr/local
directory, in addition to all nested directories.
chown
stands for 'change owner,' the -R
flag applies this to all nested files and directories, and whoami
is a variable that represents your OS X username. You should copy and paste the command above as is.
To learn more about any Unix command, type man
(for 'manual'), followed by the command. For example:
If a manual is longer than a page long, it will display a :
at the end to signify there is more to read. To display one additional line at a time, press return. To display an additional page at a time, press the space bar. To quit at any time, press q
.
If you get Warning: Unbrewed dylibs were found in /usr/local/lib
, or a warning about any type of unbrewed files or static libraries, you may need to delete them as suggested by Homebrew (unless you put them there on purpose, which is unlikely). You'll have to delete each file it complains about one by one with the rm
command. For example, to remove a file called libgd.2.0.0.dylib
from /usr/local/lib
, you would run this command:
If you get Warning: Python is installed at /Library/Frameworks/Python.framework
, or Warning: 'config' scripts exist outside your system or Homebrew directories
related to Python, it most likely means you installed Python with a tool other than Homebrew. If you think you might need this version of Python, then just ignore those warnings. Otherwise, run the command below to remove that version of Python, but read this thread first.
If you're on Lion, you might get this:
This should fix it:
Run brew doctor
to verify. Your system should be ready to brew now.
In some cases, brew doctor
might show you this warning:
Homebrew messages are generally very helpful and they let you know exactly what to do. In this case, it is telling you to fix the linking issue by running brew unlink
, followed by the tools (or 'brews') that need to be unlinked. Here, there is only one tool that needs to be unlinked. Therefore, you should run this command:
If it listed more than one tool, you would add them to the command separated by a space, like so:
Run brew doctor
once more, and you should be ready to brew
now.
RVM
If you're installing RVM on a machine that has gpg
installed (which won't be the case on a new Mac), you will get a GPG signature verification failed
error. Make sure to follow the instructions in the error message. At the time of this writing, you will need to run the command below to download the signatures, after which you can go back to step 5 to install RVM.
How to load RVM into your shell session as a function
Run this command:
Now that .bash_profile
has been modified, it needs to be reloaded. For initial RVM installations, the preferred way to do this is to quit and relaunch Terminal. Otherwise, you can use the following command:
If all went well, you should see rvm is a function
after you run this command:
Previous Notes
Installing Ruby on Snow Leopard and Lion is presumably as easy as on Mountain Lion, but I haven't been able to verify that. The instructions below are based on my experience in 2012. I've left them here for reference but I'm not sure if they still apply. For example, running rvm requirements
used to provide instructions specific to your environment, but now it tries to install all the requirements for you.
The screenshots below are examples of the kind of output rvm requirements
would show. One is for Snow Leopard 10.6.8 with Xcode 4.2, and the other for Mountain Lion 10.8 with no Xcode:
According to the requirements, we must first install libksba. This applies to Snow Leopard, Lion and Mountain Lion.
We can do that easily with Homebrew, but first we should make sure it is up to date:
Since Homebrew is updated regularly, it's advisable to run brew update
before installing anything with Homebrew.
Now we're finally ready to install Ruby 1.9.3! If you're on Snow Leopard, you need to add a flag to the command (as specified in the RVM requirements):
If you're on Lion, you need to install automake first:
Otherwise, you will get this error when installing Ruby 1.9.3:
If you're on Mountain Lion 10.8.2 with Xcode 4.5, you will need to run these commands first:
The steps above are necessary for you to be able to install Ruby gems, such as Rails. Otherwise, you will run into errors such as these:
You can use your Mac’s Terminal to download files, test your internet speed, convert images, or even listen to Pandora. All this and more is just a couple of Homebrew installations away.
We’ve shown you a bunch of terminal tricks in macOS, all based on software that comes with the operating system itself. But you can do even more with the right free software, and thankfully, there’s a great package manager called Homebrew that lets you install loads of useful command line utilities. Check out our guide to installing Homebrew, if you haven’t already, then come back here to check out some of the best tools it offers.
Download Anything With wget
The ultimate download tool, wget, is great for downloading individual files or even downloading an entire website. And it’s easy to install with Homebrew. Just run:
brew install wget
Then you can use wget to download whatever youwant. If you wanted to download the latest version of WordPress, for example, you’d run this command:
wget https://wordpress.org/latest.zip
But this doesn’t stop at individual files. You can download entire directories, using a command like this:
wget ‐‐level=1 ‐‐recursive ‐‐no-parent http://www.examplesite.egg/neatfiles/
We’re really just scratching the surface here, but if you type wget --help
you’ll learn a lot more.
Test Your Internet Speed With speedtest_cli
We’ve shown you how to test your internet connection speed using your browser, but wouldn’t it be faster just to open the Terminal and type a command? Yes, and installing this capability is simple:
brew install speedtest_cli
You can run the test by typing speedtest-cli
or speedtest_cli
in the Terminal. You’ll get the same results as the web version, just with a lot less visual clutter.
Check The Weather With ansiweather
Get a weather forecast from the Terminal? Why not! Again, it’s easy to install.
brew install ansiweather
Using this one is a little tricky, because you have to specify your location. Here’s what that looked like for me:
ansiweather -l Hillsboro,OR -u imperial
ansiweather
is the name of the program-l
lets me set the location, andHillsboro,OR
is where I live.-u
lets me set which units to use, and I opted forimperial
because I live in the USA and that’s how they do things here.
You can read more details on the ansiweather GitHub page, if you’re interested. This application probably isn’t one you’ll use every day, but could be awesome if you’ve set up GeekTool to customize your desktop.
Crunch Numbers With calc
Turn your Terminal into a complete calculator by installing:
brew install calc
Launch calc
and you can start typing equations, as shown in the screenshot. If you need some help learning what characters to use, just type help intro
and read the resulting tutorial. The program is quite powerful once you learn it, so dive in.
Customize Your Dock With dockutil
We’ve shown you ways to customize your dock, but dockutil goes just a little bit further, and is quick to install.
brew install dockutil
The tool can do many things, including add a dock icon for any website. Here’s how that command looks for Facebook:
dockutil --add http://www.facebook.com --label Facebook
A quick breakdown for you:
dockutil
is the name of the program--add
tells the program to add an icon. The URL following this tells the program which website I’d like to point to; you can also point to applications or folders.--label
lets me name the dock icon, which I’ve opted to call Facebook.
You’ll need to reset your dock for the new icon to show up:
killall Dock
Just like that, you’ll see a Dock icon for launching Facebook.
You can also add applications, folders, and blank spaces. For information on all this and more, check out the dockutil page on Github.
Convert Images With ImageMagick
We’ve already explained how to convert and resize images with imagemagick in Linux, and everything works the same way for Mac users. First, install imagemagick using Homebrew:
brew install imagemagick
Now you can start using the application to do all sorts of things. For example, if you wanted to convert a file from a PNG to a JPG, you’d run:
convert example.png example.jpg
You can do a lot more than just convert files, too. Here at How-To Geek, for example, put a 1 pixel black border on our images, and I do it with this command:
Install Git Via Command Line
convert -border 1x1 -bordercolor black testing.png result.png
There’s a lot of power to unpack here, so feel free to dive in–check out our original guide for tons of useful info.
Listen To Pandora With pianobar
Using the terminal to listen to music may seem like a gimmick, but it’s actually awesome. Pianobar streams Pandora to your computer with great keyboard shortcuts, without the big Flash-y site, and without commercials. Again, you can install with one command.
brew install pianobar
Launch pianobar
and you’ll be asked for your Pandora account info, then you’re ready to rock. You can pick from among your stations using numbers, and keyboard shortcuts let you do things like skip tracks and love songs. Press “?” to see a full list of shortcuts.
Github On Mac
Toggle Dark Mode With darkmode
Mac users have been able to turn their menu bar black for a while now, a feature called “Dark Mode”. This Terminal application lets you toggle that mode one and off quickly from the Terminal. Installation, again, is easy:
brew install darkmode
Once installed, you can toggle your menu bar between dark mode and light mode with a simple command: dark-mode
. Run that, and your menu bar will switch color schemes. It’s a quick thing, sure, but someone with some scripting experience could put it to good use.
Play With cowsay, Which Is Mandatory
Github Download Mac
For some reason, no roundup of command prompt tools for beginners is complete without mention of cowsay. Type cowsay, followed by any sentence, and an ascii cow will say it back to you. Magical. Installing, once again, is easy with Homebrew.
brew install cowsay
You can actually get so much more than cows from this. Here’s how to get a list of all supported creatures:
cowsay -l
You can make any of these creatures say your words by using the -f
variable. For example, if you want a dragon to say “hello”, you can do that:
cowsay -f dragon hello
You know what? That’s actually a fairly decent tutorial for learning the command line. No wonder every list like this seems to include this otherwise useless tool. Enjoy!
READ NEXT- › What Can I Do with My Old iPhone?
- › How to Stream UFC 242 Khabib vs. Poirier Live Online
- › Free Download: Microsoft’s PowerToys for Windows 10
- › How to Overclock Your Computer’s RAM
- › What’s New in Chrome 77, Arriving September 10