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