Homebrew
           Hussein Morsy

             24.11.2009
Heinrich-Heine-Universität Düsseldorf
    Rails User Group Düsseldorf
Installation von Unix/
       Linux Tools

• Manuell (make install)
• mac ports
• ....
mac port
• sehr beliebt
• einfach : port install mysql
• Nachteil:
 • eigene Paketbeschreibungen schreiben ist
    schwierig
 • installiert z.B. eigenes Openssl,...
 • sudo erforderlich
Homebrew
• Paketbeschreibung in Ruby
• Installation in /usr/local/
• Funktioniert mit manuell installieren
  Programmen in /usr/local
• Nutzt vorhandene Programme
• Eigene Paketbeschreibung leicht änderbar
• kein sudo
  git
Installation (mit git)
# siehe http://github.com/mxcl/homebrew
# achtung bei vorhandener Mysql-Installation

sudo mkdir -p /usr/local
sudo chown -R `whoami` /usr/local
curl -L http://github.com/mxcl/homebrew/tarball/master |
  tar xz --strip 1 -C /usr/local
brew install git
cd /usr/local
git init
git remote add origin git://github.com/mxcl/homebrew
git pull origin master
Deinstallation
cd /usr/local
rm -rf Cellar
brew prunde
rm -rf Library .git* bin/brew README.md
Verzeichnisse

• /usr/local/
 • Celluar : Installierte Programme
 • Library/Formular: Alle Paketbeschreibungen
 • Library/Homebrew: Systemdateien
Library/Formular

• abuse.rb
• ...
• mysql.rb
• ...
• git.rb
über 300 Pakete
git.rb
require 'formula'

class GitManuals <Formula
  url 'http://kernel.org/pub/software/scm/git/git-manpages-1.6.5.2.tar.bz2'
  md5 'e4c20bd92b7ec187a421c045ae99978a'
end

class Git <Formula
  url 'http://kernel.org/pub/software/scm/git/git-1.6.5.2.tar.bz2'
  md5 '99708c449b23433136dbdfa38bd16d80'
  homepage 'http://git-scm.com'

 def install
   #...

    system "./configure --prefix=#{prefix}"
    system "make install"

   # Install the git bash completion file
   etc.install 'contrib/completion/git-completion.bash'

   # ...
   GitManuals.new.brew { man.install Dir['*'] }
 end
Paket installieren
• brew install mysql
 • /usr/local/Library/Formular/mysql.rb
 • Installation in /usr/local/Cellar/mysql
 • symbolische Links werden von
    /usr/local/Cellar/mysql/bin
    gesetzt u.a. nach /usr/local/bin
Paketliste updaten


• cd /usr/local
• git pull
Pakete deinstallieren

• brew uninstall mysql
• oder
  rm -rf /usr/local/Cellar/mysql
  brew prune
Alle Pakete listen


• brew search oder
• ls /usr/local/Lirbary
Homebrew


http://github.com/mxcl/homebrew

Homebrew

  • 1.
    Homebrew Hussein Morsy 24.11.2009 Heinrich-Heine-Universität Düsseldorf Rails User Group Düsseldorf
  • 2.
    Installation von Unix/ Linux Tools • Manuell (make install) • mac ports • ....
  • 3.
    mac port • sehrbeliebt • einfach : port install mysql • Nachteil: • eigene Paketbeschreibungen schreiben ist schwierig • installiert z.B. eigenes Openssl,... • sudo erforderlich
  • 4.
    Homebrew • Paketbeschreibung inRuby • Installation in /usr/local/ • Funktioniert mit manuell installieren Programmen in /usr/local • Nutzt vorhandene Programme • Eigene Paketbeschreibung leicht änderbar • kein sudo git
  • 5.
    Installation (mit git) #siehe http://github.com/mxcl/homebrew # achtung bei vorhandener Mysql-Installation sudo mkdir -p /usr/local sudo chown -R `whoami` /usr/local curl -L http://github.com/mxcl/homebrew/tarball/master | tar xz --strip 1 -C /usr/local brew install git cd /usr/local git init git remote add origin git://github.com/mxcl/homebrew git pull origin master
  • 6.
    Deinstallation cd /usr/local rm -rfCellar brew prunde rm -rf Library .git* bin/brew README.md
  • 7.
    Verzeichnisse • /usr/local/ •Celluar : Installierte Programme • Library/Formular: Alle Paketbeschreibungen • Library/Homebrew: Systemdateien
  • 8.
    Library/Formular • abuse.rb • ... •mysql.rb • ... • git.rb über 300 Pakete
  • 9.
    git.rb require 'formula' class GitManuals<Formula url 'http://kernel.org/pub/software/scm/git/git-manpages-1.6.5.2.tar.bz2' md5 'e4c20bd92b7ec187a421c045ae99978a' end class Git <Formula url 'http://kernel.org/pub/software/scm/git/git-1.6.5.2.tar.bz2' md5 '99708c449b23433136dbdfa38bd16d80' homepage 'http://git-scm.com' def install #... system "./configure --prefix=#{prefix}" system "make install" # Install the git bash completion file etc.install 'contrib/completion/git-completion.bash' # ... GitManuals.new.brew { man.install Dir['*'] } end
  • 10.
    Paket installieren • brewinstall mysql • /usr/local/Library/Formular/mysql.rb • Installation in /usr/local/Cellar/mysql • symbolische Links werden von /usr/local/Cellar/mysql/bin gesetzt u.a. nach /usr/local/bin
  • 11.
    Paketliste updaten • cd/usr/local • git pull
  • 12.
    Pakete deinstallieren • brewuninstall mysql • oder rm -rf /usr/local/Cellar/mysql brew prune
  • 13.
    Alle Pakete listen •brew search oder • ls /usr/local/Lirbary
  • 14.