mirror of
https://github.com/Homebrew/brew.git
synced 2025-07-14 16:09:03 +08:00
I'll start with a rare Belgian yeast and Sussex hops
This commit is contained in:
commit
29d85578e7
137
README
Normal file
137
README
Normal file
@ -0,0 +1,137 @@
|
||||
Homebrew
|
||||
========
|
||||
A simple package management system for OS X Leopard. Packages are brewed in
|
||||
individual, versioned kegs. For example:
|
||||
|
||||
/Brewery/Cellar/wget/1.14/bin/wget
|
||||
|
||||
Then symlinks are created to give a normal POSIX tree:
|
||||
|
||||
bin/wget -> Cellar/wget/1.14/bin/wget
|
||||
|
||||
This way the filesystem is the package database. Everything else is now easy.
|
||||
We are made of win.
|
||||
|
||||
Max Howell -- http://twitter.com/mxcl
|
||||
|
||||
|
||||
Installation
|
||||
============
|
||||
Homebrew uses ruby and some other stuff that is already installed on Leopard.
|
||||
Just copy this directory somewhere. I suggest /Brewery but leave the directory
|
||||
user writable (for now). I wouldn't worry about it not being root. We don't
|
||||
install anything base enough for it to be a concern (unlike MacPorts or Fink).
|
||||
|
||||
You can stick this directory in your home directory if you like. In that case
|
||||
a typical (POSIX) choice would be: /User/mxcl/local
|
||||
|
||||
It's actually pretty useful if you are a developer to put the tree at
|
||||
/usr/local because almost all build scripts look there as part of their
|
||||
configure step, so your work (outside of Homebrew) will be somewhat easier.
|
||||
|
||||
You then need to stick /Brewery/bin or ~/local/bin in your path.
|
||||
|
||||
To 'install' the brew tool, do:
|
||||
|
||||
$ ruby /Brewery/Cellar/homebrew/brewkit.rb
|
||||
|
||||
|
||||
Usage
|
||||
=====
|
||||
Install wget:
|
||||
ruby /Brewery/Formula/wget.rb
|
||||
|
||||
Update recipes list:
|
||||
cd /Brewery && git pull origin master
|
||||
|
||||
Delete a package:
|
||||
rm -rf /Brewery/Cellar/wget && brew prune
|
||||
|
||||
List all files in a package:
|
||||
find /Brewery/Cellar/wget
|
||||
|
||||
Search for a package to install:
|
||||
ls /Brewery/Formula/*wget*
|
||||
|
||||
Search for a package already installed:
|
||||
ls /Brewery/Cellar/*wget*
|
||||
|
||||
List all packages available to install:
|
||||
ls /Brewery/Formula
|
||||
|
||||
Compute installed size of package:
|
||||
du -h /Brewery/Cellar/wget
|
||||
|
||||
You get the idea.
|
||||
|
||||
Maybe we should overload this stuff with the brew command, but frankly I feel
|
||||
that this way *you* will understand the capabilities of the system better. And
|
||||
you basically know everything that is going on.
|
||||
|
||||
With apt, you type apt-get install wget. Now what is happening? With Homebrew
|
||||
you are running a ruby script. You know what is happening. You can easily and
|
||||
quickly read the source and modify it and then push the patch to github if
|
||||
anything you need is missing or something is not working. This is real open
|
||||
source.
|
||||
|
||||
NOTE you have to install git before you can update the package list. *shrug*
|
||||
|
||||
|
||||
Why Not MacPorts?
|
||||
=================
|
||||
1. MacPorts installs its own libz, its own openssl, etc. It is an autarky.
|
||||
This makes no sense to me. OS X comes with all that shit.
|
||||
2. MacPorts support Tiger, and PPC. We don't, so things are better optimised.
|
||||
|
||||
|
||||
Homebrew Will Never Build:
|
||||
==========================
|
||||
1. KDE, or GNOME, or anything that vast
|
||||
2. Anything that should be distributed in a .app bundle
|
||||
3. Anything that needs to install outside of the Homebrew tree
|
||||
4. Stuff OS X already does, eg. rubygems (duplication sucks)
|
||||
|
||||
|
||||
Why Compile From Source?
|
||||
========================
|
||||
Since we only target Intel Leopard boxes, why not just distribute binaries?
|
||||
Well, I can't afford too :P And compiling from source gives more flexibility.
|
||||
If you want to adapt the system and make it work with binaries. Fork away.
|
||||
Bandwidth is on you though :P
|
||||
|
||||
|
||||
How do I Notify Someone that a Package is Out of Date?
|
||||
======================================================
|
||||
Chances are that if the package hasn't been updated for a few days, then the
|
||||
previous maintainer has vanished. You have to do it. Don't worry, unlike every
|
||||
other packaging system ever, it's easy with Homebrew:
|
||||
|
||||
1. Edit the relevant ruby file in +/recipes
|
||||
2. Fork Homebrew on github
|
||||
3. Send mxcl a pull request
|
||||
|
||||
Congratulations, you have contributed to an open source project!
|
||||
|
||||
|
||||
Contributing
|
||||
============
|
||||
New Formulas
|
||||
------------
|
||||
Relative to every other stupid packaging system ever, this is trivial. Just
|
||||
fork it at: http://github.com/mxcl/homebrew and create a new recipe. Then ask
|
||||
me to pull. Using git made all this so much easier.
|
||||
|
||||
Code
|
||||
----
|
||||
Yes please! Fork and improve :)
|
||||
|
||||
|
||||
FAQ
|
||||
===
|
||||
Are you excessively interested in beer?
|
||||
---------------------------------------
|
||||
Yes.
|
||||
|
||||
Was Homebrew devised under the influence of alchohol?
|
||||
-----------------------------------------------------
|
||||
Yes.
|
Loading…
x
Reference in New Issue
Block a user