Homebrew ã®ãç´¹ä»
- 2010.09.10
- åå¼·ä¼è³æ
9/3 ã®åå¼·ä¼ã§ Homebrew ã«ã¤ãã¦çºè¡¨ããã®ã§ããã®å 容ãå ¬éãã¾ãã
man ãå ¬å¼ããã¥ã¡ã³ãã®æç²ãå訳ããç¨åº¦ã®å 容ã§ãããä½ãã®å©ãã«ãªãã°å¹¸ãã§ãã
2011/02/23 è¿½è¨ : è稿çã«æ¸ããç§ç㪠wiki ãã¼ã¸ãæ®ãã¦ããã¾ãããåä¸äºº(koshigoe)ã«ãããã®ã§ãã
Table of Contents
- 1 ä½ã®è©±ï¼
- 2 Homebrew
- 3 ã¤ã³ã¹ãã¼ã«
- 4 èªå½
- 4.1 Formula
- 4.2 Keg
- 4.3 Celler
- 5 ã¾ãã¯
- 6 ã³ãã³ãç´¹ä»(æ¨æºã³ãã³ãç·¨)
- 6.1 $ brew search text
- 6.2 $ brew search /regex/
- 6.3 $ brew install [options] formula
- 6.4 $ brew install --interactive [--git] formula
- 6.5 $ brew list
- 6.6 $ brew formula
- 6.7 $ brew info formula
- 6.8 $ brew info --github formula
- 6.9 $ brew info --all
- 6.10 $ brew info URL
- 6.11 $ brew home
- 6.12 $ brew formula
- 6.13 $ brew remove formula
- 6.14 $ brew link formula
- 6.15 $ brew unlink formula
- 6.16 $ brew prune
- 6.17 $ brew outdated
- 6.18 $ brew deps [--1] formula
- 6.19 $ brew uses [--installed] formula
- 6.20 $ brew doctor
- 6.21 $ brew cat formula
- 6.22 $ brew cleanup [formula]
- 6.23 $ brew update
- 6.24 $ brew create [--cache] URL
- 6.25 $ brew crewate --macports|--fink formula
- 6.26 $ brew edit formula
- 6.27 $ brew edit
- 7 Formula ãèªä½ãã
- 7.1 Gist ãã¡ã¤ã«ã® Formula ãä½ã£ã¦ã¿ã
- 7.1.1 æé
- 7.1.2 ã³ãã³ãå±¥æ´
- 7.1.3 ScriptFileFormula
- 7.1.4 GithubGistFormula
- 8 ã³ãã³ãç´¹ä»(å¤é¨ã³ãã³ãç·¨)
- 8.1 $ brew audit [formula]
- 8.2 $ brew fetch formula
- 8.3 $ brew man
- 8.4 $ brew missing
- 8.5 $ brew server
- 8.6 $ brew test formula
- 8.7 $ brew graph
- 9 Formula Cookbook ããæç²ã¡ã¢
- 9.1 ç´æäº
- 9.2 Commit
- 9.3 Push
- 9.4 ã¤ã³ã¹ãã¼ã«ã®æç¶ã
- 9.5 ã¦ã¼ãã£ãªãã£ç´¹ä»
- 9.5.1 bin.install(paths)
- 9.5.2 inplace path, before, after
- 9.5.3 patches
- 9.5.4 HEAD
- 9.5.5 download_strategy
- 9.5.6 prefix.install(paths)
- 9.5.7 å¤æ°ãªã©
- 9.5.8 keg_only
- 10 ç°å¢å¤æ°ä¸è¦§
- 11 ã¡ã¢
- 12 åè
1 ä½ã®è©±ï¼
Mac OSX ã«å«ã¾ãã¦ããªãã³ãã³ãé¡ãã¤ã³ã¹ãã¼ã«ããããã®ããã±ã¼ã¸ç®¡çã·ã¹ãã ã«ã¤ãã¦ã®è©±ã ãã§ããéã Apple ãç¨æããçµã¿è¾¼ã¿ã®ã³ãã³ã(ããã±ã¼ã¸)ã使ããã¨ããæ¹éã Ruby ã§è¨è¿°ããã¦ããã
2 Homebrew
(訳) home-brew: èªå®¶é¸é 飲æ(ãã¼ã«ãé )
3 ã¤ã³ã¹ãã¼ã«
$ ruby -e "$(curl -fsS http://gist.github.com/raw/323731/install_homebrew.rb)"
- /usr/local/ 以ä¸ã®ãã¼ããã·ã§ã³ã調æ´
- ãªãã¸ããªãã tar ãã¼ã«ããã¦ã³ãã¼ã
- tar ãã¼ã«ã /usr/local/ 以ä¸ã«å±é
- 詳ããã¯
http://gist.github.com/raw/323731/install_homebrew.rb
4 èªå½
4.1 Formula
(å訳) 調çæ³ (ç¨èª) ããã±ã¼ã¸ã®èª¬ææ¸
4.2 Keg
(å訳) å°ããããããã¼ã« (ç¨èª) Formula ã®ã¤ã³ã¹ãã¼ã«å ãã¹
4.3 Celler
(å訳) å°ä¸è²¯èµå®¤ (ç¨èª) Keg 群ã®ã¤ã³ã¹ãã¼ã«å ãã¹
5 ã¾ãã¯
- Formula ã®ã¢ãããã¼ããªã©ã« git ã使ãã®ã§ãgit ãå ¥ãã¦ããã¨ä¾¿å©ã
- home ã³ãã³ããå®è¡ãã㨠Homebrew ã®ãã¼ã ãã¼ã¸ããã©ã¦ã¶ã§éãã®ã§ãç®ãéãã¦ããã¨ããã
- å®éã«ã³ãã³ãã§ä½ãã§ããã㯠man ãã¼ã¸ã«ç®ãéãã¦ããã¨ããã
$ brew install git
$ brew update
$ brew home
$ man brew
6 ã³ãã³ãç´¹ä»(æ¨æºã³ãã³ãç·¨)
6.1 $ brew search text
æå®æåå( text )ã®é¨åããã㧠Formula ãæ¤ç´¢ããã
6.2 $ brew search /regex/
æå®æ£è¦è¡¨ç¾ã®ãããã³ã°ã§ Formula ãæ¤ç´¢ããã
6.3 $ brew install [options] formula
- --debug
- --use-llvm LLVM 対å¿ã http://llvm.org/ http://ja.wikipedia.org/wiki/Low_Level_Virtual_Machine
- --ignore-dependencies ä¾åé¢ä¿ãç¡è¦ããã
- --HEAD HEAD ãåå¾ãã¦ã¤ã³ã¹ãã¼ã«ããã
6.4 $ brew install --interactive [--git] formula
- --interactive ãã¦ã³ãã¼ããã¦å±éããå¾ãã·ã§ã«ãéãã¦å¯¾è©±çãªã¤ã³ã¹ãã¼ã«ä½æ¥ãå®æ½ã§ããã
- --git ãããä½ããªã©ã«å½¹ç«ã¦ãããã« git ãªãã¸ããªãä½ãã
6.5 $ brew list
ã¤ã³ã¹ãã¼ã«æ¸ã¿ã®å ¨ã¦ã® Formula ã表示ããã
6.6 $ brew formula
ãã® formula ã®ã¤ã³ã¹ãã¼ã«æ¸ã¿ãã¡ã¤ã«ã表示ããã
6.7 $ brew info formula
ãã® formula ã«ã¤ãã¦ã®æ å ±ã表示ããã
6.8 $ brew info --github formula
ãã® formula ã® github ã®å±¥æ´ãã¼ã¸ããã©ã¦ã¶ã§éãã
6.9 $ brew info --all
å ¨ã¦ã® Formula ã®æ å ±ã®ãµããªã表示ããã
6.10 $ brew info URL
http:// å§ã¾ãã® URL ãæå®ããã¨ããã® URL ããããã±ã¼ã¸åã¨ãã¼ã¸ã§ã³çªå·ãæ¨æ¸¬ãã¦è¡¨ç¤ºããã
6.11 $ brew home
Homebrew ã®ãã¼ã ãã¼ã¸ããã©ã¦ã¶ã§éãã
6.12 $ brew formula
ãã® formula ã®ãã¼ã ãã¼ã¸ããã©ã¦ã¶ã§éãã
6.13 $ brew remove formula
ãã® formula ãåé¤(ã¢ã³ã¤ã³ã¹ãã¼ã«)ããã
6.14 $ brew link formula
ãã® formula ã®ã¤ã³ã¹ãã¼ã«ããããã¡ã¤ã«ã«ãªã³ã¯ããã
6.15 $ brew unlink formula
ãã® formula ã®ã¤ã³ã¹ãã¼ã«ããããã¡ã¤ã«ã¸ã®ãªã³ã¯ã解é¤ããã
6.16 $ brew prune
ããããªã³ã¯ã«ãªã£ã¦ãããã®ãåé¤ããã
6.17 $ brew outdated
ã¢ãããã¼ãããã Formula ã®ä¸è¦§ã表示ããã
6.18 $ brew deps [--1] formula
ãã® formula ã®ä¾åé¢ä¿ã表示ããã--1 ãã¤ããå ´åãä¸é層ã®ä¾åé¢ä¿ã®ã¿ã表示ã
6.19 $ brew uses [--installed] formula
ãã® formula ã«ä¾åãã¦ãã Formula ã表示ããã --installed ãã¤ããå ´åãã¤ã³ã¹ãã¼ã«æ¸ã¿ã® Formula ã®ã¿ã表示ããã
6.20 $ brew doctor
ã·ã¹ãã ã®æ½å¨çãªåé¡ãå ±åããã
6.21 $ brew cat formula
ãã® formula ã®ãã¡ã¤ã«å 容ã表示ããã
6.22 $ brew cleanup [formula]
å¤ããã¼ã¸ã§ã³ã® Formula ãåé¤ããã formula ãæå®ãããã°ããã® formula ã«ã¤ãã¦ã®ã¿ã
6.23 $ brew update
git ã使ã£ã¦ Homebrew ããã³ Formula ã®æ°ãããã¼ã¸ã§ã³ã«ã¢ãããã¼ãããã
6.24 $ brew create [--cache] URL
ããã±ã¼ã¸ã®ã½ã¼ã¹ã¢ã¼ã«ã¤ãã® URL ãæå®ã㦠Formula ãä½æããã
6.25 $ brew crewate --macports|--fink formula
MacPorts ã Fink ã®ããã±ã¼ã¸æ¤ç´¢çµæãã¼ã¸ããã©ã¦ã¶ã§éãã
6.26 $ brew edit formula
æå®ãã formula ãã¨ãã£ã¿ã§éãã
6.27 $ brew edit
å ¨ã¦ã® Formula ã TextMate(mate) ã§éãã
7 Formula ãèªä½ãã
http://wiki.github.com/mxcl/homebrew/formula-cookbook
7.1 Gist ãã¡ã¤ã«ã® Formula ãä½ã£ã¦ã¿ã
7.1.1 æé
- create ããã¨ç°å¢å¤æ° EDITOR ã§æå®ããã¦ããã¨ãã£ã¿ã§ Formula ãã¡ã¤ã«(ã²ãªå½¢)ãéãã®ã§ãã½ããã¦ã§ã¢ã®ãã¼ã ãã¼ã¸ã® URL ãªã©ãè¨å
¥ãã (ç°å¢å¤æ° HOMEBREW_EDITOR ãè¨å®ãã¦ããã°ããã®ã¨ãã£ã¿ã§éã) ããã±ã¼ã¸åããã¼ã¸ã§ã³çªå·ã®æ¨æ¸¬ãæå¾
éãã§ãªããã°ä¿®æ£ããã (Formula ã®ãã¡ã¤ã«ã¯ããã±ã¼ã¸åã«ä¾åããã®ã§ãå¿
è¦ã«å¿ãã¦å¤æ´ãã¦ãã)
- fetch ã³ãã³ãã使ãã¨ããã·ã¥ã調ã¹ããã (ãã¦ã³ãã¼ãå¾ã®ãã¡ã¤ã«ã§ããã·ã¥å¤ãå¾ã¦ããã®ãã¨ãã話ã¯å¥)
- ããã·ã¥å¤ãè¨å ¥ãã
- install ã¡ã½ããã«ã¤ã³ã¹ãã¼ã«ã®æç¶ããæ¸ã
- ã¤ã³ã¹ãã¼ã«ãã¦ã¿ã
7.1.2 ã³ãã³ãå±¥æ´
$ brew create http://gist.github.com/raw/227178/d03bb254c9a28206d6ed516947e1893472ab9558/mymemcheck.rb
Formula name [mymemcheck]:
... edit Formula file ...
require 'formula'
class Mymemcheck <Formula
url 'http://gist.github.com/raw/227178/d03bb254c9a28206d6ed516947e1893472ab9558/mymemcheck.rb'
homepage ''
md5 ''
# depends_on 'cmake'
def install
system "./configure", "--disable-debug", "--disable-dependency-tracking",
"--prefix=#{prefix}"
# system "cmake . #{std_cmake_parameters}"
system "make install"
end
end
$ brew cat mymemcheck
require 'formula'
class Mymemcheck <Formula
url 'http://gist.github.com/raw/227178/d03bb254c9a28206d6ed516947e1893472ab9558/mymemcheck.rb'
homepage 'http://gist.github.com/227178'
md5 ''
version '0.0.1'
# depends_on 'cmake'
def install
system "./configure", "--disable-debug", "--disable-dependency-tracking",
"--prefix=#{prefix}"
# system "cmake . #{std_cmake_parameters}"
system "make install"
end
end
$ brew fetch mymemcheck
==> Downloading http://gist.github.com/raw/227178/d03bb254c9a28206d6ed516947e1893472ab9558/mymemcheck.rb
######################################################################## 100.0%
MD5: 44c84bde2574a1e6f125a81aa4e8ca57
SHA1: 8100730d0bf26c2d374aba2ceb5f8e1b4fc73069
$ brew edit mymemcheck
$ brew cat mymemcheck
require 'formula'
class Mymemcheck <Formula
url 'http://gist.github.com/raw/227178/d03bb254c9a28206d6ed516947e1893472ab9558/mymemcheck.rb'
homepage 'http://gist.github.com/227178'
sha1 '8100730d0bf26c2d374aba2ceb5f8e1b4fc73069'
version '0.0.1'
# depends_on 'cmake'
def install
system "./configure", "--disable-debug", "--disable-dependency-tracking",
"--prefix=#{prefix}"
# system "cmake . #{std_cmake_parameters}"
system "make install"
end
end
require 'formula'
class Mymemcheck <Formula
url 'http://gist.github.com/raw/227178/d03bb254c9a28206d6ed516947e1893472ab9558/mymemcheck.rb'
homepage 'http://gist.github.com/227178'
sha1 '8100730d0bf26c2d374aba2ceb5f8e1b4fc73069'
version '0.0.1'
def install
bin.install Dir['*']
end
end
$ brew install -vd mymemcheck
$ which mymemcheck.rb
/usr/local/bin/mymemcheck.rb
7.1.3 ScriptFileFormula
ã¹ã¯ãªãããã¡ã¤ã«ã /usr/local/bin> ã«ãªã³ã¯ããã ããªããFormula ã®ä»£ããã« ScriptFileFormula ãç¶æ¿ããã¨ç°¡åã
# see ack.rb for an example usage
class ScriptFileFormula <Formula
def install
bin.install Dir['*']
end
end
7.1.4 GithubGistFormula
ã¹ã¯ãªãããã¡ã¤ã«ã gist ããæã£ã¦ãããªããFormula ã®ä»£ããã« GithubGistFormula ãç¶æ¿ããã¨ç°¡åã
# see flac.rb for example usage
class GithubGistFormula <ScriptFileFormula
def initialize name=' __UNKNOWN__'
super name
@version=File.basename(File.dirname(url))[0,6]
end
end
8 ã³ãã³ãç´¹ä»(å¤é¨ã³ãã³ãç·¨)
brew-{command} ã¨ããååã®å®è¡å¯è½ãã¡ã¤ã«ããbrew-{command}.rb ã¨ãã Ruby ã¹ã¯ãªããããPATH ãããã©ããã¨ãåºæ¥ããªãã command ãå¤é¨ã³ãã³ãã¨ãã¦å®è¡ã§ããã å®è¡å¯è½ãã¡ã¤ã«ã¯ exec ã§å®è¡ãããruby ã¹ã¯ãªãããã¡ã¤ã«ã¯ãrequire ã«ãã£ã¦å®è¡ãããã
8.1 $ brew audit [formula]
æå®ãã formula ãå ¨ã¦ã® Formula ã Homebrew ã®ã³ã¼ãã£ã³ã°ã¹ã¿ã¤ã«ã«éåãã¦ããªããæ¤æ»ããã
8.2 $ brew fetch formula
ãã® formula ã® tarball ããã¦ã³ãã¼ãããã VCS ãããã§ãã¯ã¢ã¦ããããMD5 㨠SHA1 ã®ãã§ãã¯ãµã ã表示ã
8.3 $ brew man
man ãã¼ã¸ãåæ§ç¯ããã
ronn ãå¿ è¦ã
8.4 $ brew missing
ä¾åé¢ä¿ã失ããã Formula ã調ã¹ãã
8.5 $ brew server
å©ç¨å¯è½ãª Formula ããã©ã¦ãºãããµã¼ãã¢ããªãç«ã¡ä¸ããã
sinatra ãå¿ è¦ã
8.6 $ brew test formula
test ã¡ã½ãããå®è£ ãã¦ãã Formula ã«ã¤ãã¦ããã¹ããå®è¡ããã
8.7 $ brew graph
ã°ã©ããã¼ã¿ãåºåã
9 Formula Cookbook ããæç²ã¡ã¢
9.1 ç´æäº
- ã¤ã³ã¹ãã¼ã«ã§ä½¿ãã³ãã³ãã¯çµ¶å¯¾ãã¹ã§æå®ãããã¨
- ããã¥ã¢ã«ã¯ {$prefix}/share/man/ 以ä¸ã«æ¸ãåºãããã«
- Formula ã®ãã¡ã¤ã«åã¨ã¯ã©ã¹å
- /[-_.\s]/ ã§åå²ããã£ã¡ã«ã±ã¼ã¹ã«å¤æãããã®ãã¯ã©ã¹å (+ ã¨ããæå㯠x ã«ç½®æããã)
- ã¯ã©ã¹åã®éããã¡ã¤ã«å
9.2 Commit
- ã³ãããã¡ãã»ã¼ã¸ã®å é è¡ã¯ 50 æå以å
- ä¸è¡ããã¦ãä¸è¡ç®ã«èª¬æãæ¸ã
$ cd /usr/local
$ git add Library/Formula/foo.rb
$ git commit
9.3 Push
- Homebrew ã fork ãã¦ä½¿ã
- pull request ãã issue ticket
$ gem install github
$ cd `brew --prefix`
$ github fork
$ git push myname master
9.4 ã¤ã³ã¹ãã¼ã«ã®æç¶ã
- Formula.download_strategy ã§ã¤ã³ã¹ã¿ã³ã¹ä½æ
- DownloadStrategy.fetch ã§ãã¦ã³ãã¼ã
- ãµã³ãããã¯ã¹ (/tmp/homebrew) ãä½ããã
- DownloadStrategy.stage ã§å±é
- ãããé©ç¨
- ã«ã¬ã³ããã£ã¬ã¯ããªã stage ãã£ã¬ã¯ããªã«å¤æ´ (make ã³ãã³ããªã©ãã«ã¬ã³ããã£ã¬ã¯ããªã«ä¾åããã±ã¼ã¹ã«å¯¾å¿)
- Formula.install
- keg ã«ã¤ã³ã¹ãã¼ã«ãããã ã
- Homebrew ã®ãã¬ãã£ã¯ã¹ãã keg ã«ãªã³ã¯ãã
- 注æäºé ã表示ããã
9.5 ã¦ã¼ãã£ãªãã£ç´¹ä»
9.5.1 bin.install(paths)
æå®ãããã¹ã«ããããããã®ã keg ã® bin/ ã«ã¤ã³ã¹ãã¼ã«ããã
9.5.2 inplace path, before, after
path ã«ãããã¡ã¤ã«ã®ä¸èº«ã® before ãã after ã«æ¸ãæããã
9.5.3 patches
patches ã¡ã½ãããå®ç¾©ãã¦ããã®æ»ãå¤ã§å½ã¦ããããããæååã Hash ã§æå®ã§ããã
9.5.4 HEAD
install æã« --HEAD ãªãã·ã§ã³ãæå®ãã㨠trunk/master/HEAD ããã§ãã¯ã¢ã¦ãããã ãã®ã¨ãã«ä½¿ããªãã¸ããªã® URL ã head ã¡ã½ããã§æå®ãã¦ããã
class Foo < Formula
head 'git://github.com/mxcl/lastfm-cocoa.git'
end
9.5.5 download_strategy
ãã¦ã³ãã¼ãæ¹æ³ãæå®ããã
class Bar < Formula
def download_strategy; GitDownloadStrategy; end
head '/users/abc/src/git.git'
end
9.5.6 prefix.install(paths)
ã³ã³ãã¤ã«ä¸è¦ã§ã³ãã¼ããã ãã®æ§ãªå ´åã«ä½¿ããã
prefix.install ['file1', 'file2']
prefix.install Dir['*']
9.5.7 å¤æ°ãªã©
å¤æ°å | ããã©ã«ãå¤ | ä¾ç¤º |
---|---|---|
name | Formula ã®åå | foo |
HOMEBREW_PREFIX | /usr/local | |
prefix | #{HOMEBREW_PREFIX}/Cellar/#{name}/#{version} | /usr/local/Cellar/foo/0.1 |
bin | #{prefix}/bin | /usr/local/Cellar/foo/0.1/bin |
lib | #{prefix}/lib | etc. |
man | #{prefix}/share/man |
9.5.8 keg_only
/usr/local/bin ãªã©ã¸ãªã³ã¯ãããkeg ã§æ¢ããã
10 ç°å¢å¤æ°ä¸è¦§
- HOMEBREW_DEBUG
- HOMEBREW_DEBUG_INSTALL
- HOMEBREW_DEBUG_PREFIX
- HOMEBREW_EDITOR
- HOMEBREW_KEEP_INFO
- HOMEBREW_SVN
- HOMEBREW_TEMP
- HOMEBREW_USE_LLVM
- HOMEBREW_VERBOSE
11 ã¡ã¢
ã³ãã³ãã«ãã£ã¦ã¯ã·ã§ã«ãéããããcd ããã ããã¨æããªããå®ã¯å¥ã·ã§ã«ãéãã¦ããã¨ããç½ ãããã