diff --git a/README b/README index 7b7c45c710..fd6b3591c4 100644 --- a/README +++ b/README @@ -1,34 +1,36 @@ Homebrew ======== -Homebrew's purpose is fundamentally the same as MacPorts or Fink, ie. to let -you easily install other open source software on your Mac. +Homebrew is a package management system for OS X. In other words it is a tool +that helps you manage the installation of other open source software on your +Mac. Here's why you may prefer Homebrew to the alternatives: -1. Zeroconf installation +1. Zeroconf installation Copy the contents of this directory to /usr/local. Homebrew is now ready for use. -2. Or… install anywhere! +2. Or… install anywhere! You can actually stick this directory anywhere. Like ~/.local or /opt or /lol if you like. You can even move this directory somewhere else later. Homebrew never changes any files outside of its prefix. -3. The GoboLinux approach - Packages are installed to their own prefix (eg. /usr/local/Cellar/wget) - and then symlinked into the Homebrew prefix (eg. /usr/local). +3. The GoboLinux approach + Packages are installed into their own prefix (eg. /usr/local/Cellar/wget) + and then symlinked into the Homebrew prefox (eg. /usr/local). - This way the filesystem is the package database. As is often the case with - the simplest possible solution, it makes everything else easier and - better. + This way packages can be managed with existing command line tools. You can + uninstall with rm -rf, list with find, query with du. It also means you + can easily install multiple versions of software or libraries and switch + on demand. - Eg. You can, if you like, rm -rf to uninstall a package. Or use find to - list the package contents. Or du to see its size. + Of course you don't have to do anything by hand, we also provide a + convenient and fully-featured four-letter tool called brew. -4. You don't have to sudo +4. You don't have to sudo It's up to you. We recommend not--see the relevant later section. -5. Easy package creation +5. Easy package creation Packages are just Ruby scripts. Generate a template with: brew mk http://foo.com/tarball-0.8.9.tgz @@ -36,18 +38,17 @@ Here's why you may prefer Homebrew to the alternatives: Homebrew will automatically open it for you to tweak with TextMate or $EDITOR. - It is trivially easy to modify or customize existing formulae, and there - is a quick edit command too: + Or edit an existing formula: brew edit foo -6. DIY package installation +6. DIY package installation MacPorts doesn't support the beta version? Need an older version? Need custom compile flags? The Homebrew toolchain is carefully segregated so you can build stuff by hand but still end up with package management. Just install to the Cellar and then call brew ln to symlink that - installation into /usr/local, eg. + installation into your PATH, eg. ./configure --prefix=/usr/local/Cellar/wget/1.10 make install @@ -61,46 +62,47 @@ Here's why you may prefer Homebrew to the alternatives: This means you can also install multiple versions of the same package and switch on demand. -7. Optimization - We optimise for Leopard Intel, binaries are stripped, compile flags - tweaked. Nobody wants crappy, slow software. Apart from MacPorts and Fink. +7. Optimization + We optimise for (Snow) Leopard Intel, binaries are stripped, compile flags + tweaked. Slow software sucks. -8. Making the most of OS X +8. Making the most of OS X Homebrew knows how many cores you have thanks to RubyCocoa, so it makes sure when it builds it uses all of them, (unless you don't want it to of course). Homebrew knows exactly which Mac you have, and optimizes the software it - builds as well it possibly can. + builds as well as it possibly can. Homebrew can integrate with Ruby gems, CPAN and Python disttools. These - tools exist already and do the job great. We don't reinvent the wheel, we - just improve it by making these tools install with more management - options. + tools exist already and do the job great. We don't duplicate packaging + effort, we just improve on it by making these tools install with more + management options. -9. No duplication +9. No duplication MacPorts is an autarky. You get a duplicate copy of zlib, OpenSSL, Python, etc. To cut a long story short, Homebrew doesn't. As a result everything - you install has less dependencies and builds much faster. + you install has less dependencies and builds significantly faster. -10. Fork with Git - The package descriptions are all on git, so just fork to add new packages, - or add extra remotes to get packages from more exotic maintainers. +10. Fork with Git + The formula are all on git, so just fork to add new packages, or add extra + remotes to get packages from more exotic maintainers. -11. Surfing the cutting edge +11. Surfing the cutting edge If the package provides a git:// or svn:// url you can choose to install that instead and then update as often as you like. -12. Homebrew has a beer theme +12. Homebrew has a beer theme Beer goggles will help you to evangelise Homebrew more effectively. -13. Homebrew helps get you chicks +13. Homebrew helps get you chicks There's no conclusive scientific evidence as yet, but I firmly believe it's just a matter of time and statistics. I know I've made it sound so awesome you can hardly wait to rip MacPorts out and embrace the fresh, hoppy taste of Homebrew, but I should point out that it -is really new and still under heavy development. Thanks! +is really new and still under heavy development. Eg. *dependency resolution +and updates are still manual*. Thanks! Max Howell -- @@ -112,28 +114,42 @@ so you need Xcode: -Also, a lot of build scripts assume MacPorts or Fink on OS X. Which isn't a -problem until you uninstall them and stuff you built with Homebrew breaks and -you email me with a bug report. So uninstall them (or rename their root -folders if you don't want to burn bridges). +Many build scripts assume MacPorts or Fink on OS X. Which isn't a problem +until you uninstall them and stuff you built with Homebrew breaks. So +uninstall them (if you prefer renaming their root folders is sufficient). -Homebrew is self-contained and ready to go. Copy this directory anywhere you -like. But we recommend installing to /usr/local because: +Now, download Homebrew: + + git clone git://github.com/mxcl/homebrew.git + +If this leaves you shaking your head because you are installing Homebrew +*in order to* install git, then try this installer script: + + +Homebrew is self-contained so once you've put it somewhere, it's ready to go. +Copy this directory anywhere you like. But we recommend installing to +/usr/local because: 1. It is already in your path 2. Build scripts always look in /usr/local for dependencies so it makes it easier for you personally to build and install software You can move the location of Homebrew at a later time, although this *will* -break some tools because they compile they hardcode their installtion prefixes -into their binaries. Homebrew does make more effort than competing solutions -to prevent this though. +break some tools because they hardcode their installtion prefixes into their +binaries. Homebrew does make more effort than competing solutions to prevent +this though. -If you install outside of your home directory -- don't sudo ------------------------------------------------------------ +Finally, if you don't install to /usr/local, you have to add the following to +your ~/.profile file: + + export PATH=`brew --prefix`/bin:$PATH + export MANPATH=`brew --prefix`/share/man:$MANPATH + +Don't sudo +---------- Well clearly you can sudo if you like. Homebrew is all about you doing it your way. But the Homebrew recommendation is: don't sudo! @@ -229,7 +245,7 @@ There are preliminary instructions on the [wiki][]. Contributing New Formulae ========================= -Formulae are simply Ruby scripts. Generate a formula with most bits filled-in: +Formulae are simple Ruby scripts. Generate a formula with most bits filled-in: brew mk http://foo.org/foobar-1.2.1.tar.bz2 @@ -245,18 +261,10 @@ your own distribution. Maybe you want to support Tiger? Or use special compile flags? Go ahead that's what git is all about! :) -Important Missing Bits -====================== -1. Package upgrades -2. Dependency resolution - -Coming soon! - - Licensing ========= -Homebrew is mostly BSD licensed although some parts are public domain. -Individual formulae are licensed according to their authors wishes. +Homebrew is mostly BSD licensed although you should refer to each file to +confirm. Individual formulae are licensed according to their authors wishes. FAQ