SlideShare a Scribd company logo
1 of 14
Download to read offline
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

More Related Content

Viewers also liked

Agile Softwareentwicklung mit Rails
Agile Softwareentwicklung mit RailsAgile Softwareentwicklung mit Rails
Agile Softwareentwicklung mit RailsHussein Morsy
 
Unobtrusive JavaScript in Rails 3
Unobtrusive JavaScript in Rails 3Unobtrusive JavaScript in Rails 3
Unobtrusive JavaScript in Rails 3Hussein Morsy
 
Rubymotion trip to inspect 2013
Rubymotion trip to inspect 2013Rubymotion trip to inspect 2013
Rubymotion trip to inspect 2013Hussein Morsy
 
Einführung in Cucumber mit Rails
Einführung in Cucumber mit RailsEinführung in Cucumber mit Rails
Einführung in Cucumber mit RailsHussein Morsy
 
Datamapper Railskonferenz 2009
Datamapper Railskonferenz 2009Datamapper Railskonferenz 2009
Datamapper Railskonferenz 2009Hussein Morsy
 
How to Battle Bad Reviews
How to Battle Bad ReviewsHow to Battle Bad Reviews
How to Battle Bad ReviewsGlassdoor
 
Test Video
Test VideoTest Video
Test Videojivanoff
 
Activism x Technology
Activism x TechnologyActivism x Technology
Activism x TechnologyWebVisions
 

Viewers also liked (9)

Agile Softwareentwicklung mit Rails
Agile Softwareentwicklung mit RailsAgile Softwareentwicklung mit Rails
Agile Softwareentwicklung mit Rails
 
Unobtrusive JavaScript in Rails 3
Unobtrusive JavaScript in Rails 3Unobtrusive JavaScript in Rails 3
Unobtrusive JavaScript in Rails 3
 
Rubymotion trip to inspect 2013
Rubymotion trip to inspect 2013Rubymotion trip to inspect 2013
Rubymotion trip to inspect 2013
 
Rack-Middleware
Rack-MiddlewareRack-Middleware
Rack-Middleware
 
Einführung in Cucumber mit Rails
Einführung in Cucumber mit RailsEinführung in Cucumber mit Rails
Einführung in Cucumber mit Rails
 
Datamapper Railskonferenz 2009
Datamapper Railskonferenz 2009Datamapper Railskonferenz 2009
Datamapper Railskonferenz 2009
 
How to Battle Bad Reviews
How to Battle Bad ReviewsHow to Battle Bad Reviews
How to Battle Bad Reviews
 
Test Video
Test VideoTest Video
Test Video
 
Activism x Technology
Activism x TechnologyActivism x Technology
Activism x Technology
 

Similar to Homebrew

Einfuehrung in die Erstellung von Software-Paketen mit dem RPM Package Manager
Einfuehrung in die Erstellung von Software-Paketen mit dem RPM Package ManagerEinfuehrung in die Erstellung von Software-Paketen mit dem RPM Package Manager
Einfuehrung in die Erstellung von Software-Paketen mit dem RPM Package ManagerLenz Grimmer
 
OSDC 2013 | Continuous Integration in data centers by Michael Prokop
OSDC 2013 | Continuous Integration in data centers by Michael ProkopOSDC 2013 | Continuous Integration in data centers by Michael Prokop
OSDC 2013 | Continuous Integration in data centers by Michael ProkopNETWAYS
 
Nagios Conference 2006 | NagiosOnCD – eine linux-basierte Live-CD mit Nagios ...
Nagios Conference 2006 | NagiosOnCD – eine linux-basierte Live-CD mit Nagios ...Nagios Conference 2006 | NagiosOnCD – eine linux-basierte Live-CD mit Nagios ...
Nagios Conference 2006 | NagiosOnCD – eine linux-basierte Live-CD mit Nagios ...NETWAYS
 
Vagrant - Einführung & Verwendung
Vagrant - Einführung & VerwendungVagrant - Einführung & Verwendung
Vagrant - Einführung & VerwendungTilo Baller
 
