Mac, HomebrewでPL/Pythonを利用する

Mac OS 10 Yosemite + HomebrewでPostgreSQLを利用する。

Pythonは、python3をhomebrewでインストール済みとする。

1. PostgreSQLのインストール

$ brew install --with-python postgres

postgresでPL/Pythonを利用するために–with-pythonオプションを付加する。

以前の設定が残っている場合削除する。

$ rm -rf /usr/local/var/postgres

データベースの初期化。

-Uオプションでしていしたユーザ名がスーパーユーザとして追加される。

指定しない場合、ログインユーザ名が使われる。

$ initdb -U postgres /usr/local/var/postgres

起動。

$ pg_ctl -D /usr/local/var/postgres -l /usr/local/var/postgres/server.log start

psqlできることの確認とユーザが作られていることの確認。

$ psql -U postgres
postgres=# \du

以下のエラーがでてpsqlできない場合は、古いpostgresプロセスが生きている可能性があるのでkillしてから再トライ。

psql: FATAL:  could not open relation mapping file "global/pg_filenode.map": No such file or directory

データベースの作成。

$ createdb -U postgres -E utf-8 hoge_db

終了。

$ pg_ctl stop

 

2. PL/Pythonの設定

現在使えるPL一覧を確認。通常PL/PgSQLのみ。

$ createlang -U postgres --list hoge_db
 Name | Trusted?
 ---------+----------
 plpgsql | yes

PL/Pythonを追加する。

$ createlang -U postgres plpython2u hoge_db

あとは言語としてpythonが使える。

 

参考

Pylearn2でニューラルネットワーク(python3 + mac)

Pybrainのニューラルネットワークが遅すぎたので(Cで実装されたR nnetの100倍くらい?)、Deep learningで有名なPylearn2を使う。(CやGPU利用で高速化されている)

 

1. 依存ライブラリのインストール

Theano, Cythonをインストール。Theanoはpip3でインストールするとpython3かCコンライラ関連でエラーになるので、gitから直接インストール。

$ pip3 install --upgrade --no-deps git+git://github.com/Theano/Theano.git
$ pip3 install Cython

 

2. Pylearn2のインストール

公式ドキュメントに従って進める。

$ git clone git://github.com/lisa-lab/pylearn2.git
$ cd pylearn2
$ python setup.py develop

 

3. ニューラルネットワーク

Pylearn2は通常YAML形式で構造などを記述するが、慣れないのでここGist)を参考に普通のPythonコードっぽく構築する。

print文だけ、python3の形式に変更する必要がある。

 

参考

Mac OS X(10.7)でターミナルからApacheを起動する

$ sudo httpd -D WEBSHARING_ON -k start

[ システム環境設定 ] – [ 共有 ] – [ Web共有 ]から、Apacheを起動するとWEBSHARING_ONのパラメータが設定されるため、ターミナルからの起動時にも明示的にパラメータ渡しする。

WEBSHARING_ONを設定しないと、httpd.conf中のIfDefineにより、一部の設定(DocumentRootなど)が反映されない。

httpd.confの場所は以下。

/private/etc/apache2/httpd.conf

apacheの起動は以下のコマンドで確認。httpdの実行ユーザが_wwwになっていることがわかる。

$ ps aus | grep httpd
カテゴリー: Mac

Homebrewのコマンド一覧

 

インストール可能パッケージ一覧 $ brew search
インストール済パッケージ一覧 $ brew list
アップデート可能パッケージ一覧 $ brew outdated
パッケージの情報確認(未インストール含む) $ brew info [package]
インストール $ brew install [package]
アップデート(hobebrewとアップデート可能な全てのパッケージ) $ brew update
アップデート(指定したパッケージのみ) $ brew upgrade [package]
アンインストール $ brew uninstall [package]

 

■参考資料

カテゴリー: Mac

MacportsのアンインストールとHomebrewの導入

Macのパッケージ管理ツール「Macports」をアンインストールして、代わりに「Homebrew」をインストールする。

Homebrewは、MacPortと異なりMacに元から入っているパッケージを重複インストールすることがない。

