[[Software/tips]] **Numenta NuPIC の MacOS X Marvericks でのビルド手順 [#i3eb5c67] Github の numenta アカウント NuPIC リポジトリの [[Getting Started wiki:https://github.com/numenta/nupic/wiki/Getting-Started]] の手順の通りに実行します。 Mac OS X での実行は [[Running NuPIC on OS X:https://github.com/numenta/nupic/wiki/Running-NuPIC-on-OS-X]] に詳しく記されています。 ***必要なもの [#i2fbd108] -Git (Mac OS X には最初からインストールされている) -Python (Mac OS X には最初からインストールされている) -Gcc or Clang (Mac OS X には最初からインストールされている) -CMake (要インストール。後述) **ビルド手順 [#wf8057eb] +OS~ OS X 10.9 Mavericks になっていなかったら更新する。~ ※これ以前のものでビルドするのはかなり厄介。~ 実際に作業して確認したバージョンは 10.9.2~ ~ +ビルドツール~ XCode 5 以上をインストールする。~ App Store からインストール後、アプリケーションのメニューの~ Xcode > Open Developer Tool > More Developer Tools で Downloads for Apple Developers の web ページが開くので、~ Command Line Tools (OS X Mavericks) for Xcode~ の最新のものをインストールする。~ ~ 実際に作業して確認したバージョンは~ Xcode 5.0.2~ Command Line Tools (OS X Mavericks) for Xcode Late October 2013~ ~ +homebrew~ ビルドに必要なその他のパッケージをインストールするためhomebrew をインストールし、 homebrew を使って~ ・automake~ ・libtool~ ・cmake~ をインストールする。~ CMake は CMake の web ページから dmg ファイルをダウンロードしてインストールしても良いが、~ Mavericks のセキュリティ設定がデフォルトでは~ 「App Store と確認済み開発元からダウンロードしたものしか実行を許可しない』~ 状態になっているのを変更してインストールしなければならないので~ homebrew でインストールした方が良い。~ ~ Terminal で以下を実行する。~ $ ruby -e “$(curl -fsSL https://raw.github.com/Homebrew/homebrew/go/install)” エラーなくインストールされたら正常実行できる確認を兼ねて更新し環境のチェックを行う。~ $ brew update $ brew doctor 何か問題があったら修正しておき、上記のパッケージをインストールする。~ $ brew install automake libtool cmake ~ +ソースコードダウンロード~ git で checkout する。~ 変更を contribute する予定がある場合は github のアカウントを取得しておく。~ $ cd ~ $ mkdir work $ cd work $ git clone https://github.com/numenta/nupic.git ~ +環境変数設定~ ~/.profile に nupic のビルドと実行に必要な環境変数を設定する。~ 以下の内容を .profile に書き、新規に Terminal を開いて~ $ printenv で反映されていることを確認する。~ 全ての shell に反映されてしまうのが嫌な場合は他のファイルに書き、ビルドや実行前に必ず source する。~ # git checkout したソース repository のディレクトリ export NUPIC=~/work/nupic # NTA のインストール path export NTA=$NUPIC/nta/eng # 一時ビルドファイルの path export BUILDDIR=/tmp/ntabuild # ビルドの平行ジョブ数( CPU コア数+1ぐらい) export MK_JOBS=3 # その他の必要な環境変数を設定する。 source $NUPIC/env.sh ~ +pip~ Python の Package を管理するツールの pip をインストールする。~ $ sudo easy_install pip ~ +Python library のインストール~ pip で nupic に必要なライブラリをインストールする。~ $ sudo pip install -r $NUPIC/external/common/requirements.txt pip 1.5 以上の場合は以下のような option で pip install を実行すると前述の [[Running NuPIC on OS X:https://github.com/numenta/nupic/wiki/Running-NuPIC-on-OS-X]] にあるが、~ 上の option なしの実行で問題ない。 $ sudo pip install ―allow-all-external ―allow-unverified PILL ―allow-unverified psutil -r $NUPIC/external/common/requirements.txt $ sudo pip install --allow-all-external --allow-unverified PILL --allow-unverified psutil -r $NUPIC/external/common/requirements.txt ~ +nupic のビルド~ ビルドスクリプトを実行する。~ $ $NUPIC/build.sh ... ... ... Stdout redirected to; /Users/otsuka/work/nupic/build_system/stdout.txt Build successful. という表示が出たらビルドは完了。~ ~ **テスト [#e2532fb5] ビルドが正常に完了したら、NuPIC が正常に実行できるか確認する。 -C++ テスト $ cd $NTA/bin $ htmtest ... ... 中略 ... ― ALL TESTS PASSES ― -- ALL TESTS PASSES -- $ testeverything ... ... 中略 ... ******************************************************************* * Numenta Unit Test summary * * Total categories = 39 * Total tests = 2252 * Total passed = 2252 * Total disabled = 0 * Total failed = 0 * Total critical failures = 0 * Success rate = 100 ******************************************************************* -Python Unit テスト $ cd $NUPIC $ $NUPIC/run_tests.sh ============================= test session starts ============================== platform darwin -- Python 2.7.5 -- pytest-2.4.2 -- /usr/bin/python plugins: cov, xdist collected 697 items / 2 skipped … … 中略 ... =================== 687 passed, 12 skipped in 150.86 seconds =================== **注記 [#ca189b8d] CMake を使っているが、XCode の GUI からのビルドはまだうまくいかない模様。 **作業時のコマンド・ツール類の version [#va4108ac] $ python -V Python 2.7.5 $ pip -V pip 1.5.4 from /Library/Python/2.7/site-packages/pip-1.5.4-py2.7.egg (python 2.7) $ clang -v Apple LLVM version 5.0 (clang-500.2.79) (based on LLVM 3.3svn) Target: x86_64-apple-darwin13.1.0 Thread model: posix $ brew ―version $ brew --version 0.9.5 $ brew list autoconf automake cmake libtool