More tweaks to the README

Still too long, but it reads marginally better.
This commit is contained in:
Max Howell 2009-09-04 18:37:06 +01:00
parent 8b1b3d2a97
commit ee0459a087

96
README
View File

@ -1,7 +1,8 @@
Homebrew Homebrew
======== ========
Homebrew's purpose is fundamentally the same as MacPorts or Fink, ie. to let Homebrew is a package management system for OS X. In other words it is a tool
you easily install other open source software on your Mac. that helps you manage the installation of other open source software on your
Mac.
Here's why you may prefer Homebrew to the alternatives: Here's why you may prefer Homebrew to the alternatives:
@ -15,15 +16,16 @@ Here's why you may prefer Homebrew to the alternatives:
Homebrew never changes any files outside of its prefix. Homebrew never changes any files outside of its prefix.
3. The GoboLinux approach 3. The GoboLinux approach
Packages are installed to their own prefix (eg. /usr/local/Cellar/wget) Packages are installed into their own prefix (eg. /usr/local/Cellar/wget)
and then symlinked into the Homebrew prefix (eg. /usr/local). and then symlinked into the Homebrew prefox (eg. /usr/local).
This way the filesystem is the package database. As is often the case with This way packages can be managed with existing command line tools. You can
the simplest possible solution, it makes everything else easier and uninstall with rm -rf, list with find, query with du. It also means you
better. 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 Of course you don't have to do anything by hand, we also provide a
list the package contents. Or du to see its size. 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. It's up to you. We recommend not--see the relevant later section.
@ -36,8 +38,7 @@ Here's why you may prefer Homebrew to the alternatives:
Homebrew will automatically open it for you to tweak with TextMate or Homebrew will automatically open it for you to tweak with TextMate or
$EDITOR. $EDITOR.
It is trivially easy to modify or customize existing formulae, and there Or edit an existing formula:
is a quick edit command too:
brew edit foo brew edit foo
@ -47,7 +48,7 @@ Here's why you may prefer Homebrew to the alternatives:
you can build stuff by hand but still end up with package management. 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 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 ./configure --prefix=/usr/local/Cellar/wget/1.10
make install make install
@ -62,8 +63,8 @@ Here's why you may prefer Homebrew to the alternatives:
switch on demand. switch on demand.
7. Optimization 7. Optimization
We optimise for Leopard Intel, binaries are stripped, compile flags We optimise for (Snow) Leopard Intel, binaries are stripped, compile flags
tweaked. Nobody wants crappy, slow software. Apart from MacPorts and Fink. 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 Homebrew knows how many cores you have thanks to RubyCocoa, so it makes
@ -71,21 +72,21 @@ Here's why you may prefer Homebrew to the alternatives:
course). course).
Homebrew knows exactly which Mac you have, and optimizes the software it 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 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 tools exist already and do the job great. We don't duplicate packaging
just improve it by making these tools install with more management effort, we just improve on it by making these tools install with more
options. management options.
9. No duplication 9. No duplication
MacPorts is an autarky. You get a duplicate copy of zlib, OpenSSL, Python, 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 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 10. Fork with Git
The package descriptions are all on git, so just fork to add new packages, The formula are all on git, so just fork to add new packages, or add extra
or add extra remotes to get packages from more exotic maintainers. 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 If the package provides a git:// or svn:// url you can choose to install
@ -100,7 +101,8 @@ Here's why you may prefer Homebrew to the alternatives:
I know I've made it sound so awesome you can hardly wait to rip MacPorts out 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 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 -- <http://twitter.com/mxcl> Max Howell -- <http://twitter.com/mxcl>
@ -112,28 +114,42 @@ so you need Xcode:
<http://developer.apple.com/technology/xcode.html> <http://developer.apple.com/technology/xcode.html>
Also, a lot of build scripts assume MacPorts or Fink on OS X. Which isn't a Many build scripts assume MacPorts or Fink on OS X. Which isn't a problem
problem until you uninstall them and stuff you built with Homebrew breaks and until you uninstall them and stuff you built with Homebrew breaks. So
you email me with a bug report. So uninstall them (or rename their root uninstall them (if you prefer renaming their root folders is sufficient).
folders if you don't want to burn bridges).
<http://trac.macports.org/wiki/FAQ#uninstall> <http://trac.macports.org/wiki/FAQ#uninstall>
<http://www.finkproject.org/faq/usage-fink.php#removing> <http://www.finkproject.org/faq/usage-fink.php#removing>
Homebrew is self-contained and ready to go. Copy this directory anywhere you Now, download Homebrew:
like. But we recommend installing to /usr/local because:
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:
<http://gist.github.com/179275>
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 1. It is already in your path
2. Build scripts always look in /usr/local for dependencies so it makes it 2. Build scripts always look in /usr/local for dependencies so it makes it
easier for you personally to build and install software easier for you personally to build and install software
You can move the location of Homebrew at a later time, although this *will* 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 break some tools because they hardcode their installtion prefixes into their
into their binaries. Homebrew does make more effort than competing solutions binaries. Homebrew does make more effort than competing solutions to prevent
to prevent this though. 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 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! way. But the Homebrew recommendation is: don't sudo!
@ -229,7 +245,7 @@ There are preliminary instructions on the [wiki][].
Contributing New Formulae 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 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! :) flags? Go ahead that's what git is all about! :)
Important Missing Bits
======================
1. Package upgrades
2. Dependency resolution
Coming soon!
Licensing Licensing
========= =========
Homebrew is mostly BSD licensed although some parts are public domain. Homebrew is mostly BSD licensed although you should refer to each file to
Individual formulae are licensed according to their authors wishes. confirm. Individual formulae are licensed according to their authors wishes.
FAQ FAQ