PostgreSQL 7.3.4 on Linux Zaurus SL-C760
ちょっくら PostgreSQL をコンパイルしてみました。
かなり邪道な事もしておりますが、よろしければご指摘ください。
———————————————————————-
Ⅰ. 用意するファイル(意識している物のみ。もしかすると他にも必要かもしれない)
バイナリ
・console (私は embeddedkonsole-ja_1.5.0-5 を使用)
( http://sourceforge.jp/projects/zaurus-ja/ より)
・awk (私は gawk-ja 3.0.4-4 を使用)
( http://emmie.koka-in.org/~kensyu/zaurus/feed/ より)
・egrep (私は grep-ja 2.3-4 を使用)
( http://emmie.koka-in.org/~kensyu/zaurus/feed/ より)
・sed (私は sed-ja 3.02-3 を使用)
( http://emmie.koka-in.org/~kensyu/zaurus/feed/ より)
・armutils(arm 用にコンパイルされた unix コマンドのセット)
cmp (私は armutils の中の物を使用)
armutils を解凍、展開し、bin/cmp を /usr/bin/ に copy
( http://www.killefiz.de/zaurus/ より)
gcc 開発環境
・dev_img1.3 (マウントと PATH を通すのを忘れずに!)
( http://www.killefiz.de/zaurus/ より)
Crypt
・crypt.c (encrypt() や crypt() 等があるもの)
私は、http://www.shadowpenguin.org/sc_documents/spsdocument13.html にある、crypt3.c のソースを copy/paset して、crypt.c を作成し、postgresql-7.3.4/src/ 直下に置く。
gcc -o crypt.o -c crypt.c で、crypt.o を作成。
PostgreSQL のソース
・postgresql-7.3.4.tar.gz
Ⅱ. 準備
・PostgreSQL のソースを展開する。(Owner / Permission は、zaurus 777 で。 ext2 のパーティション (vfat だと ./Configure 時に ln で引っかかる))
コンパイルされたオブジェクト等を含め 68MB 分程度確保出来るパーティションが必要。
・PostgreSQL をインストールするディレクトリ。(Owner/Permission は、zaurus 777 で (vfat だと ln で引っかかる))
initdb 等を行った後の状態で、最低 40MB 分程度確保出来るパーティションが必要。
SD card 上にインストールし、/usr/local/pgsql に symbolic link しておけばよい。
・gcc が使用する tmp ディレクトリ(/tmp があふれる可能性大なので)
20MB 程度取っておけば余裕でしょう。
環境変数 TMP を設定
・PostgreSQL の以下の Makefile の最初の方にある OBJ=xxxxx の後ろに /xxxx/postgresql-7.3.4/src/crypt.o を書き足す。
/xxxx/postgresql-7.3.4/src/bin/pg_controldata/Makefile
/xxxx/postgresql-7.3.4/src/bin/pg_dump/Makefie
/xxxx/postgresql-7.3.4/src/bin/pg_encoding/Makefile
/xxxx/postgresql-7.3.4/src/bin/pg_resetxlog/Makefile
/xxxx/postgresql-7.3.4/src/bin/psql/Makefile
/xxxx/postgresql-7.3.4/src/include/Makefile
もしくは、configure の時に生成される/xxxx/postgresql-7.3.4/src/Makefile.global の # Linking セクションの 以下の行
LIBS=-lm
を
LIBS=-lm $(TOP_SRCDIR)/crypt.o
に書き換える。
・/xxxx/postgresql-7.3.4/src/include/Makefile の 28行目
$(INSTALL_DATA) pg_config_os.h $(DESTDIR)$(includedir)
をコメントアウトする。
もしくは、$(top_srcdir)/src/include/pg_config_os.h は、$(top_srcdir)/src/include/port/linux.h へのシンボリックリンク
になっているので、make の後、make install 前に、このファイルを pg_config_os.h としてコピーしておく。
・Configure
$ ./configure –prefix=/usr/local/pgsql
–enable-multibyte=EUC_JP
–without-readline
–without-zlib
・Make
$ make
・Install
# make install
・データディレクトリ作成
# mkdir /usr/local/pgsql/data
# chown zaurus /usr/local/pgsql/data
・初期データベース作成(–encoding 以下で database のキャラクタセットを決める。)
/usr/local/pgsql/bin/initdb -D /usr/local/pgsql/data –encoding=EUC_JP
・Postgresql インスタンス起動
/usr/local/pgsql/bin/postmaster -D /usr/local/pgsql/data >logfile 2>&1 &
or
/usr/local/pgsql/bin/pg_ctl start -D /usr/local/pgsql/data -l /usr/local/pgsql/data/pg.log
・test データベース作成
/usr/local/pgsql/bin/createdb testdb -E EUC_JP
・test データベースに接続
/usr/local/pgsql/bin/psql -U zaurus testdb