アルパカ三銃士

〜アルパカに酔いしれる獣たちへ捧げる〜

Openblas を Mac へインストールしようとして詰まった

MXNetMac でのインストール手順を頼りに進めていたが、brew install openblas で詰まった。
brewformulas.org に Active といった状態になっているのだが、なぜかインストールができない。 brewformulas.org しまいには homebrew-core リポジトリこんな感じの issue を挙げた。

さて、すぐに issue は解決するはずがないため、ここで行った対応策を記録する。

対応したこと

python で anaconda をインストールしていれば、conda install openblas でいけるはず。僕は anaconda をインストールしてないし、インストールしたくなかったので以下の手順を実行した。

brewformulas.org で Active なっているということは homebrew-core のリポジトリで formula を探せばいいのではと考え、以下のようなページを見つけた。 github.com

formula が分かれば手動でインストールする方法が分かる。以下の手順通り行った。

wget https://github.com/xianyi/OpenBLAS/archive/v0.2.20.tar.gz
tar xzf v0.2.20.tar.gz
cd OpenBLAS-0.2.20

ここまでやって formula を確認する。 すると以下の 2 行を確認できる。

# Must call in two steps
system "make", "CC=#{ENV.cc}", "FC=#{ENV.fc}", "libs", "netlib", "shared"
system "make", "PREFIX=#{prefix}", "install"

ということは homebrew の環境変数をみれば分かるだろうなということでチェックする。
brew --env を実行するとだいたいこんな感じで表示される。

HOMEBREW_CC: clang
HOMEBREW_CXX: clang++
MAKEFLAGS: -j4
CMAKE_PREFIX_PATH: /usr/local
CMAKE_INCLUDE_PATH: /usr/include/libxml2:/System/Library/Frameworks/OpenGL.framework/Versions/Current/Headers
CMAKE_LIBRARY_PATH: /System/Library/Frameworks/OpenGL.framework/Versions/Current/Libraries
PKG_CONFIG_LIBDIR: /usr/lib/pkgconfig:/usr/local/Homebrew/Library/Homebrew/os/mac/pkgconfig/10.11
ACLOCAL_PATH: /usr/local/share/aclocal
PATH: /usr/local/Homebrew/Library/Homebrew/shims/super:/usr/bin:/bin:/usr/sbin:/sbin

つまり、CC は clang を使い、 prefix は /usr/local で良いことが分かった。 ここで分からないのは FC である。これは Fortran Compiler なので、gcc をインストールしている場合、gfortran という fortranコンパイラーが使えるので、 FC=gfortran となる。 ここまで分かれば make は以下のように行える。

make CC=clang FC=gfortran libs netlib shared
make PREFIX=/usr/local install

homebrew の formula はベストなインストール手順が記されているので、読めるようになると後から凄く助かることの連続だろう。