More tweaks to the README
Still too long, but it reads marginally better.
This commit is contained in:
parent
8b1b3d2a97
commit
ee0459a087
122
README
122
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 -- <http://twitter.com/mxcl>
|
||||
|
||||
@ -112,28 +114,42 @@ so you need Xcode:
|
||||
|
||||
<http://developer.apple.com/technology/xcode.html>
|
||||
|
||||
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).
|
||||
|
||||
<http://trac.macports.org/wiki/FAQ#uninstall>
|
||||
<http://www.finkproject.org/faq/usage-fink.php#removing>
|
||||
|
||||
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:
|
||||
<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
|
||||
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
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user