1. MacPostsのアンインストール

MacPorts がインストールされていると、Homebrewのインストール時に競合のため警告がでる。

ややこしいので、アンインストールして、完全にHomebrew体制に移行する。

アンインストールは、公式サイトのガイドに従って行う。まずは、MacPortsでインストールした全てのパッケージをアンインストールする。

$ sudo port -fp uninstall --follow-dependents installed

残りの設定ファイル等を削除する。

sudo rm -rf \
  /opt/local \
  /Applications/DarwinPorts \
  /Applications/MacPorts \
  /Library/LaunchDaemons/org.macports.* \
  /Library/Receipts/DarwinPorts*.pkg \
  /Library/Receipts/MacPorts*.pkg \
  /Library/StartupItems/DarwinPortsStartup \
  /Library/Tcl/darwinports1.0 \
  /Library/Tcl/macports1.0 \
  ~/.macports

~/.bash_profileからMacPortsインストール時に追加した以下のPATHを削除。

export PATH=/opt/local/bin:/opt/local/sbin:$PATH

 

2. Homebrewのインストール

GitHub上のマニュアルに従って、以下のコマンドを実行し、Homebrewをインストールする。

/usr/bin/ruby -e "$(/usr/bin/curl -fksSL https://raw.github.com/mxcl/homebrew/master/Library/Contributions/install_homebrew.rb)"

■参考文献

カテゴリー: Mac

Mac上でのSSHクライアント証明書の設定

クライアント証明書はホームディレクトリの.ssh直下に配置。
それぞれのパーミッションを以下のように適切に設定しないと、sshに失敗する。

HOGE:~ hoge$ ls -al .ssh/
total 16
drwx------   4 hoge  staff   136 11 28 23:29 .
drwxr-xr-x+ 34 hoge  staff  1156 12  6 22:00 ..
-rw-------   1 hoge  staff   963 11 27 22:46 id_rsa
-rwx------   1 hoge  staff   418 11 27 20:54 known_hosts

.ssh → 700
id_rsa → 600
known_host → 700

カテゴリー: Mac

Mac(Lion, OS 10.7)でAndroid OS(2.3.7_r1)をビルドする

Mac(Lion, OS 10.7)上で、Android OS(2.3.7_r1)をソースコードからビルドする。

Android OSのビルドには、Xcode 3.xが必要だが、Lionは4.xをサポート。