Testumgebungen mit Vagrant
Testumgebungen mit VagrantTestumgebungen mit Vagrant
Testumgebungen mit Vagrantfrankstaude
 
docker.io - Secure And Portable Containers Made Easy
docker.io - Secure And Portable Containers Made Easydocker.io - Secure And Portable Containers Made Easy
docker.io - Secure And Portable Containers Made Easyinovex GmbH
 
OSDC 2010 | FAI - ein Projekt wird 10 Jahre alt by Thomas Lange
OSDC 2010 | FAI - ein Projekt wird 10 Jahre alt by Thomas LangeOSDC 2010 | FAI - ein Projekt wird 10 Jahre alt by Thomas Lange
OSDC 2010 | FAI - ein Projekt wird 10 Jahre alt by Thomas LangeNETWAYS
 
git - eine praktische Einführung
git - eine praktische Einführunggit - eine praktische Einführung
git - eine praktische EinführungMarcel Eichner
 
SLAC 2008 RPMs selber bauen
SLAC 2008 RPMs selber bauenSLAC 2008 RPMs selber bauen
SLAC 2008 RPMs selber bauenSchlomo Schapiro
 
Infrastructure as Code - BaselOne 17
Infrastructure as Code - BaselOne 17Infrastructure as Code - BaselOne 17
Infrastructure as Code - BaselOne 17remigius-stalder
 
Lokale TYPO3 Entwicklungsumgebung mit DDEV
Lokale TYPO3 Entwicklungsumgebung mit DDEVLokale TYPO3 Entwicklungsumgebung mit DDEV
Lokale TYPO3 Entwicklungsumgebung mit DDEVPeter Kraume
 
Entwicklungsumgebungen mit Vagrant
Entwicklungsumgebungen mit VagrantEntwicklungsumgebungen mit Vagrant
Entwicklungsumgebungen mit VagrantB1 Systems GmbH
 
docker.io @ CentOS 7 - Secure And Portable Containers Made Easy
docker.io @ CentOS 7 - Secure And Portable Containers Made Easydocker.io @ CentOS 7 - Secure And Portable Containers Made Easy
docker.io @ CentOS 7 - Secure And Portable Containers Made Easyinovex GmbH
 
The Linux File System
The Linux File SystemThe Linux File System
The Linux File Systemsteffenbauer
 
DDEV - Eine lokale Entwicklungsumgebung
DDEV - Eine lokale EntwicklungsumgebungDDEV - Eine lokale Entwicklungsumgebung
DDEV - Eine lokale EntwicklungsumgebungFrank Schmittlein
 
Docker und Kubernetes Patterns & Anti-Patterns
Docker und Kubernetes Patterns & Anti-PatternsDocker und Kubernetes Patterns & Anti-Patterns
Docker und Kubernetes Patterns & Anti-PatternsQAware GmbH
 
Docker und Kubernetes Patterns & Anti-Patterns
Docker und Kubernetes Patterns & Anti-PatternsDocker und Kubernetes Patterns & Anti-Patterns
Docker und Kubernetes Patterns & Anti-PatternsJosef Adersberger
 

Similar to Homebrew (20)

Einfuehrung in die Erstellung von Software-Paketen mit dem RPM Package Manager
Einfuehrung in die Erstellung von Software-Paketen mit dem RPM Package ManagerEinfuehrung in die Erstellung von Software-Paketen mit dem RPM Package Manager
Einfuehrung in die Erstellung von Software-Paketen mit dem RPM Package Manager
 
Git im team
Git im teamGit im team
Git im team
 
Einführung in Docker
Einführung in DockerEinführung in Docker
Einführung in Docker
 
OSDC 2013 | Continuous Integration in data centers by Michael Prokop
OSDC 2013 | Continuous Integration in data centers by Michael ProkopOSDC 2013 | Continuous Integration in data centers by Michael Prokop
OSDC 2013 | Continuous Integration in data centers by Michael Prokop
 
