MXNet を Mac でのインストール手順を頼りに進めていたが、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 はベストなインストール手順が記されているので、読めるようになると後から凄く助かることの連続だろう。