よって、Xcode 3.xのインストールから開始する。(4.x系だと、libSDLのリンクに失敗する

 

1. Xcode 3.2.6のダウンロードとインストール

Appli Developer Connectionに登録(無料)して、Xcode 3.2.6をダウンロードする。

ダウンロードしたxcode_3.2.6_and_ios_sdk_4.3.dmgをFinderからクリックしてインストールを開始すると、Android OSのビルドに必要なXcode Toolsがインストールされない。

よって、上記dmgをダブルクリックしてマウントしてから、以下のコマンドでターミナルからインストールを開始する。

$ exort COMMAND_LINE_INSTALL=1
$ open /Volumes/Xcode and iOS SDK/Xcode and iOS SDK.mpkg → グラフィカルなインストール画面が表示されるまで、10数秒かかるので、大人しく待つ。

上図のように「Xcode Toolset」がインストールされる表示ならOK。

iOS SDKはiPhone系の開発をしないなら不要。

 

2.ビルド用の領域確保

ここからは、公式ドキュメントに記載されている通りに進める。

Macは、大文字小文字を区別しない。一方、Android OSのビルドでは、区別が必要なので、専用の領域(イメージ)をディスクユーティリティを使って作成する。

[ アプリケーション ] – [ ユーティリティ ] – [ ディスクユーティリティ ]

左のペインでは何も選択していない状態で、上部の「新規イメージ」を選択。

サイズは、最低25GB、今後のことを考えれば40GBと公式サイトにあるが、2.3.3ならビルド後も11GB前後なので、アドバイスを無視して、15GBにしてみる。

フォーマットを「Mac OS 拡張(大文字/小文字を区別、ジャーナリング)を選択。

作成した、イメージをマウントするためのコマンドをbashに登録する。

~/.bash_profile

に以下を追記。

function mountAndroid { hdiutil attach ~/Documents/android.dmg -mountpoint /Volumes/android; }

bashに設定を反映して、イメージをマウント。

$ source .bash_profile → .bash_profileを即時反映
$ mountAndroid → /Volumes/androidにマウントされる

 

3. 必要なパッケージをインストール

macports, gmake, libsdl, git-core, gnupgが必要なのでインストールする。

gmakeは、3.82がインストールされるが、不具合があるらしいので、後ほど3.81にダウングレードする。

まずは、各種パッケージをインストール/管理するためのmacportsを、MacPortsの公式サイトからダウンロード後、ダブルクリックしてインストール。

MacPortsを、優先的にターミナルから利用するように、.bash_profileに下記を追記してパスを通す。

export PATH=/opt/local/bin:$PATH

gmake, libsdl, git-core, gnupgのインストール。

$ POSIXLY_CORRECT=1 sudo port install gmake libsdl git-core gnupg

ネットワークの状況にもよるが、30分以上かかることもあり。

gmakeを3.82から3.81に変更

/opt/local/etc/macports/sources.confを開いて、rsync行の上に下記を追記。

file:///Users/Shared/dports

上記ディレクトリを作成、移動してから、gmakeをダウンロードしてインストール

$ mkdir /Users/Shared/dports
$ cd /Users/Shared/dports
$ svn co --revision 50980 http://svn.macports.org/repository/macports/trunk/dports/devel/gmake/ devel/gmake/
$ portindex /Users/Shared/dports
$ sudo port install gmake @3.81

Android OSをビルドするには、Macがデフォルトで開けるファイル数が少な過ぎるので、下記を.bash_profileに追記して、開けるファイル数上限を上げておく。

# set the number of open files to be 1024
ulimit -S -n 1024

 

4. ソースコードのダウンロード

複数のgitリポジトリを管理するツールrepoを使って、ソースコードをダウンロードする。

まずは、repoのインストール。

$ mkdir ~/bin
$ PATH=~/bin:$PATH
$ curl https://dl-ssl.google.com/dl/googlesource/git-repo/repo > ~/bin/repo
$ chmod a+x ~/bin/repo

ソースコードをダウンロードするディレクトリの作成。先ほど作ったイメージの配下。

$ mkdir /Volumes/android/2.3.7_r1

2.3.7_r1のソースコードをダウンロードする準備をする。

$ cd /Volumes/andoid/2.3.7_r1
$ repo init -u https://android.googlesource.com/platform/manifest -b android-2.3.7_r1

名前と、メールアドレスを聞かれるので、入力する。

今回は使わないが、最新のソースコードをダウンロードする場合は、以下のコマンド。

$ repo init -u https://android.googlesource.com/platform/manifest

ダウンロード開始

$ repo sync

数GBあるため、ダウンロード完了までは、15分以上かかることも。

 

5. ビルド

ビルド用の環境設定。

$ source build/envsetup.sh

実行ターゲットをエミュレータ(full)、ビルドタイプをフルデバッグ(eng)に指定する。

$ lunch full-eng

詳細は、公式サイト参照。

ビルド。

オプションjのすぐ後ろには、論理コア数を指定。ビルド時のスレッド数になる。

$ make -j4

Core i7 1.8GHz, RAM 4GBで、1時間弱かかります。

 

6. エミュレータで実行

ビルド工程を通して、emulatorコマンドが使えるようになるので、実行。

$ emulator

完了!

 

7. エミュレータの再起動

ターミナルを一度終了すると、emulator用の環境設定がリセットされるので、手動で設定して起動する。

$ emulator -kernel prebuilt/android-arm/kernel/kernel-qemu -system out/target/product/generic/system.img -data out/target/product/generic/userdata.img -ramdisk out/target/product/generic/ramdisk.img -skin WVGA854

 

■参考

■メモ
エミュレータがエラーで起動しない時は、.bash_profile内のPATHを確認する(android-sdkをインストールしている場合、そちらのemulatorコマンドが優先されている場合がある)。