Nagios Conference 2006 | NagiosOnCD – eine linux-basierte Live-CD mit Nagios ...
Nagios Conference 2006 | NagiosOnCD – eine linux-basierte Live-CD mit Nagios ...Nagios Conference 2006 | NagiosOnCD – eine linux-basierte Live-CD mit Nagios ...
Nagios Conference 2006 | NagiosOnCD – eine linux-basierte Live-CD mit Nagios ...
 
Vagrant - Einführung & Verwendung
Vagrant - Einführung & VerwendungVagrant - Einführung & Verwendung
Vagrant - Einführung & Verwendung
 
Testumgebungen mit Vagrant
Testumgebungen mit VagrantTestumgebungen mit Vagrant
Testumgebungen mit Vagrant
 
docker.io - Secure And Portable Containers Made Easy
docker.io - Secure And Portable Containers Made Easydocker.io - Secure And Portable Containers Made Easy
docker.io - Secure And Portable Containers Made Easy
 
OSDC 2010 | FAI - ein Projekt wird 10 Jahre alt by Thomas Lange
OSDC 2010 | FAI - ein Projekt wird 10 Jahre alt by Thomas LangeOSDC 2010 | FAI - ein Projekt wird 10 Jahre alt by Thomas Lange
OSDC 2010 | FAI - ein Projekt wird 10 Jahre alt by Thomas Lange
 
git - eine praktische Einführung
git - eine praktische Einführunggit - eine praktische Einführung
git - eine praktische Einführung
 
SLAC 2008 RPMs selber bauen
SLAC 2008 RPMs selber bauenSLAC 2008 RPMs selber bauen
SLAC 2008 RPMs selber bauen
 
Infrastructure as Code - BaselOne 17
Infrastructure as Code - BaselOne 17Infrastructure as Code - BaselOne 17
Infrastructure as Code - BaselOne 17
 
Lokale TYPO3 Entwicklungsumgebung mit DDEV
Lokale TYPO3 Entwicklungsumgebung mit DDEVLokale TYPO3 Entwicklungsumgebung mit DDEV
Lokale TYPO3 Entwicklungsumgebung mit DDEV
 
Entwicklungsumgebungen mit Vagrant
Entwicklungsumgebungen mit VagrantEntwicklungsumgebungen mit Vagrant
Entwicklungsumgebungen mit Vagrant
 
docker.io @ CentOS 7 - Secure And Portable Containers Made Easy
docker.io @ CentOS 7 - Secure And Portable Containers Made Easydocker.io @ CentOS 7 - Secure And Portable Containers Made Easy
docker.io @ CentOS 7 - Secure And Portable Containers Made Easy
 
The Linux File System
The Linux File SystemThe Linux File System
The Linux File System
 
Wordpress im docker
Wordpress im dockerWordpress im docker
Wordpress im docker
 
DDEV - Eine lokale Entwicklungsumgebung
DDEV - Eine lokale EntwicklungsumgebungDDEV - Eine lokale Entwicklungsumgebung
DDEV - Eine lokale Entwicklungsumgebung
 
Docker und Kubernetes Patterns & Anti-Patterns
Docker und Kubernetes Patterns & Anti-PatternsDocker und Kubernetes Patterns & Anti-Patterns
Docker und Kubernetes Patterns & Anti-Patterns
 
Docker und Kubernetes Patterns & Anti-Patterns
Docker und Kubernetes Patterns & Anti-PatternsDocker und Kubernetes Patterns & Anti-Patterns
Docker und Kubernetes Patterns & Anti-Patterns
 

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 • sehr beliebt • einfach : port install mysql • Nachteil: • eigene Paketbeschreibungen schreiben ist schwierig • installiert z.B. eigenes Openssl,... • sudo erforderlich
  • 4. 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
  • 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 -rf Cellar 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 • 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
  • 11. Paketliste updaten • cd /usr/local • git pull
  • 12. Pakete deinstallieren • brew uninstall mysql • oder rm -rf /usr/local/Cellar/mysql brew prune
  • 13. Alle Pakete listen • brew search oder • ls /usr/local/Lirbary