気ままなつぶやき

おべんきょしたこととか

【Homebrew】thrift-0.5.0-finagleのインストール

ひさしぶり(´ω`●)

今日のメモ。

環境
Mac OS X 10.6.8
Xcode バージョン 3.2.6

finagleのthriftをいれたい
https://github.com/mariusaeriksen/thrift-0.5.0-finagle

$brew create https://github.com/mariusaeriksen/thrift-0.5.0-finagle

ってコマンドをたたくと、
/usr/local/Library/Formula配下に
thrift-0.5.0-finagle.rb
ってゆーファイルが作成される。
※指定もできるよ。

brew installでライブラリをインストールするときに、
どうやらこのformulaを読んで、実行するようですた。

最初はフォーマットしか作成されていないので
細かいところは自分で編集しましょう。

編集自体は

$brew edit thrift-0.5.0-finagle

で編集。

基本的な文法のチェックについては

$brew audit thrift-0.5.0-finagle

で確認できますよ。

今回はgithubにあるライブラリを落としてきてインストールしたかったので
こんな感じの設定にしました。

require 'formula'

class Thrift050Finagle < Formula
  url 'https://github.com/mariusaeriksen/thrift-0.5.0-finagle/tarball/master'
  homepage 'https://github.com/mariusaeriksen'
  version '0.5.0'
  md5 'c06945fd690085291a1a08f3b815be99'


   depends_on 'boost'

  def install
    system "./configure","--help"
    system "./configure", "--disable-debug",
                          "--prefix=#{prefix}",
                          "--libdir=#{lib}",
                          "--without-haskell",
                          "--without-java",
                          "--without-python",
                          "--without-ruby",
                          "--without-perl",
                          "--without-php",
                          "--without-erlang"

    system "make"
    system "make install"
  end

end

boostライブラリが必要。今回はformulaに依存性を記載しているので勝手にインストールしてくれるけど
でかいライブラリだから時間がかかる。。
※boost 1.48はいった
基本的には、githubに、READMEがあるので、それと同じ内容を書いてやりますた。

あとはインストールしてやりましょう。

$brew install -v finagle-0.5.0-thrift
  • vはインストール時にログをワーワー出したかったからつけたオプションなので

ログとか見たくない人は外しておいてくらさい。

brewでインストールされたライブラリは下記のディレクトリにはいる。
/usr/local/Cellar

動作確認

$thrift --gen java hoge.thrift


やっほー。

※参考文献
Formulaファイルのクックブック
https://github.com/mxcl/homebrew/wiki/Formula-Cookbook


※追記

Formulaの名前がthriftとかぶってしまうとき

別のmacに入れるときにエラーがでたので。。。
brew create するときに、
なんかurlから勝手にformuraのファイル名を生成して、thrift.rb作ろうとして
「既にあるよ」ってエラーはいて落ちる現象があった。。

  • n オプションで違う名前つけてあげてくださいー

私は、めんどくさいから

/usr/local/Library/Homebrew/cmd配下の

create.rbのFormulaCreatorクラスでurlから名前セットしてるところがあるので

# @name = $1

そこをコメントアウトしますた。

brewのバージョン0.9.3の場合

なんかbrewのバージョンあげたら、

  • Xcode 4.5推奨
  • formulaの暗号化はmd5じゃなくてsha1推奨