Haxeをhomebrewでインストールする方法

Programming Haxe , Mac

Intro

structural subtypingとか関数型のリテラルがイケてたりとか型推論とか中々良い感じですね。

Problem

そんなHaxeですが、下記のブログで言及されているように、Macのhomebrewでインストールすると一部動きません。

$ brew install neko haxe
$ haxelib setup
dyld: Library not loaded: @executable_path/libneko.dylib
  Referenced from: /usr/local/bin//haxelib
  Reason: no suitable image found.  Did find:
        /usr/local/bin//libneko.dylib: mach-o, but wrong architecture

haxeのコンパイラは動くのですが、パッケージマネージャのhaxelibでエラーが出ます。 メッセージを見るとhaxelibが依存しているlibneko.dylibのarchitectureが違うようです。

lipoで確認すると確かに違っています。

$ lipo -info /usr/local/bin/haxelib
Non-fat file: /usr/local/bin/haxelib is architecture: i386
$ lipo -info /usr/local/bin/libneko.dylib
Non-fat file: /usr/local/bin/libneko.dylib is architecture: x86_64

Solution

これは brew install haxe は公式が提供しているバイナリをインストールする一方で、 brew install neko はソースコードからビルドしているためです。

nekoの公式を見るとバイナリが用意されておりそちらが推奨されているようなので、バイナリを取得するFormulaを用意すればOKです。

$ brew edit neko
$ brew install neko haxe
$ haxelib setup
Please enter haxelib repository path with write access
Hit enter for default (/usr/local/share/haxe)
Path :

動きました。これでHaxeのベンチマークも取り放題ですね。

nekovmについては全く知らないのでファイルの配置がこれで正しいかは分かりません。at your own riskで。

Comments