4 ms·
C'mon though - you need to meet people half way and read a little. From the Github README (http://github.com/mxcl/homebrew/ http://github.com/mxcl/homebrew/):
by telemachos 17y ago
C'mon though - you need to meet people half way and read a little. From the Github README (http://github.com/mxcl/homebrew/ http://github.com/mxcl/homebrew/):
Here's why you may prefer Homebrew to the alternatives:
Zero configuration installation
Copy the contents of this directory to /usr/local. Homebrew is now ready for use.
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.
The GoboLinux approach
Packages are installed into their own prefix (eg. /usr/local/Cellar/wget) and then symlinked into the Homebrew prefix (eg. /usr/local).
This way the filesystem is the package database and packages can be managed with existing command line tools. For example, you can uninstall with rm -rf, list with find, query with du. It also means you can install multiple versions of software or libraries and switch on demand.
Of course, you don't have to do anything by hand, we also provide a convenient and fully-featured four-letter tool called brew.
You don't have to sudo
It's up to you.
Create new package descriptions in seconds
Package descriptions (formula) are simple Ruby scripts. Generate a template with:
brew create http://foo.com/tarball-0.8.9.tgz
Or edit an existing formula:
brew edit foo
Package descriptions not required
MacPorts doesn't support the beta version? Need an older version? Need custom compile flags? The Homebrew tool-chain 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 link to symlink that installation into your PATH, eg.
./configure --prefix=/usr/local/Cellar/wget/1.10
make install
brew ln wget
Or Homebrew can figure out the prefix:
./configure `brew diy`
cmake . `brew diy`
Optimization
We optimize for (Snow) Leopard Intel, binaries are stripped, compile flags are tuned to your exact Mac model. Slow software sucks.
Making the most of OS X
A touch of RubyCocoa, a cheeky sysctl query or two and a smattering of FSEvent monitoring. In these manic days of cross-platform development, it's can be a welcome relief to use something that is better because it isn't too generalized.
No duplication
MacPorts is an autarky -- you get a duplicate copy of zlib, OpenSSL, Python, etc. Homebrew uses what is already there, and consequently, most stuff has zero dependencies and builds faster.
We resist packaging stuff that is already packaged. So we have a wiki page that describes how best to use RubyGems, Pip (or easy_install) and CPAN with OS X and Homebrew.
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.
Surfing the cutting edge
If the package provides a git://, svn://, cvs:// or hg:// url you can choose to install that instead and then update as often as you like.
- stevenwei 17y ago"MacPorts is an autarky -- you get a duplicate copy of zlib, OpenSSL, Python, etc. Homebrew uses what is already there, and consequently, most stuff has zero dependencies and builds faster." MacPorts made the decision to package and version their own versions of everything for a reason. Conflicts can start to arise when you start compiling against Apple's default shipped libraries for X11, Python, etc. Especially if the default shipped versions don't provide what you need. E.g. the PHP install that shipped with Snow Leopard is missing several notable extensions. It might be safe to ignore these issues now but as the app grows they will need to be addressed. (Or of course they can ignore it and just point to MacPorts as an alternative for some subset of packages).