Skip to content
This repository was archived by the owner on Jan 16, 2025. It is now read-only.

Commit 29d8557

Browse files
committedMay 20, 2009
I'll start with a rare Belgian yeast and Sussex hops
0 parents  commit 29d8557

File tree

1 file changed

+137
-0
lines changed

1 file changed

+137
-0
lines changed
 

‎README

Lines changed: 137 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,137 @@
1+
Homebrew
2+
========
3+
A simple package management system for OS X Leopard. Packages are brewed in
4+
individual, versioned kegs. For example:
5+
6+
/Brewery/Cellar/wget/1.14/bin/wget
7+
8+
Then symlinks are created to give a normal POSIX tree:
9+
10+
bin/wget -> Cellar/wget/1.14/bin/wget
11+
12+
This way the filesystem is the package database. Everything else is now easy.
13+
We are made of win.
14+
15+
Max Howell -- http://twitter.com/mxcl
16+
17+
18+
Installation
19+
============
20+
Homebrew uses ruby and some other stuff that is already installed on Leopard.
21+
Just copy this directory somewhere. I suggest /Brewery but leave the directory
22+
user writable (for now). I wouldn't worry about it not being root. We don't
23+
install anything base enough for it to be a concern (unlike MacPorts or Fink).
24+
25+
You can stick this directory in your home directory if you like. In that case
26+
a typical (POSIX) choice would be: /User/mxcl/local
27+
28+
It's actually pretty useful if you are a developer to put the tree at
29+
/usr/local because almost all build scripts look there as part of their
30+
configure step, so your work (outside of Homebrew) will be somewhat easier.
31+
32+
You then need to stick /Brewery/bin or ~/local/bin in your path.
33+
34+
To 'install' the brew tool, do:
35+
36+
$ ruby /Brewery/Cellar/homebrew/brewkit.rb
37+
38+
39+
Usage
40+
=====
41+
Install wget:
42+
ruby /Brewery/Formula/wget.rb
43+
44+
Update recipes list:
45+
cd /Brewery && git pull origin master
46+
47+
Delete a package:
48+
rm -rf /Brewery/Cellar/wget && brew prune
49+
50+
List all files in a package:
51+
find /Brewery/Cellar/wget
52+
53+
Search for a package to install:
54+
ls /Brewery/Formula/*wget*
55+
56+
Search for a package already installed:
57+
ls /Brewery/Cellar/*wget*
58+
59+
List all packages available to install:
60+
ls /Brewery/Formula
61+
62+
Compute installed size of package:
63+
du -h /Brewery/Cellar/wget
64+
65+
You get the idea.
66+
67+
Maybe we should overload this stuff with the brew command, but frankly I feel
68+
that this way *you* will understand the capabilities of the system better. And
69+
you basically know everything that is going on.
70+
71+
With apt, you type apt-get install wget. Now what is happening? With Homebrew
72+
you are running a ruby script. You know what is happening. You can easily and
73+
quickly read the source and modify it and then push the patch to github if
74+
anything you need is missing or something is not working. This is real open
75+
source.
76+
77+
NOTE you have to install git before you can update the package list. *shrug*
78+
79+
80+
Why Not MacPorts?
81+
=================
82+
1. MacPorts installs its own libz, its own openssl, etc. It is an autarky.
83+
This makes no sense to me. OS X comes with all that shit.
84+
2. MacPorts support Tiger, and PPC. We don't, so things are better optimised.
85+
86+
87+
Homebrew Will Never Build:
88+
==========================
89+
1. KDE, or GNOME, or anything that vast
90+
2. Anything that should be distributed in a .app bundle
91+
3. Anything that needs to install outside of the Homebrew tree
92+
4. Stuff OS X already does, eg. rubygems (duplication sucks)
93+
94+
95+
Why Compile From Source?
96+
========================
97+
Since we only target Intel Leopard boxes, why not just distribute binaries?
98+
Well, I can't afford too :P And compiling from source gives more flexibility.
99+
If you want to adapt the system and make it work with binaries. Fork away.
100+
Bandwidth is on you though :P
101+
102+
103+
How do I Notify Someone that a Package is Out of Date?
104+
======================================================
105+
Chances are that if the package hasn't been updated for a few days, then the
106+
previous maintainer has vanished. You have to do it. Don't worry, unlike every
107+
other packaging system ever, it's easy with Homebrew:
108+
109+
1. Edit the relevant ruby file in +/recipes
110+
2. Fork Homebrew on github
111+
3. Send mxcl a pull request
112+
113+
Congratulations, you have contributed to an open source project!
114+
115+
116+
Contributing
117+
============
118+
New Formulas
119+
------------
120+
Relative to every other stupid packaging system ever, this is trivial. Just
121+
fork it at: http://github.com/mxcl/homebrew and create a new recipe. Then ask
122+
me to pull. Using git made all this so much easier.
123+
124+
Code
125+
----
126+
Yes please! Fork and improve :)
127+
128+
129+
FAQ
130+
===
131+
Are you excessively interested in beer?
132+
---------------------------------------
133+
Yes.
134+
135+
Was Homebrew devised under the influence of alchohol?
136+
-----------------------------------------------------
137+
Yes.

0 commit comments

Comments
 (0)
This repository has been archived.